This project has been the main focus of the ELEC3662 Embedded Systems module. It focused on the design, build and implementation of a simple calculator device. Using the ARM Cortex M4-based, 32-bit TIVA C Launchpad development board an interface was developed for the classic 4x4 Keypad array, the HD44870 Liquid Crystal Display and a speaker into this embedded system development platform.
Using Keil uVision integrated development environment (IDE) and the GitHub source code management tool, an embedded software solution has been developed that allowed us to implement simple and more advanced concepts, such as evaluation of any infix mathematical notation (using the shunting-yard algorithm), sinusoidal wave generation in real-time, floating-point arithmetic and others. All this functionality was not part of the initial module requirements, however due to the challenging nature of previously mentioned functionality it was decided to implement them as well.
The project was successfully completed in the given timeframe and delivered up to a high standard, meeting all basic criteria and introducing numerous additional concepts as well. It resulted in a module mark of 86% (excellent 1st).
Project's GitHub repository can be found here.