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 number of compilation tools
- 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
Transferable and Generic Skills
Having successfully completed this module you will be able to:
- Program
- Manage your time in a laboratory
- Record and report laboratory work
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Design new structured programs
- Debug and test programs
- Analyse existing 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 |
Completion of assessment task | 60 |
Wider reading or practice | 42 |
Lecture | 24 |
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 |
---|---|
In-class Test | 25% |
Technical Laboratories | 25% |
Technical Laboratories | 25% |
In-class Test | 25% |
Referral
This is how we’ll assess you if you don’t meet the criteria to pass this module.
Method | Percentage contribution |
---|---|
Coursework | 50% |
Examination | 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