Jump to content

book recommendations for microcontroller programming


syamajala
 Share

Recommended Posts

Hi! I am wondering if anyone can recommend a good book for learning about microcontrollers and programming them. I have access to a msp430, and know c, but I have no idea what I am doing as far as programming this thing goes. I have been thinking about picking up a copy of this http://www.amazon.com/MSP430-Microcontroller-Basics-John-Davies/dp/0750682760/ref=wl_it_dp?ie=UTF8&coliid=I2E3Y125SR3F5X&colid=3Q7L5URDFS2A1 but I am worried it might be too advanced. I have been reading a bunch of the articles on here http://cnx.org/lenses/TexasInstruments/MSP430?b_start:int=30&-C= and am beginning to understand how the hardware works, but I really think I need to good book that can help me get the big picture. If the msp430 isn't a good place to start, I wouldn't meaning switching to something simpler like a pic, but i would really prefer to program in c and not assembly for right now. I plan on learning assembly eventually.

Link to comment
Share on other sites

Hi,

It's been quite a while since I did my introduction to programming micros, so all my books are somewhat out of date.

I think using C is fine for programming modern micros. I believe some of the modern architectures are designed with compiler optimisations in mind, anyway.

Of course, assembly brings you closer to the hardware, but I think it's not necessary for most jobs.

I'm currently moving away from PIC assembly, and trying to get into C/C++ on ARM processors. These days, ARM provides excellent features for an affordable price IMO.

Do you have particular need for low power or battery operated embedded systems? I think the MSP430 is aimed at that market, isn't it?

I have found that understanding the hardware has been crucial for my work with micros. It sounds like you already have a grasp of programming, and you are already reading TI's docs, so I think you should be pretty well prepared for working throgh a text book.

Personally, I don't think it would be necessary to start with a PIC for programming. I'm also not sure that PICs are the easiest platform to work with.

I used some books from Sqaure 1 as a young fellow. They do provide an easy walk through for PICs, and I think are well texts. It has been a while since I looked at them though. The ones I used are for now long obsolete PICs.

I later used (an edition of) Microprocessors abd Microcomputers, Tocci, Ambrosio. This book is not bad, but I wouldn't pay the RRP at Amzon for it. It introduces number bases and general base n arithmetic, binary arithmetic, 2's complement representation etc. The microprocessor content focusses on the HC11/12 architecture. I do think this was an easy chip to play with. It is not a modern, feature rich design, though. I think the book covers important topics on register manipulation, and routines and interrupts in micros. However, I believe this coverage is available in many books, including books in a lot of public libraries. Personally, I like to own a text which I am to use extensively, though I just want to emphasise that there are many options for accessing the same sort of material.

I haven't got stuck into using ARMs yet, but my next design project is using a Cerf Board running Linux.

In some way, I would like to advise you just to start on a fully featured micro platform, use something that will give you a hardware abstraction layer, and focus on design for your application. However, maybe that is just where I am at right now. I think the best thing for you, would depend on what your real interests/aims are for this persuit. Do you want to be close to the hardware? Do you want to produce really efficient applications that make the most of limited resources? Do you want to produce absolute minimum cost, minimum size, minimum power designs? Presently, I am more interested in the applications side of embedded systems.

Hope that helps, and sorry if it's a bit irrelevant to your concerns.

P.S. Portability of applications, speed of development, good user interface, and rich peripheral options have become rather important for my work. I think all these factors are most easily addressed with programming in a high level language such as C, and using well featured platforms with a common, free/cheap OS/HAL. This is probably not what you are thinking about now, but it may be in a short time.

Cheers,

madox

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...