C++ and the L298N Dual Full-Bridge Driver

For the past couple of years I've been developing projects for the Atmel line of micro controllers using the GNU toochains Asm and C languages. Until recently C++ was very difficult if not impossible using the previous versions of Atmel's IDE, but that's no longer an obsticle with the new version, Atmel Studio 6.1 which is available here. I prefer the power of C++ and have missed being able to use it in my projects, there are still some issues using C++ in projects such as interrupts but there are work arounds and it's not a deal breaker. Another consideration why I wasn't using C++ was that the ATmega development boards were rather expensive upwards of $50+ but recently the price of knockoff ATMega1280/2560 boards have come way down, to around $17 and they function as well as the originals, at least I haven't had any problems with them.

C++11 standards for AVR

I've been using Ateml's IDE for some time now and have long awaited the time when C++ would become a viable programming option and now with Atmel Studio 6 they have finally made this a reality. The latest version of Atmel Studio is 6.1 that uses the GCC 4.7.2 version toolchain, which in Atmel's lingo means the compilers and linker used to build projects in the IDE.

Nikon IR Remote
I've been wanting to do this project for quite some time but have been waiting for the cooler weather, that's when I do most of my projects. This was one of the first projects on my list because I want to use what I learned here in another more ambitious project that I'll be starting shortly. The picture below shows the finished product and as you can see there are very few parts and a very simple layout. I'm a software guy if I can do it anyone can. The total price of materials for this project was right around $11 and it took maybe 1-1/2 to do everything with the only thing remainingis to find some kind of enclosure for it, but it works and that is not a show stopper.
SPI Communications Primer
The Serial Peripheral Interface (SPI) or four wire serial bus as it is sometimes referred to is a syncronous serial data protocol operating in a master/slave configuration in full duplex mode. It is used by microcontrollers for communicating with one or more peripheral devices quickly over short distances. You can also think of SPI as being built around a double buffered 8-bit shift register with both ends of the shift register brought out to MCU pins.
Real Time Clock Development Board
This is my second in a series of Development Extension Board (DEB) articles, if you missed the first one AVR LED/Level shifter Board be sure to check it out. These DEB boards came about as a way to mount frequenty used components on a board external to the MPU, be easy to use in the development cycle and have the ability to be plugged into a bread board where it may be wired easily. In cases such as with the RTC we will be using the PCF8583 Clock/Calendar with 256 X 8-bit RAM device where communication with the device is accomplished using the I2C Bus protocol. I haven't had any experience with this device or for that matter any device using the I2C Bus but wanted to learn so here we are. Although I used an AVR processor this board can be used with any MPU that supports GPIO and interrupts if notification required.
AVR LED/Level shifter Board
The board I have created for this article contains a group of 8 LEDs and 4 Bi-directional channels of Level Shifting using the 2N7000 N-Channel Exhancement Mode FET. I used an LM317 voltage regulator to provide the 3.3V for the level translation so decided to run it to the header so as to provide 3.3V external to the board.