M103 - A Comprehensive Introduction to Embedded C Programming of Microchip 8 bit devices using the XC8 Compiler
Duration: 5 Days
This course is aimed at engineers with an understanding of microelectronics and programming who intend to create projects using the 'C' language, but who are new to the Microchip 8 bit processor architectures and/or MPLABX and the XC8 'C' compiler. Some prior knowledge of programming is assumed, together with familiarity with code development using an IDE. This is a very intensive course and its contents can be tailored to the requirements and experience of the attendees.
This hands-on course aims to provide engineers with an understanding of the 8 bit PIC microcontrollers and experience of using the MPLABX IDE and the XC8 compiler to create and debug 'C' programs. It aims to provide students with
- An understanding the architecture and features of the Microchip 8 bit microcontrollers.
- Hands-on experience of using MPLABX and XC8 to create and debug 'C' programs on Microchip 8 bit PIC microcontrollers.
- Experience in making driving on-chip peripherals by using existing libraries, or implementing custom libraries.
- Overview of Development Tools
- Microchip development software: MPLABX and associated tools
- XC8 'C' compiler
- Microchip In-Circuit Debugger (ICD3) hardware
- Overview of available development boards
- The PIC10, PIC12, PIC16 and PIC18 Architectures
- Harvard versus Von Neumann architecture
- Organisation of data memory
- On-chip peripherals
- In-Circuit Serial Programming (ICSP)
- Differences between the PIC10,PIC12 , PIC16 and PIC18 processor architectures and instruction sets.
- The XC8 Compiler
- Key features and ANSI C extensions to support the 8 bit processor architectures
- XC8 data types, storage classes and type qualifiers
- Programming style - use of templates and comments
- Debugging at 'C' source level using MPLABX and ICD3
- Inclusion of external source code modules to add functionality to the project
- Interrupt service routines - how to create interrupt handlers using XC8
- Developing and testing pure (portable) ANSI C code on the PC
- Overview of Microsoft Visual Studio and Eclipse CDT as C IDEs
- Advantages of testing and developing portable code on a PC.
- Foundations of C programming
- Basic C data types - characters, integers and floating point numbers.
- C arithmetic and logical operators
- Functions and function prototypes and header files
- if - else and switch statements
- Arrays and pointers
- Iteration using for loops, while loops and do - while loops
- Data structures in C
- Function pointers
- Pointers to data structures
- Data structures containing function pointers
- Unions and enums
- Bit level operators and bit level data structures
- Processor specific C - Manipulating Memory Mapped Microcontroller Registers from within C code
- How memory mapped registers are associated with variables and data structures
- Understanding the processor specific C header files
- Implementing interrupt handler code in C
- Implementing a custom peripheral library
- Overview of Microchip supplied peripheral libraries
- Embedded applications and examples
- Flashing LEDs and detecting button presses
- Software vs. timer interrupt driven delays
- Using ADC to acquire analog sensor data
- Basic serial communications using RS232
- Implementing a simple user interface using buttons and a LCD
- Acquiring data from a simple I2C / SPI sensor
- Implementing a basic timer interrupt driven scheduler