automotive simulation thingy
Dependencies: N5110 ShiftReg Tone mbed
Fork of 1620_Project_Template by
Diff: Main/main.cpp
- Revision:
- 0:d5312060f649
- Child:
- 2:e7e39d27b11f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Main/main.cpp Wed Mar 08 20:05:58 2017 +0000 @@ -0,0 +1,98 @@ +#include "main.h" + +// objects defined here with pin numbers (if required) +DigitalIn button_a(p29); +DigitalIn button_b(p28); +DigitalIn button_c(p27); +DigitalIn button_d(p26); + +N5110 lcd(p8,p9,p10,p11,p13,p21); +BusOut leds(LED4,LED3,LED2,LED1); + +AnalogIn ldr(p15); + +PwmOut red_led(p24); +PwmOut green_led(p23); +PwmOut blue_led(p22); + +AnalogIn tmp36(p16); + +AnalogIn pot_0(p20); +AnalogIn pot_1(p19); +AnalogIn pot_2(p17); + +Tone speaker(p18); +ShiftReg shift; + +int main() +{ + init(); // initialise peripherals + welcome(); // display welcome message + + while(1) { // infinite loop + + print_menu(); // this re-prints the menu at the start of every loop + + // if any buttons pressed then jump to appropriate menu function + if (button_a.read() == 1) { + mode_A(); + } + if (button_b.read() == 1) { + mode_B(); + } + if (button_c.read() == 1) { + mode_C(); + } + if (button_d.read() == 1) { + mode_D(); + } + + // delay to prevent multiple button presses being detected + wait_ms(250); + + } +} + +void init() +{ + // turn off LEDs + red_led = 1.0; + green_led = 1.0; + blue_led = 1.0; + + // turn off 7-seg display + shift.write(0x00); + + // initialise LCD + lcd.init(); + + // PCB has external pull-down resistors so turn the internal ones off + button_a.mode(PullNone); + button_b.mode(PullNone); + button_c.mode(PullNone); + button_d.mode(PullNone); +} + +void print_menu() +{ + lcd.clear(); + lcd.printString("Press button",0,0); + lcd.printString("to select",0,1); + lcd.printString("A: Mode A",0,2); + lcd.printString("B: Mode B",0,3); + lcd.printString("C: Mode C",0,4); + lcd.printString("D: Mode D",0,5); + lcd.refresh(); +} + +void welcome() +{ + lcd.clear(); + lcd.printString(" Automotive",0,0); + lcd.printString(" Electronics",0,1); + lcd.printString(" Simulator",0,2); + lcd.printString("Craig A. Evans",0,4); + lcd.printString(" 0123456789",0,5); + lcd.refresh(); + wait(5.0); +} \ No newline at end of file