Module overview
To introduce the student to the concepts of programming using the C programming language, with an emphasis on programming for embedded systems.
Aims and Objectives
Learning Outcomes
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Interact with the physical world using an AVR microcontroller
- Use a scripting language for numerical and graphical tasks
- Communicate with an AVR microcontroller using simple serial protocols
- Use a number of compilation tools
- Write programs to execute on an AVR microcontroller
Transferable and Generic Skills
Having successfully completed this module you will be able to:
- Record and report laboratory work
- Manage your time in a laboratory
- Program
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Design new structured programs
- Analyse existing programs
- Debug and test programs
Syllabus
Basic concepts:
- Storage and CPU
- Data movement
- Flow control
- Input/output
Program design:
- Structured programming
- Function decomposition
- Data representation
- Hardware/software decomposition
- Testability
Software development:
- C Programming under Windows and Linux
- IDEs and command line tools
- Debugging
- Static analysis
- Testing
Embedded software development on the AVR microcontroller:
- C programming
- Assembly language
- AVR instruction set
- Digital interfacing (De-bouncing, parallel and serial IO)
- Analogue interfacing (ADC, PWM)
- Timers and counters
- Interrupts
Simple communications:
- UART (for communications and debugging)
- I2C
- SPI
- JTAG (for programming and OCD)
Learning and Teaching
Type | Hours |
---|---|
Preparation for scheduled sessions | 12 |
Follow-up work | 12 |
Lecture | 24 |
Completion of assessment task | 60 |
Wider reading or practice | 42 |
Total study time | 150 |
Resources & Reading list
Textbooks
R.H. Barnett et. al. (2006). Embedded C Programming and the Atmel AVR. Delmar Cengage Learning.
S. Kochan (2004). Programming in C. Pearson.
M. McGrath (2012). C Programming in Easy Steps. Easy Steps Limited.
Assessment
Assessment strategy
These technical labs consider C programming and embedded C programming, addressing the above-listed learning outcomes. They are conducted under the umbrella of ELEC1029 but the marks contribute towards this module.
The design exercise considers circuits and programming, addressing the above-listed learning outcomes, as well as those of ELEC1200. It is conducted under the umbrella of ELEC1029 but the marks contribute towards this module and ELEC1200.
Summative
Summative assessment description
Method | Percentage contribution |
---|---|
Continuous Assessment | 100% |
Referral
Referral assessment description
Method | Percentage contribution |
---|---|
Set Task | 100% |
Repeat
Repeat assessment description
Method | Percentage contribution |
---|---|
Set Task | 100% |
Repeat Information
Repeat type: Internal & External