which one of the new Microcontroller types would be your preferred to upgrade from the "getting old" AVR ATmegas?
ok after creating quite a couple of project with the AVR Codevision i am getting quite annoyed with it, the CV compiler comes with lots of software bugs, for example at my latest job i put the real time clock reading function (Ds107 IC) at one of the timer's interrupt service, the interrupt would occur every 10ms for the execution of the disk_timerproc(); needed for the SD-MMC memory, also a counter parameter would got increase up to 500 so every 5 seconds once the time should be read from the clock Ic and put on the LCD.
now at another part of the program there was a sub function to set the time, at its beginning i put the sentence to stop the timer from operating in order to the obvious reason.
now guess just what happened, one of the 4x4 matrix keyboard's rows stopped functioning, it took me two days to realize that its the side effect of the interrupt routine's stop causing one of the pins at another port to cease reading!!! as soon as i removed the part which would ban the interrupt sub routine event every thing came back to normal! Now very seriously such a NS compiler bug would be quite a reason to get really mad.
Another much annoying problem with the CV occurs when writing the text at the LCD displays, I once made a project with the SIM900 GPRS module, a graphic keyboard would appear on the LCD and the user could type his SMS with its touch, entering the number and pressing the send button and after the sending procedure finishes the program would return to the beginning line (lcd_clear). And there goes the problem. Some random texts from the previous run orders appear on the screen with no reasons or commands to be shown. So I have to press the hardware restart button.
Exampling only two of the faced problems, now its clear for me that the Codevision sucks.
Also the Atmega series are getting old, there is an increasing interest at the new Microcontrollers around me. It seems that I also need to move on to one of the more recent ones.
Now there are several candidates to be assumed, the atXmega, DsPIC, ARM7, ARM9, ARM11, Cortex-A15 and its similar. Also all of these have come with several Compilers. While all are based on C or C++ yet again they have some differences.
I already reclined to begin working with the Xmega series for several reasons:
1- these are not user friendly. At no applications I would ever need to utilize the various functionalities of the 24 port control registers, they have extended the capabilities beyond the needs. It will take quite a long to study all of its hardware design.
2- the AVRs are all very sensitive to the environmental noise and power supply distortions.
3- the ATMEL does not seem to be very interested on supporting the users with technical support. Its even hard to find most of the header files.
Right now my best candidate to begin work with is the DSpic30f4013 with the Mikro C compiler. The DSpic series are designed considering the utilizers desire to have a easy to learn chip, these are actually simpler than the Atmegas. Also with a small internal DSP engine makes them ideal for simple mechatronics applications. Also the PIC architecture is almost immune to noise and the microchip company supports the users with hundreds of forums.
Disadvantage: the clock frequency is only up to 40Mhz which is very low with respect to the ARMs.
There are also others, the companies here show great interest at the ATSAM7s256 IC, apparently with the IAR compiler but I am not sure if it fits my applications the best. Also I am afraid to put a whole year to learn a new one and then see that the situations are changing to another one's favor. I need to begin studying one which would not become out of date any time soon. And which compiler with no annoying insane bugs like the explained above.
So after this long story here is what I ask for:
Which microcontroller to move on to? With which compiler?
1- Easy to learn, a user friendly architecture with no unnecessary expansions.
2- Wont get out of date any time soon.
3- A compiler as similar to the CV as possible, of course with no such malfunctionings.
4- Made for Robotics applications (mechanism analysis, machine vision operations).
And sorry for the long story. I talked a lot but I needed to speak up myself!
Thanks for any helpful replies.