Page 1 of 1

What's the best book on microcontrollers?

PostPosted: Fri Mar 14, 2014 12:24 pm
by Doug Coulter
I just got asked this in an email. I don't know the answer, and doubt there is one, so I replied thusly:

I don't think there's any best one, or even close. Computers is computers, size is a sliding scale, the concepts are all the same, but in uP's you are generally working a lot closer to the metal to gain efficiency - writing your own device drivers and suchlike, even your own opsys (which can be as simple as an infinite loop looking for work, looking at flags set in interrupt service routines).

In big machines, you're primarily interested in what's already available, how to use the existing code you can most often get free or that comes on the machine already. You don't have to know the lowest level gritty details, but instead a similar amount of detail at another level. For example, I use gnuplot to make plots here - so I have to know how to put data and parameters into gnuplot. That's a far different task than writing a general purpose plot program, or any of the layers (window managers, GPU drivers and so on) beneath it.

On a micro, you're kind of on your own, though many of the popular arduino type thingies out there do provide quite a few examples and libraries - which means that instead of learning about the micro itself, you're forced to learn how their libraries work, flaws, limitations, an all. Which eventually puts you down on the metal, again. There's no free.

Nothing good is truly easy. I've been around this since before integrated circuits, and indeed, the existence of solid state, so my perspective might be a little odd. These days I just download the data sheets for a uP and go from there - I've developed a rather deep bag of tricks, code I can re-use the structure of at the very least, and now that a uP can have more horsepower than older PCs and can run a higher level language than assembly - reuse the code I wrote a long while back sometimes without changes, or with only minor ones.

I probably over-document (comments!) my code these days. I find that if I want to go back years later and make a tweak, I've forgotten what I was thinking if I don't leave some reminders in there...