Basic Micro controller list for begineers

Discussion in 'Programmer's Corner' started by selvamurugan_t, Sep 3, 2016.

  1. selvamurugan_t

    Thread Starter New Member

    Aug 8, 2016
    17
    0
    Hi

    I want to start my Embedded C programming carrier in properly.For that I required a flow of micro controller list for update my knowledge.

    I have experience with
    PIC16F877A,
    AT89C51,
    ATMEGA328P


    please list down 8 bit ,16 bit,32 bit micro controller for learning
     
  2. Marley

    Member

    Apr 4, 2016
    144
    40
    I recommend the ATmega328 and Visual Studio 7 (which is a free download). You will need an isp programming tool - AVRISP MK2 or the AVR Dragon.

    Plenty of documentation, help and examples online.

    Atmel also make 32 bit mcus. Can be developed and programmed with the same tools. No Atmel 16bit devices as far as I know.
     
  3. MrSoftware

    Active Member

    Oct 29, 2013
    504
    124
  4. Marley

    Member

    Apr 4, 2016
    144
    40
    Sorry, it's Atmel Studio 7 - uses visual studio technology underneath I think.
     
  5. selvamurugan_t

    Thread Starter New Member

    Aug 8, 2016
    17
    0
    can you refer some basic microcontroller list which will help me to improve my programming skill
     
  6. MrSoftware

    Active Member

    Oct 29, 2013
    504
    124
    Ah yes, it can plug into Visual Studio for the user interface part, but runs the Atmel compiler underneath. Which is good, because Visual Studio is actually the nicest IDE I've used personally.
     
  7. JohnInTX

    Moderator

    Jun 26, 2012
    2,348
    1,029
    If you are trying to improve your programming skills using embedded C, the particular processor is less important than you think.

    It is a common error with inexperienced programmers to fire up the IDE and throw code at it. Programming should be approached first from a problem-solving point of view, not slapping code onto a chip and trying to make it work. You can improve your skills without a chip at all. Get a good reference on C, another on data structures and something on 'structured programming'. Start coding examples in whatever programming environment you have (IDE, compiler etc.) and use the simulator to step through the code. Focus on programming as problem solving - you should be able to describe your program and trace its execution with a pencil and paper. Once you get proficient with the basic concepts, you can pick a chip and add the particulars.

    For example, you can code a flashing LED on paper - the 'hello world' of the embedded business. It might look like this:

    Code (C):
    1. void main(void){
    2. init_system();
    3. while (1){
    4.   LEDon();
    5.   delay_awhile();
    6.   LEDoff();
    7.   delay_awhile();
    8. }// while
    9. }// main
    10.  
    Note that there are no processor-specific things here, just the description of what is to be done and how the solution is implemented. You can trace the code flow with your finger. Do the same with more complicated tasks. Defer any IO and chip-specific stuff until later. You might decide that this is a crude way of flashing an LED and change it. Maybe describe the LED flasher as an array of patterns like here
    http://forum.allaboutcircuits.com/threads/arduino-timer-interrupt.127195/#post-1037467
    That one is for Arduino but the concept works on any processor.

    Finally when you want to give it a try, fill out the chip-related functions (init, LED IO etc) and step it in the simulator, watching the PORT variables to see the LED bit go on and off. If you keep your processor-specific stuff as independent functions, you can move your code from chip to chip fairly easily.

    There's lots more to getting good at programming but one sure way to be a lousy programmer is to just throw code at it to see what works. Rule 1 is that if you can't solve the problem on paper, you can't implement it in code.

    Just my .02
    Good luck!
     
  8. dannyf

    Well-Known Member

    Sep 13, 2015
    1,828
    365
    For what you are trying to do the easiest is to start on an arduino: simple, low cost, lots of accessories and a huge base of code samples.

    As you get more comfortable with toolchains and embedded programming, moving to a platform that supports hardware debuggers woukd be a plus. St discovery, nucleo, or ti launchpads woukd be some of the choices there.

    As you are coding in C, the core makes minimum difference.
     
  9. dannyf

    Well-Known Member

    Sep 13, 2015
    1,828
    365
    For what you are trying to do the easiest is to start on an arduino: simple, low cost, lots of accessories and a huge base of code samples.

    As you get more comfortable with toolchains and embedded programming, moving to a platform that supports hardware debuggers woukd be a plus. St discovery, nucleo, or ti launchpads woukd be some of the choices there.

    As you are coding in C, the core makes minimum difference.
     
Loading...