Difference between revisions of "Tutorials"

From OpenCircuits
Jump to navigation Jump to search
m
(Programming languages)
Line 120: Line 120:
  
 
|}
 
|}
 +
 +
== Programming Languages ==
 +
 +
Very high level languages are less suitable for microcontrollers, so the choices are less then one would find on a PC.  The main programming languages used
 +
in microcontrollers are Basic, C, and assembly.  Microcontrolers are generally harder to program then PCs because it isn't as easy to view debugging output, it takes more time to flash a new firmware, and the tools are generally less developed then PC tools.  One suggestion is to learn basic programming on a PC first and then migrate to embedded systems after gaining some understanding.
 +
 +
== Basic ==
 +
 +
Some people consider this to be the easiest programming language to learn.  The language is line oriented so compilers tend to produce more debugable error messages.  Basic can either be interperated as in the Basic Stamp from Parallax or compiled as in PicBasic.
 +
 +
== C ==
 +
 +
C is a middle level language that is considered to be high enough for productivity but close enough to the hardware to have some of the power of assembly.
 +
C has free form formating rules so the look of C varies according to style and C compilers tend to produce harder to debug error messages.  C is gaining in popularity in microcontrollers as embedded systems are becomming more and more complex.  C is almost always compiled instead of interperated.  Advanced C requires understanding of pointers which requires lower level understanding of the hardware then some people are interested in going.  Several free or demo versions of compilers such as variations of GCC for microcontrollers or C18/C30 for Microchip PIC processors are available.
 +
 +
== Assembly ==
 +
 +
Assembly is a near exact mapping to the actual instructions executed by processors.  It is very processor specific.  Some architecture such as the older PIC processors are optimized for assembly programming where some RISC based architectors are optimized for higher level languages.  Some C compilers do not produce the best possible code so writing in assembly can theoritically produce faster code, but poorly written hand assembly can be worse.  Some people mix C and assembly in the same project and most compilers make it easy to integrate assembly in C programs.

Revision as of 08:27, 28 March 2008

How to understand and plan what you are doing. These links are for general theory, more specific information is linked to its specific topic on this site ( op amp tutorials may be found in the section components.... op amps. These links may be useful but we have hope to better organize and categorize them in the future. This is Just A Start, help us build up this section.

What Site Comment
  • Electronics
Electronics Tutorial Review it here.
  • Electronics
Circuit Analysis, Design & Theory Various articles, some onsite some off. Review it here.
  • Electronics
Primers - Exclusive to Jaycar Electronics From the site: Here you will find extensive primers and valuable application notes on many subjects.
  • Electronics
Welcome to the Play-Hookey Website Digital and analog circuits
  • Microcontroller
  • RS232
MC RS232 Comm Some notes on how to implement RS232 communications on a Microcontroller
  • Electronics
Circuit Idea Circuit Idea From Wikibooks, the open-content textbooks collection Revealing the Ideas behind Circuits -- A somewhat different perspective on circuits.
  • Electronics
Practical Electronics From Wikibooks, the open-content textbooks collection Could use some review.
  • Electronics
Lessons In Electric Circuits A free series of textbooks on the subjects of electricity and electronics. Not complete yet, but there is a lot of content here, and the stuff you are interested in may be done, or you may want to help finish it.
  • Electronics(Book)
The Art of Electronics Considered one of the best books on electronics ever written.
  • Programming(Book)
The C Programming Language Considered the bible of C from the orignal designers. The book is short and concise, but considered to be very accessible.


Programming Languages

Very high level languages are less suitable for microcontrollers, so the choices are less then one would find on a PC. The main programming languages used in microcontrollers are Basic, C, and assembly. Microcontrolers are generally harder to program then PCs because it isn't as easy to view debugging output, it takes more time to flash a new firmware, and the tools are generally less developed then PC tools. One suggestion is to learn basic programming on a PC first and then migrate to embedded systems after gaining some understanding.

Basic

Some people consider this to be the easiest programming language to learn. The language is line oriented so compilers tend to produce more debugable error messages. Basic can either be interperated as in the Basic Stamp from Parallax or compiled as in PicBasic.

C

C is a middle level language that is considered to be high enough for productivity but close enough to the hardware to have some of the power of assembly. C has free form formating rules so the look of C varies according to style and C compilers tend to produce harder to debug error messages. C is gaining in popularity in microcontrollers as embedded systems are becomming more and more complex. C is almost always compiled instead of interperated. Advanced C requires understanding of pointers which requires lower level understanding of the hardware then some people are interested in going. Several free or demo versions of compilers such as variations of GCC for microcontrollers or C18/C30 for Microchip PIC processors are available.

Assembly

Assembly is a near exact mapping to the actual instructions executed by processors. It is very processor specific. Some architecture such as the older PIC processors are optimized for assembly programming where some RISC based architectors are optimized for higher level languages. Some C compilers do not produce the best possible code so writing in assembly can theoritically produce faster code, but poorly written hand assembly can be worse. Some people mix C and assembly in the same project and most compilers make it easy to integrate assembly in C programs.