CENG 336 is an intermediate course in the design and implementation of software for embedded systems, starting with assembly language and concluding with C. This course teaches the necessary concepts, tools and skills for students who plan on pursuing a career in designing and implementing embedded computing systems. These tools and skills include the design and implementation of low level software components in assembly languages, building small scale embedded software systems in C and working with Real-Time Operating Systems for larger systems with more complex structures.
Assembly language and controller architecture. Peripheral interfaces: A/D and D/A conversion, parallel and serial ports, interrupts and timers/counters. I/O bus architectures. Sensors and actuators. Design and analysis techniques. Real time operating systems.
Prerequisite: CENG 232.
Microcontroller used: PIC18F8722 (Microchip Technology Inc.).
MPLABX Assembly assignment to implement a basic calculator.
MPLABX Assembly assignment to implement a simple game using interrupts and timers.
MPLABX C assignment to implement a number-guessing game with timers and interrupts.
An over-engineered timer values calculator for PIC18F8722.