Academic Program

Fundamentals of the C Programming Language (Part I)

rate limit

Code not recognized.

About this course

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.

Curriculum

  • 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

About this course

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.

Curriculum

  • 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