View Single Post
  #4   Spotlight this post!  
Unread 14-04-2006, 19:31
John Gutmann John Gutmann is offline
I'm right here
AKA: sparksandtabs
FRC #0340 (GRR)
Team Role: Mechanical
 
Join Date: Feb 2005
Rookie Year: 2004
Location: rochester
Posts: 804
John Gutmann has a brilliant futureJohn Gutmann has a brilliant futureJohn Gutmann has a brilliant futureJohn Gutmann has a brilliant futureJohn Gutmann has a brilliant futureJohn Gutmann has a brilliant futureJohn Gutmann has a brilliant futureJohn Gutmann has a brilliant futureJohn Gutmann has a brilliant futureJohn Gutmann has a brilliant futureJohn Gutmann has a brilliant future
Send a message via AIM to John Gutmann Send a message via MSN to John Gutmann Send a message via Yahoo to John Gutmann
Re: Programming College Courses

Quote:
Originally Posted by TimCraig
I have degrees in both Aeronautical and Mechanical engineering but I'm done mostly software (long story). One thing you need to remember that programming a robot falls into the category of "embedded" software which is quite a bit different that the common garden variety programming taught in most beginning programming classes.

However, having said that, you have to start somewhere. Most of the programming constructs are the same. So my advice would be to take a C or C++ class to start. Don't bother with toy languages like Java or C# that are in vogue now.

When you've learned the basic things like using varibles, loops, etc. Start taking special care to learn how to "fiddle bits" as those are generally very important in embedded programming. Then you can graduate to understanding and using interrupts. From there learn about memory and processor architectures because the kinds of bugs you'll run into are sometimes esoteric. You have to much more understand the type of hardware your program is running on.

The biggest thing to remember is that there are very hard time constraints in most embedded programming. In a regular desktop program if you have a long calculation to do, you just put up the hourglass and tell the user you'll get back to them when you're through crunching the numbers. In an embedded system, you need to monitor what's going on. If you go away to calculate pi to seveal million digits, your robot is going to crash into a wall or IFI is going to shut it down for not tripping the watchdog timer soon enough. You've probably heard from the programmers on your teams about the infamous 26.2 millisecond main loop.

As That is basically what I was thinking. Right Now I am working on an embedded system. The basic programming such as variables loops and all that are easy to figure out and learn about. One of my biggest problems is bit fiddling. Curse those data sheets. It is an atmega16 and about 95% of coding I have done *or gotten from people to learn from* has been defining bits. To configure it to do what you want.

Also to Tim, I have approached people on my team asking for their help and assistance but I have had no luck with trying to have people help me.
Reply With Quote