Believe it or not but every static variable in C is initialized whether you explicitly set a value or not. If you don’t set a variable then the variable will be initialized to 0. Almost all of the time that behaviour is exactly what you need.
I was working on a watchdog timer module this week and I ran into a problem. When I design a watchdog module, I make sure that every major task and/or function is working properly before resetting the watchdog timer. If the module detects an error then I like to save the error into RAM so that it is available for debugging later after the CPU resets. This has saved a ton of time over the years.
I’ve been working on a new microcontroller project this week and it got me thinking about task schedulers and real time operating systems (RTOSs). I define a microcontroller as a small CPU with a little bit of RAM and FLASH such as a PIC or Cortex-M0. Software designers get carried away when it comes to managing tasks and think that a context switching RTOS makes sense because that’s how it’s done on regular computers (PCs). RTOS’s do make sense in large systems where anyone’s code can be executed and the product designer has no control. But in small microcontroller designs they are overkill.
I love hall effect AC/DC current probes. I really do. I first used a Tektronix TCP202 a long time ago and have been hooked ever since. But I’ve never owned one because they are expensive (~$2k) for a tool that only gets used occasionally. I looked at used ones, older probes but they are still relatively expensive and are very difficult to find in good condition. One drop is all it takes to damage them.
After a lot of looking, I found the i30s from Fluke. It’s not the same as the TCP202, but it seems to be the best performance to dollar value out there. Its 100kHz bandwidth is reasonable given the cost and the current range is good. It’s also 1% accurate. In January 2010, the cost was $540CAN. In Feburary it went up to $700CAN. That got me thinking that there had to be a better deal out there. I looked at the i30 which is the DMM version of the i30s and with a lower frequency response (20kHz). The manual indicated that the frequency response of both models was almost identical for both models.