Q2. Can I program the microcontroller in Visual C#?
I do not know C. I do have some programming experience. I have another application I would like to do with Visual C# express. I presume that C, C++, Visual C#, etc are all similar, but not the same. If I learn Visual C#, will it give me enough knowledge to program the microcontroller as well, so I can kill two birds with one stone? The AVR says “123 powerful instructions”. But are those assembly instructions or C instructions? How hard can 123 instructions be to learn? Can anyone recommend a good reference to learn only the C instructions needed for the microcontroller, if I can’t use Visual C#?
Microcontroller - can be a $2 8 bit chip or a $300 board.
IMO: Only the big expensive ones should be programmed in other than plain C. Resource problem. Lack of RAM.
If you want the big resources for C++ and so on, you’ll need a really high end ARM9 class micro. BUT! You may as well use something like an Intel Atom mini-ITX board for $80 and run Linux. A Linux capable ARM9 is arguably not a microcontroller.
Maybe 0.5% of microprocessor code is written in assembly language these days, with the exception of high volume products. So you need to know but not be a whiz in assembly for the chosen micro. Others will disagree with me on this.
My low to mid-range Microcontroller work has been with the Atmel AVR chip family. I graduated to these from the marketed-to-schools Microchip PICs - because all but the high end PICs are an ancient architecture, e.g., they lack a real stack in the CPU.
The ARM7 processors, licensed by ARM to 20 or so chip makers, is a great choice. Cost has matched 8 bit micros, and ARMs are not sole-source as are all micros except for the venerable 8051 family. Coridium and Olimex are good sources.
For the Atmel AVR, their free AVR studio is great. It includes GCC in the form of WinAVR, integrated with Atmel’s free IDE. There are 5 or so commercial C compilers for AVRs, from $175 and up, and most all have free eval or limited code size versions. C++ is supported but is rarely used due to lack of RAM in most micros.
The ARMs have a port of GCC as well, often used with the freeware IDE called Eclipse, and YAGARTO for WIndows and Linux. Of course, there are good commercial compilers. I selected IAR’s compiler. They have a free non-commercial version supporting up to 32KB of code.