AirsoftTimer software based on mbed
Dependencies: mbed TextLCD keypad
main.cpp@2:f8e46daca111, 2013-02-26 (annotated)
- 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?
User | Revision | Line number | New 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 | */ |