- C in an Embedded Environment
-
C in an Embedded Environment
-
Development Tools Data Flow
-
The C Runtime Environment
-
A Simple C Program
- Comments and Variables
-
Comments
-
Variables
-
Identifiers
-
Keywords
-
Data Types
-
Data Type Qualifiers
-
Variable Declarations and Definitions
-
Lab Exercise 1: Variables and Data Types
- The #include Directive
-
Include Directives
- Literal Constants
-
Literal Constants
-
Integer Literals
-
Floating Point Literals
-
Literal Qualifiers
-
Character Literals
-
String Literals
-
Escape Sequences
- Symbolic Constants
-
Symbolic Constants
-
Text Substitution Labels
-
Constant Variables
-
Lab Exercise 2: Symbolic Constants
- The printf Function
-
The printf() Function
-
Lab Exercise 3: The printf() Function
- Operators
-
Operators
-
Arithmetic Operators
-
Division Operator
-
Implicit Type Conversion
-
Modulus Operator
-
Increment and Decrement Operators
-
Assignment Statements
-
Relational Operators
-
The Difference Between = and ==
-
Logical Operators
-
Short Circuit Evaluation
-
Bitwise Operators
-
The Difference Between & and &&
-
Shift Operators
-
Memory Addressing Operators
-
Conditional Operator
-
Explicit Type Cast Operator
-
Other Operators
-
Precedence
-
Lab Exercise 4: Operators
- Expressions and Statements
-
Expression Statements
Header Navigation
Academic ProgramFundamentals of the C Programming Language (Part I)
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.