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 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
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Write programs to execute on an AVR microcontroller
- Communicate with an AVR microcontroller using simple serial protocols
- Use a scripting language for numerical and graphical tasks
- Interact with the physical world using an AVR microcontroller
- Use a number of compilation tools
Transferable and Generic Skills
Having successfully completed this module you will be able to:
- Record and report laboratory work
- Program
- Manage your time in a laboratory
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 |
---|---|
Completion of assessment task | 60 |
Preparation for scheduled sessions | 12 |
Lecture | 24 |
Follow-up work | 12 |
Wider reading or practice | 42 |
Total study time | 150 |
Resources & Reading list
Textbooks
S. Kochan (2004). Programming in C. Pearson.
M. McGrath (2012). C Programming in Easy Steps. Easy Steps Limited.
R.H. Barnett et. al. (2006). Embedded C Programming and the Atmel AVR. Delmar Cengage Learning.
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.
Summative
This is how we’ll formally assess what you have learned in this module.
Method | Percentage contribution |
---|---|
Technical Laboratories | 25% |
In-class Test | 25% |
In-class Test | 25% |
Technical Laboratories | 25% |
Referral
This is how we’ll assess you if you don’t meet the criteria to pass this module.
Method | Percentage contribution |
---|---|
Examination | 50% |
Coursework | 50% |
Repeat
An internal repeat is where you take all of your modules again, including any you passed. An external repeat is where you only re-take the modules you failed.
Method | Percentage contribution |
---|---|
Examination | 50% |
Coursework | 50% |
Repeat Information
Repeat type: Internal & External