create and send the file to pc
Dependencies: MCP23017 WattBob_TextLCD mbed
Fork of HelloWorld by
main.cpp@3:6cc06b58870b, 2014-02-14 (annotated)
- Committer:
- haseo1989
- Date:
- Fri Feb 14 12:50:29 2014 +0000
- Revision:
- 3:6cc06b58870b
- Parent:
- 2:47c808c02920
- Child:
- 4:b5b159adc261
try to show something on the moniter
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
simon | 0:fb6bbc10ffa0 | 1 | #include "mbed.h" |
simon | 0:fb6bbc10ffa0 | 2 | |
haseo1989 | 2:47c808c02920 | 3 | DigitalIn 1sIP(p5); |
haseo1989 | 2:47c808c02920 | 4 | DigitalIn 400msIP1(p6); |
haseo1989 | 2:47c808c02920 | 5 | DigitalIn 400msIP2(p7); |
haseo1989 | 3:6cc06b58870b | 6 | AnalogIn 800msIP1(p19); |
haseo1989 | 3:6cc06b58870b | 7 | AnalogIn 800msIP2(p20); |
haseo1989 | 3:6cc06b58870b | 8 | |
haseo1989 | 3:6cc06b58870b | 9 | DIgitalOut bit4(LED1); |
haseo1989 | 3:6cc06b58870b | 10 | DIgitalOut bit3(LED2); |
haseo1989 | 3:6cc06b58870b | 11 | DIgitalOut bit2(LED3); |
haseo1989 | 3:6cc06b58870b | 12 | DIgitalOut bit1(LED4); |
haseo1989 | 3:6cc06b58870b | 13 | |
haseo1989 | 3:6cc06b58870b | 14 | int IP1s,IP400ms1,IP400ms2 = 0; |
haseo1989 | 3:6cc06b58870b | 15 | int IP800ms1[4],IP800ms2[4] = 0; |
haseo1989 | 3:6cc06b58870b | 16 | int freq = 0; |
haseo1989 | 3:6cc06b58870b | 17 | int aver_anl1,aver_anl2 = 0; |
haseo1989 | 3:6cc06b58870b | 18 | int digi_val = 0; |
haseo1989 | 3:6cc06b58870b | 19 | |
haseo1989 | 3:6cc06b58870b | 20 | int ero_code = 0; |
haseo1989 | 3:6cc06b58870b | 21 | |
haseo1989 | 3:6cc06b58870b | 22 | int flag4task3 = 0; |
haseo1989 | 3:6cc06b58870b | 23 | int run_task = 0; |
haseo1989 | 3:6cc06b58870b | 24 | int led_show = 0; |
simon | 0:fb6bbc10ffa0 | 25 | |
simon | 0:fb6bbc10ffa0 | 26 | int main() { |
haseo1989 | 3:6cc06b58870b | 27 | |
haseo1989 | 3:6cc06b58870b | 28 | while(1) |
haseo1989 | 3:6cc06b58870b | 29 | { |
haseo1989 | 3:6cc06b58870b | 30 | } |
haseo1989 | 3:6cc06b58870b | 31 | |
haseo1989 | 3:6cc06b58870b | 32 | } |
haseo1989 | 3:6cc06b58870b | 33 | |
haseo1989 | 3:6cc06b58870b | 34 | // wait(1) -> waiting 10ms |
haseo1989 | 3:6cc06b58870b | 35 | void task1_check_wava1s() // check the square wave per second |
haseo1989 | 3:6cc06b58870b | 36 | { |
haseo1989 | 3:6cc06b58870b | 37 | IP1s = 0; |
haseo1989 | 3:6cc06b58870b | 38 | for(int i = 0; i < 1000; i++) //the accuracy is 1us |
haseo1989 | 3:6cc06b58870b | 39 | if(1sIP == 1) |
haseo1989 | 3:6cc06b58870b | 40 | IP1s++; //the lasting time of the impulse of square wave |
haseo1989 | 3:6cc06b58870b | 41 | } |
haseo1989 | 3:6cc06b58870b | 42 | |
haseo1989 | 3:6cc06b58870b | 43 | void task2_checkDIP400ms() //check the SWes per 400ms |
haseo1989 | 3:6cc06b58870b | 44 | { |
haseo1989 | 3:6cc06b58870b | 45 | if( 400msIP1 != 0 ) |
haseo1989 | 3:6cc06b58870b | 46 | IP400ms1 = 1; |
haseo1989 | 3:6cc06b58870b | 47 | else IP400ms1 = 0; |
haseo1989 | 3:6cc06b58870b | 48 | |
haseo1989 | 3:6cc06b58870b | 49 | if( 400msIP2 !=0 ) |
haseo1989 | 3:6cc06b58870b | 50 | IP400ms2 = 1; |
haseo1989 | 3:6cc06b58870b | 51 | else TP400ms2 = 0; |
haseo1989 | 3:6cc06b58870b | 52 | |
haseo1989 | 3:6cc06b58870b | 53 | } |
haseo1989 | 3:6cc06b58870b | 54 | |
haseo1989 | 3:6cc06b58870b | 55 | void task3_checkAIP800ms() |
haseo1989 | 3:6cc06b58870b | 56 | { |
haseo1989 | 3:6cc06b58870b | 57 | IP800ms1[flag4task3] = 800msIP1; |
haseo1989 | 3:6cc06b58870b | 58 | IP800ms2[flag4task3] = 800msIP2; |
haseo1989 | 3:6cc06b58870b | 59 | |
haseo1989 | 3:6cc06b58870b | 60 | flag4task3++; |
haseo1989 | 3:6cc06b58870b | 61 | flag4task3 = flag4task3%4; |
simon | 0:fb6bbc10ffa0 | 62 | } |
haseo1989 | 3:6cc06b58870b | 63 | |
haseo1989 | 3:6cc06b58870b | 64 | void task4_display2s() |
haseo1989 | 3:6cc06b58870b | 65 | { |
haseo1989 | 3:6cc06b58870b | 66 | double freq2; |
haseo1989 | 3:6cc06b58870b | 67 | freq2 = 1/IP1s; |
haseo1989 | 3:6cc06b58870b | 68 | freq2 = freq2*1000000; |
haseo1989 | 3:6cc06b58870b | 69 | freq = freq2/1; //frenquency of square wave |
haseo1989 | 3:6cc06b58870b | 70 | |
haseo1989 | 3:6cc06b58870b | 71 | double aver_anl3,aver_anl4 = 0; |
haseo1989 | 3:6cc06b58870b | 72 | aver_anl3 = IP800ms1[0] + IP800ms1[1] + IP800ms1[2] + IP800ms1[3]; |
haseo1989 | 3:6cc06b58870b | 73 | aver_nal3 = aver_anl3/4; |
haseo1989 | 3:6cc06b58870b | 74 | |
haseo1989 | 3:6cc06b58870b | 75 | aver_nal1 = aver_anl3/1; //averaging analog input1 |
haseo1989 | 3:6cc06b58870b | 76 | |
haseo1989 | 3:6cc06b58870b | 77 | aver_anl4 = IP800ms2[0] + IP800ms2[1] + IP800ms2[2] + IP800ms2[3]; |
haseo1989 | 3:6cc06b58870b | 78 | aver_nal4 = aver_anl4/4; |
haseo1989 | 3:6cc06b58870b | 79 | |
haseo1989 | 3:6cc06b58870b | 80 | aver_nal2 = aver_anl4/1; //averaging analog input2 |
haseo1989 | 3:6cc06b58870b | 81 | |
haseo1989 | 3:6cc06b58870b | 82 | if ( IP400ms2 ==0 && IP400ms1 ==0 ) digi_val = 00; |
haseo1989 | 3:6cc06b58870b | 83 | else if ( IP400ms2 ==0 && IP400ms1 ==1 ) digi_val = 01; |
haseo1989 | 3:6cc06b58870b | 84 | else if ( IP400ms2 ==1 && IP400ms1 ==0 ) digi_val = 10; |
haseo1989 | 3:6cc06b58870b | 85 | else digi_val = 11; |
haseo1989 | 3:6cc06b58870b | 86 | // digital value |
haseo1989 | 3:6cc06b58870b | 87 | |
haseo1989 | 3:6cc06b58870b | 88 | // show out all the values |
haseo1989 | 3:6cc06b58870b | 89 | |
haseo1989 | 3:6cc06b58870b | 90 | |
haseo1989 | 3:6cc06b58870b | 91 | } |
haseo1989 | 3:6cc06b58870b | 92 | |
haseo1989 | 3:6cc06b58870b | 93 | void task5_check_SWes1.8s() |
haseo1989 | 3:6cc06b58870b | 94 | { |
haseo1989 | 3:6cc06b58870b | 95 | if((IP400ms1 == 1) && (aver_anl1 > aver_anl2)) ero_code = 3; |
haseo1989 | 3:6cc06b58870b | 96 | else ero_code = 0; //error code |
haseo1989 | 3:6cc06b58870b | 97 | |
haseo1989 | 3:6cc06b58870b | 98 | if(IP400ms2 == 1) |
haseo1989 | 3:6cc06b58870b | 99 | run_task = 1; |
haseo1989 | 3:6cc06b58870b | 100 | else |
haseo1989 | 3:6cc06b58870b | 101 | run_task = 0; |
haseo1989 | 3:6cc06b58870b | 102 | |
haseo1989 | 3:6cc06b58870b | 103 | } |
haseo1989 | 3:6cc06b58870b | 104 | |
haseo1989 | 3:6cc06b58870b | 105 | void run_task1.5s() //blink led |
haseo1989 | 3:6cc06b58870b | 106 | { |
haseo1989 | 3:6cc06b58870b | 107 | led_show = led_show%15; |
haseo1989 | 3:6cc06b58870b | 108 | |
haseo1989 | 3:6cc06b58870b | 109 | int num_led = led_show; |
haseo1989 | 3:6cc06b58870b | 110 | |
haseo1989 | 3:6cc06b58870b | 111 | if(num_led > 7) {num_led = num_led - 8; bit4 = 1 } |
haseo1989 | 3:6cc06b58870b | 112 | else bit4 = 0; |
haseo1989 | 3:6cc06b58870b | 113 | |
haseo1989 | 3:6cc06b58870b | 114 | if(num_led > 3) {num_led = num_led - 4; bit3 = 1} |
haseo1989 | 3:6cc06b58870b | 115 | else bit3 = 0; |
haseo1989 | 3:6cc06b58870b | 116 | |
haseo1989 | 3:6cc06b58870b | 117 | if(num_led > 1) {num_led = num_led - 2; bit2 = 1} |
haseo1989 | 3:6cc06b58870b | 118 | else bit2 = 0; |
haseo1989 | 3:6cc06b58870b | 119 | |
haseo1989 | 3:6cc06b58870b | 120 | bit1 = num; |
haseo1989 | 3:6cc06b58870b | 121 | |
haseo1989 | 3:6cc06b58870b | 122 | led_show++; |
haseo1989 | 3:6cc06b58870b | 123 | } |
haseo1989 | 3:6cc06b58870b | 124 | |
haseo1989 | 3:6cc06b58870b | 125 | void task6_updated5s() //update A.Frequency value B.digital input values C.Filtered analogue values |
haseo1989 | 3:6cc06b58870b | 126 | { |
haseo1989 | 3:6cc06b58870b | 127 | |
haseo1989 | 3:6cc06b58870b | 128 | |
haseo1989 | 3:6cc06b58870b | 129 | { |