AirsoftTimer software based on mbed

Dependencies:   mbed TextLCD keypad

Committer:
sillevl
Date:
Tue Feb 26 19:04:20 2013 +0000
Revision:
2:f8e46daca111
Parent:
1:c80248c83025
Child:
3:ce34dfe2463b
Threaded alive led;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sillevl 1:c80248c83025 1 #include "mbed.h"
sillevl 2:f8e46daca111 2 #include "cmsis_os.h"
sillevl 2:f8e46daca111 3
sillevl 2:f8e46daca111 4
sillevl 1:c80248c83025 5 //#include "Airsofttimer.h"
sillevl 1:c80248c83025 6 #include "TextLCD.h"
sillevl 1:c80248c83025 7
sillevl 1:c80248c83025 8
sillevl 2:f8e46daca111 9 struct product {
sillevl 2:f8e46daca111 10 int weight;
sillevl 2:f8e46daca111 11 float price;
sillevl 2:f8e46daca111 12 } ;
sillevl 2:f8e46daca111 13
sillevl 1:c80248c83025 14
sillevl 1:c80248c83025 15
sillevl 2:f8e46daca111 16 DigitalOut heartbeatLed(LED1);
sillevl 2:f8e46daca111 17 DigitalOut led2(LED2);
sillevl 2:f8e46daca111 18 DigitalOut led3(LED3);
sillevl 2:f8e46daca111 19 DigitalOut led4(LED4);
sillevl 1:c80248c83025 20
sillevl 2:f8e46daca111 21 /*DigitalOut rs(P1_30);
sillevl 1:c80248c83025 22 DigitalOut e(P1_31);
sillevl 1:c80248c83025 23 DigitalOut d4(P0_23);
sillevl 1:c80248c83025 24 DigitalOut d5(P0_24);
sillevl 1:c80248c83025 25 DigitalOut d6(P0_25);
sillevl 2:f8e46daca111 26 DigitalOut d7(P0_26);*/
sillevl 2:f8e46daca111 27
sillevl 2:f8e46daca111 28 DigitalOut buzzer(P2_3);
sillevl 1:c80248c83025 29
sillevl 1:c80248c83025 30 DigitalOut leda(P2_4);
sillevl 1:c80248c83025 31 DigitalOut ledb(P2_5);
sillevl 1:c80248c83025 32
sillevl 2:f8e46daca111 33 DigitalOut col1(P0_16);
sillevl 2:f8e46daca111 34 DigitalOut col2(P0_17);
sillevl 2:f8e46daca111 35 DigitalOut col3(P0_18);
sillevl 2:f8e46daca111 36
sillevl 2:f8e46daca111 37 DigitalIn row1(P0_8);
sillevl 2:f8e46daca111 38 DigitalIn row2(P0_9);
sillevl 2:f8e46daca111 39 DigitalIn row3(P0_10);
sillevl 2:f8e46daca111 40 DigitalIn row4(P0_11);
sillevl 2:f8e46daca111 41
sillevl 2:f8e46daca111 42 DigitalIn button(P0_5);
sillevl 2:f8e46daca111 43 DigitalIn key(P0_4);
sillevl 2:f8e46daca111 44
sillevl 2:f8e46daca111 45 int colCounter = 1;
sillevl 2:f8e46daca111 46
sillevl 2:f8e46daca111 47 //keyboardRowPins = {P0_8 , P0_9 , P0_10, P0_11}; // ROWS=P0.8 -> P0.11
sillevl 2:f8e46daca111 48 //keyboardColPins = {P0_16, P0_17, P0_18}; // COLS=P0.16 -> P0.18
sillevl 2:f8e46daca111 49
sillevl 2:f8e46daca111 50 void beep(){
sillevl 2:f8e46daca111 51 buzzer = 1;
sillevl 2:f8e46daca111 52 wait(0.02);
sillevl 2:f8e46daca111 53 buzzer = 0;
sillevl 2:f8e46daca111 54 }
sillevl 2:f8e46daca111 55
sillevl 2:f8e46daca111 56 void heartbeatThread(void const *args){
sillevl 2:f8e46daca111 57 while(true){
sillevl 2:f8e46daca111 58 heartbeatLed = 1;
sillevl 2:f8e46daca111 59 osDelay(10);
sillevl 2:f8e46daca111 60 heartbeatLed = 0;
sillevl 2:f8e46daca111 61 osDelay(300);
sillevl 2:f8e46daca111 62 heartbeatLed = 1;
sillevl 2:f8e46daca111 63 osDelay(10);
sillevl 2:f8e46daca111 64 heartbeatLed = 0;
sillevl 2:f8e46daca111 65 osDelay(680);
sillevl 2:f8e46daca111 66 }
sillevl 2:f8e46daca111 67 }
sillevl 2:f8e46daca111 68
sillevl 2:f8e46daca111 69 osThreadDef(heartbeatThread, osPriorityNormal, DEFAULT_STACK_SIZE);
sillevl 2:f8e46daca111 70
sillevl 1:c80248c83025 71 int main()
sillevl 1:c80248c83025 72 {
sillevl 2:f8e46daca111 73 osThreadCreate(osThread(heartbeatThread), NULL);
sillevl 2:f8e46daca111 74 TextLCD lcd(P1_30, P1_31, P0_23, P0_24, P0_25, P0_26, TextLCD::LCD20x4); // rs, e, d4-d7
sillevl 2:f8e46daca111 75
sillevl 1:c80248c83025 76 while(1) {
sillevl 2:f8e46daca111 77 //lcd.cls();
sillevl 2:f8e46daca111 78 lcd.locate(0,0);
sillevl 2:f8e46daca111 79 lcd.printf("AirsoftTimer\n");
sillevl 2:f8e46daca111 80 col1 = 1;
sillevl 2:f8e46daca111 81 col2 = 0;
sillevl 2:f8e46daca111 82 col3 = 0;
sillevl 2:f8e46daca111 83 lcd.printf("r1:%d r2:%d r3:%d r4:%d\n", row1.read(), row2.read(), row3.read(), row4.read());
sillevl 2:f8e46daca111 84 lcd.printf("Buzzer:%d Key:%d\n",buzzer.read(), key.read());
sillevl 2:f8e46daca111 85
sillevl 2:f8e46daca111 86 /* led2 = 1;
sillevl 2:f8e46daca111 87 led3 = 1;
sillevl 2:f8e46daca111 88 led4 = 1;*/
sillevl 2:f8e46daca111 89 //rs = e = d4 = d5 = d6 = d7 = 1;
sillevl 1:c80248c83025 90 leda = ledb = 1;
sillevl 2:f8e46daca111 91 beep();
sillevl 1:c80248c83025 92
sillevl 2:f8e46daca111 93 /* switch(colCounter){
sillevl 2:f8e46daca111 94 case 1:
sillevl 2:f8e46daca111 95 col1=1;
sillevl 2:f8e46daca111 96 col2=0;
sillevl 2:f8e46daca111 97 col3=0;
sillevl 2:f8e46daca111 98 break;
sillevl 2:f8e46daca111 99 case 2:
sillevl 2:f8e46daca111 100 col1=0;
sillevl 2:f8e46daca111 101 col2=1;
sillevl 2:f8e46daca111 102 col3=0;
sillevl 2:f8e46daca111 103 break;
sillevl 2:f8e46daca111 104 case 3:
sillevl 2:f8e46daca111 105 col1=0;
sillevl 2:f8e46daca111 106 col2=0;
sillevl 2:f8e46daca111 107 col3=1;
sillevl 2:f8e46daca111 108 break;
sillevl 2:f8e46daca111 109 }
sillevl 2:f8e46daca111 110
sillevl 2:f8e46daca111 111 colCounter++;
sillevl 2:f8e46daca111 112 if(colCounter > 3) colCounter = 1;*/
sillevl 2:f8e46daca111 113
sillevl 2:f8e46daca111 114 wait(0.2);
sillevl 2:f8e46daca111 115
sillevl 2:f8e46daca111 116 ///////////////////////
sillevl 2:f8e46daca111 117
sillevl 2:f8e46daca111 118
sillevl 2:f8e46daca111 119 led2 = 0;
sillevl 2:f8e46daca111 120 led3 = 0;
sillevl 2:f8e46daca111 121 led4 = 0;
sillevl 2:f8e46daca111 122 //rs = e = d4 = d5 = d6 = d7 = 0;
sillevl 1:c80248c83025 123 leda = ledb = 0;
sillevl 2:f8e46daca111 124 osDelay(200);
sillevl 1:c80248c83025 125 }
sillevl 1:c80248c83025 126 }
sillevl 2:f8e46daca111 127
sillevl 2:f8e46daca111 128
sillevl 2:f8e46daca111 129
sillevl 2:f8e46daca111 130 /*
sillevl 2:f8e46daca111 131 char degree[8] = {0x02,0x05,0x05,0x02,0x00,0x00,0x00,0x00};
sillevl 2:f8e46daca111 132
sillevl 2:f8e46daca111 133 lcd.putcustomChar(1,degree,0x01,12,0);
sillevl 2:f8e46daca111 134
sillevl 2:f8e46daca111 135 lcd.printf("C");
sillevl 2:f8e46daca111 136 */