Embedded software Assessment 2

Dependencies:   MCP23017 SDFileSystem USBDevice WattBob_TextLCD mbed

Committer:
muaiyd
Date:
Sat Feb 15 19:40:44 2014 +0000
Revision:
6:7c31aabc2533
Parent:
5:99cf489dcae4
finish the interrupt

Who changed what in which revision?

UserRevisionLine numberNew contents of line
muaiyd 0:86bba6bf9b6f 1 #include "MCP23017.h"
muaiyd 0:86bba6bf9b6f 2 #include "WattBob_TextLCD.h"
muaiyd 0:86bba6bf9b6f 3 #include "mbed.h"
muaiyd 0:86bba6bf9b6f 4
muaiyd 0:86bba6bf9b6f 5 MCP23017 Port(p9,p10,0x40) ; // 16-bit parallel I/O object
muaiyd 0:86bba6bf9b6f 6 WattBob_TextLCD LCD(&Port); // pointer to 2*16 chacater LCD object
muaiyd 0:86bba6bf9b6f 7
muaiyd 1:9a3cfeca7ecd 8 Timer TimeA;
muaiyd 4:4bb228d1f6c2 9 Ticker CallFunction1;
muaiyd 4:4bb228d1f6c2 10 Ticker CallFunction2;
muaiyd 4:4bb228d1f6c2 11 Ticker CallFunction3;
muaiyd 4:4bb228d1f6c2 12 Ticker CallFunction4;
muaiyd 4:4bb228d1f6c2 13 Ticker CallFunction5;
muaiyd 4:4bb228d1f6c2 14 Ticker CallFunction6;
muaiyd 4:4bb228d1f6c2 15 Ticker CallFunction7;
muaiyd 1:9a3cfeca7ecd 16
muaiyd 4:4bb228d1f6c2 17 DigitalOut led1(LED1);
muaiyd 4:4bb228d1f6c2 18 DigitalOut led2(LED2);
muaiyd 4:4bb228d1f6c2 19 DigitalOut led3(LED3);
muaiyd 4:4bb228d1f6c2 20 DigitalOut led4(LED4);
muaiyd 5:99cf489dcae4 21
muaiyd 6:7c31aabc2533 22
muaiyd 0:86bba6bf9b6f 23 void Write_LCD(const char STR[],int8_t PY,int8_t PX,bool clr){
muaiyd 0:86bba6bf9b6f 24 if(clr)
muaiyd 0:86bba6bf9b6f 25 LCD.cls();
muaiyd 0:86bba6bf9b6f 26 LCD.locate(PY,PX);
muaiyd 0:86bba6bf9b6f 27 LCD.printf(STR);
muaiyd 0:86bba6bf9b6f 28 }
muaiyd 0:86bba6bf9b6f 29
muaiyd 0:86bba6bf9b6f 30 void Init_LCD(){
muaiyd 0:86bba6bf9b6f 31 Port.write_bit(1,BL_BIT);
muaiyd 0:86bba6bf9b6f 32 Write_LCD("Muaiyd",0,4,1);
muaiyd 0:86bba6bf9b6f 33 Write_LCD("Heriot-Watt Uni.",1,0,0);
muaiyd 4:4bb228d1f6c2 34 }
muaiyd 6:7c31aabc2533 35 void flip() {
muaiyd 6:7c31aabc2533 36 led1 = !led1;
muaiyd 6:7c31aabc2533 37 }
muaiyd 4:4bb228d1f6c2 38
muaiyd 4:4bb228d1f6c2 39 void job1(){
muaiyd 6:7c31aabc2533 40
muaiyd 4:4bb228d1f6c2 41 Write_LCD("2 S",0,0,1);
muaiyd 4:4bb228d1f6c2 42 led1=!led1;
muaiyd 6:7c31aabc2533 43 InterruptIn button(p5);
muaiyd 6:7c31aabc2533 44 led2=1;
muaiyd 6:7c31aabc2533 45 for(int i=0;i<1000000;i++){
muaiyd 6:7c31aabc2533 46 button.rise(&flip);
muaiyd 6:7c31aabc2533 47 }
muaiyd 4:4bb228d1f6c2 48 }
muaiyd 4:4bb228d1f6c2 49
muaiyd 4:4bb228d1f6c2 50 void job2(){
muaiyd 4:4bb228d1f6c2 51 Write_LCD("4 S",0,5,0);
muaiyd 4:4bb228d1f6c2 52 led2=!led2;
muaiyd 4:4bb228d1f6c2 53 }
muaiyd 4:4bb228d1f6c2 54
muaiyd 4:4bb228d1f6c2 55 void job3(){
muaiyd 4:4bb228d1f6c2 56 Write_LCD("6 S",0,9,0);
muaiyd 4:4bb228d1f6c2 57 led3=!led3;
muaiyd 4:4bb228d1f6c2 58 }
muaiyd 4:4bb228d1f6c2 59
muaiyd 4:4bb228d1f6c2 60 void job4(){
muaiyd 4:4bb228d1f6c2 61 Write_LCD("8 S",0,12,0);
muaiyd 4:4bb228d1f6c2 62 led4=!led4;
muaiyd 4:4bb228d1f6c2 63 }
muaiyd 4:4bb228d1f6c2 64
muaiyd 4:4bb228d1f6c2 65 void job5(){
muaiyd 4:4bb228d1f6c2 66 Write_LCD("10 S",1,0,0);
muaiyd 4:4bb228d1f6c2 67 }
muaiyd 4:4bb228d1f6c2 68
muaiyd 4:4bb228d1f6c2 69 void job6(){
muaiyd 4:4bb228d1f6c2 70 Write_LCD("12 S",1,5,0);
muaiyd 4:4bb228d1f6c2 71 }
muaiyd 4:4bb228d1f6c2 72
muaiyd 4:4bb228d1f6c2 73 void job7(){
muaiyd 4:4bb228d1f6c2 74 Write_LCD("22 S",1,10,0);
muaiyd 0:86bba6bf9b6f 75 }