I am computers and systems engineering student and I am very interested in microcontrollers so What is best sources for learning and practising AVR microcontrollers ?
closed as primarily opinion-based by pipe, The Photon, Leon Heller, Tom Carpenter, Dave Tweed♦ Jul 23 at 11:06
Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.
That certainly depends on your previous knowledge.
Previous experience with embedded programming:
Do you know some Assembler? Do you know some C? Have you experience with other controllers? If all that is true for you I would suggest you to just take a look at the datasheet and start working on some small projects. Learning by doing is always great. But you should have already the mentioned basics.
Completely new to µC / Programming:
In that case the way to start (again) depends on you. If you want to become a computer and systems engineer, it really makes sense to know some assembler (Not because you will need it a lot, but because it gives you better understanding of the workings and limited resources of MCUs). There are great tutorials out there on the web and I can not really recommend one in peticular, just look for your self.
But learning assembler can be quite tiring, because progress is not really fast. So if you want more "motivation" it might be a better idea to get startet with some C programming on the AVR to get some small projects done and only then switch to assembler - you will only get to acknowledge the profits of high level lenguages even more ;)
There are a many many AVR tutorials out there, all written in different styles. Just pick one you like. There are forum questions about basically every mistake a beginner can make. AVR are nice to learn on, because you can google basically everthing that comes to mind. And the best way to learn, is always trying and researching for your own. If you have any specific questions about some implementation you are working on - feel free to come here again and we will be happy to help.