Software > Software


<< < (3/4) > >>

i'd agree with the previous poster on all points.
i too started programing a PIC microcontroller in assembly language.
the PIC assembly language isn't as scary as it sounds for small projects. for simple program structures it's fairly straight forward.
if you decide to start with PICs i'd play arround with assembly before you splash out on a C compiler. compilers are very usefull once you start working with more complex data structures.
this book is what i used to get started. (i'm not saying there's not a better book out there but it tells you everything you need to know to get started.): "PIC in Practice"
the down side with pic microcontrollers is you need a dedicated programmer to program them. this is a piece of hardware that plugs into your PC to upload the program to the PIC. (anywhere between $50 - $200).
on the plus side there is *lots* of information and sample code on the internet. (when it comes to sample code, there are also *lots* of different programing languages for them so it can take a bit of digging before you find what you are looking for.)

i'm currently in the process of learning about ATMEL AVRs. they have a few distinct advantages over the PICs.
you don't need any expensive programmer or compiler. the programmer is a simple cable that plugs into your PC parallel port that can be made at home (although there are more expensive variates for sale). a C compiler for windows is available from ATMEL free of charge. (if you don't have windows there is defiantly a Linux version that i think can be ported to BSD and the mac.)
like i say, i'm just getting started with these but they look good. i'd be tempted to recommend you skip the PIC step and go straight for the AVR.
the AVR seems to be a steeper learning curve though.
i haven't found a good book for AVRs yet (recommendations please....) and on the whole there is not nearly as much information on the internet as for the PICs.
the one (very good) site i have found for AVRs is here:

either way, choosing a PIC or an AVR is, as you requested, not a kit. (there are lots of development boards out there with everything pre built you don't really need one.)
you get a chip (2$ upwards, depending on the model). to get it to work you will need a crystal and a few capacitors.
to get your first "hello world" running you will attach some LEDs to the pins.
it's a good way to learn about microcontrollers and practical electronics. so grab yourself a breadboard and start plugging in stuff!

happy building,


Computer Sci major? Im a mechanical engineer and I can program PICs and Atmel's - you have nothing to worry about  :P

I program by stealing code and reverse engineering it to figure it out. In the future I will add a place for people to upload their code for others to use on this site.

For PICs I use the somewhat expensive CCSC compiler. Its really nice, comes with a good programming reference manual and everything.

For Atmel as dunk said the compiler software is free and the programmer is cheap. However because it is free I would say it lacks in quality. Previous WinAVR versions were REALLY buggy and super frustrating, although I hear the newest WinAVR version has fixed all those issues. There is also a much smaller community, and like no sample code anywhere online. The avr manual also is very not user friendly. It's a shame though, because the avr chips come with so many better features than the PICs do . . . I got my avr to do stuff, but it took 10x longer to get things to work, so in the end I just quit and went back to PIC.  :-\

Thanks! I'll definately look into those options.


I think you are discounting the avr-gcc, makefiles can be scary but you will definitely gain a better understanding of AVR's by using avr-gcc. And if you want to figure out stuff on an avr go look at Pascal Stang's AVRLIB here:
The AVRLIB has code for just about any thing you need and is usable with very few tweaks (config files).
Another thing to mention that is somewhat related to AVRs is . If you are getting into more complex robotics it helps to start with a premade Operating System instead of building your own scheduler. But beware, depending on the microC that you are coding for you might need to do some porting (but for the most part all the real leg work is done for you).

As a side note you might want to mention Real Time Operating Systems in a strictly introductory capacity in your tutorial section to get intermediate people thinking about it. I see it as an integral part of building greater functionality....although some may disagree. :P

*EDIT* wow I didnt realize I brought this one back from the dead.......sorry :-\


Well, WinAVR uses avr-gcc, so I got to use it. But I think the bugs I was having was actually from the gcc and not WinAVR. I never fully investigated. I plan to go back to avr's by the end of this year for another project, Ill report my findings then.

As for operating systems, I know almost nothing about how they function . . . Maybe one day Ill take an OS class . . .


[0] Message Index

[#] Next page

[*] Previous page

Go to full version