Fundamentals of the C Programming Language

This class provides an introduction to the C programming language (as specified by the ANSI C89 standard) in the context of embedded systems. We cover the C language from the ground up from a non-hardware specific point of view in order to focus on the various elements of the C language itself. While not required, previous experience with any programming language or experience with microcontrollers would be helpful. The material is accompanied by a series of hands-on exercises designed to reinforce the fundamentals, all of which are conducted within the MPLAB® X IDE using the 16 bit C compiler and Simulator. Skills learned in this class are applicable to any ANSI C compiler. Hardware and compiler-specific details such as interrupts, memory models and optimization are not discussed. These topics are covered in the compiler-specific classes.

Click image to enlarge.

 Table of Contents

  1. C in an Embedded Environment
  3. Variables
  4. The #include Directive
  5. Literal Constants
  6. Symbolic Constants
  7. The printf() Function
  8. Operators
  9. Expressions and Statements
  10. Decision Statements
  11. Loops
  12. Functions
  13. Multi-File Projects and Storage Class Specifiers
  14. Arrays
  15. Data Pointers
  16. Function Pointers
  17. Structures
  18. Bit Fields
  19. Unions
  20. Enumerations
  21. Preprocessor Macros with #define
  22. Resources


Rob Ostapiuk and Ingrid Tay
Microchip Technology Inc.

© 2024 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.