Jeno Szabo
/
imp_mess_007
Pulse measurement; timer; int; to LCD
main.cpp@0:8da28b472cc6, 2013-07-11 (annotated)
- Committer:
- szjenter
- Date:
- Thu Jul 11 15:00:33 2013 +0000
- Revision:
- 0:8da28b472cc6
2013-07-11
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
szjenter | 0:8da28b472cc6 | 1 | //imp_mess_007.cpp |
szjenter | 0:8da28b472cc6 | 2 | //*********************** |
szjenter | 0:8da28b472cc6 | 3 | //* Pulse measurement * |
szjenter | 0:8da28b472cc6 | 4 | //*********************** |
szjenter | 0:8da28b472cc6 | 5 | /* D0-ra jel sorozat a USB Flight Simulator-ról, egy npn tranyós jelszint erősítő és fázis fordítón keresztül |
szjenter | 0:8da28b472cc6 | 6 | * |
szjenter | 0:8da28b472cc6 | 7 | * min: 420us |
szjenter | 0:8da28b472cc6 | 8 | * D0 . . . __________[]___[]___[]_[]___[]___[]___[]___[]_______ . . . ___[]___[]___[]___[]___[]___[]___[]______ . . . |
szjenter | 0:8da28b472cc6 | 9 | ^^ ^^ ^ ^ ^ ^ ^ ^ |
szjenter | 0:8da28b472cc6 | 10 | trigers Ch3 Ch5 szinkron impulzus |
szjenter | 0:8da28b472cc6 | 11 | |
szjenter | 0:8da28b472cc6 | 12 | * input = D0(PTA1) |
szjenter | 0:8da28b472cc6 | 13 | * trigger imp.: ~400 us |
szjenter | 0:8da28b472cc6 | 14 | * Max. imp.: ~1500 us |
szjenter | 0:8da28b472cc6 | 15 | * Min. imp.: ~760 us |
szjenter | 0:8da28b472cc6 | 16 | * Szinkron imp. >8000 us |
szjenter | 0:8da28b472cc6 | 17 | */ |
szjenter | 0:8da28b472cc6 | 18 | |
szjenter | 0:8da28b472cc6 | 19 | |
szjenter | 0:8da28b472cc6 | 20 | #include "mbed.h" |
szjenter | 0:8da28b472cc6 | 21 | #include "TextLCD.h" |
szjenter | 0:8da28b472cc6 | 22 | |
szjenter | 0:8da28b472cc6 | 23 | InterruptIn int1(D0); |
szjenter | 0:8da28b472cc6 | 24 | |
szjenter | 0:8da28b472cc6 | 25 | TextLCD lcd(PTB8, PTB9, PTB10, PTB11, PTE2, PTE3); // rs, e, d4-d7 Aruino lábkiosztással |
szjenter | 0:8da28b472cc6 | 26 | |
szjenter | 0:8da28b472cc6 | 27 | extern int imp = 0; |
szjenter | 0:8da28b472cc6 | 28 | extern int Ch1 = 0; // Ch1 - Ch7 megjelenítő tároló |
szjenter | 0:8da28b472cc6 | 29 | extern int Ch2 = 0; |
szjenter | 0:8da28b472cc6 | 30 | extern int Ch3 = 0; |
szjenter | 0:8da28b472cc6 | 31 | extern int Ch4 = 0; |
szjenter | 0:8da28b472cc6 | 32 | extern int Ch5 = 0; |
szjenter | 0:8da28b472cc6 | 33 | extern int Ch6 = 0; |
szjenter | 0:8da28b472cc6 | 34 | extern int Ch7 = 0; |
szjenter | 0:8da28b472cc6 | 35 | extern unsigned Ch_counter = 0; //csatorna számláló |
szjenter | 0:8da28b472cc6 | 36 | |
szjenter | 0:8da28b472cc6 | 37 | Timer timer1; |
szjenter | 0:8da28b472cc6 | 38 | |
szjenter | 0:8da28b472cc6 | 39 | |
szjenter | 0:8da28b472cc6 | 40 | DigitalOut K_led(LED1); |
szjenter | 0:8da28b472cc6 | 41 | DigitalOut Z_led(LED2); |
szjenter | 0:8da28b472cc6 | 42 | DigitalOut P_led(LED3); |
szjenter | 0:8da28b472cc6 | 43 | |
szjenter | 0:8da28b472cc6 | 44 | |
szjenter | 0:8da28b472cc6 | 45 | //************************************************ |
szjenter | 0:8da28b472cc6 | 46 | //************************************************ |
szjenter | 0:8da28b472cc6 | 47 | void szinkron(){ |
szjenter | 0:8da28b472cc6 | 48 | //megnézi aktuális Imp szinkron jel-e Imp>3000 |
szjenter | 0:8da28b472cc6 | 49 | //Ch1=imp; |
szjenter | 0:8da28b472cc6 | 50 | //return; |
szjenter | 0:8da28b472cc6 | 51 | if (imp>float(5000)){ |
szjenter | 0:8da28b472cc6 | 52 | Ch_counter = 7; //csatorna számláló |
szjenter | 0:8da28b472cc6 | 53 | imp = 0; |
szjenter | 0:8da28b472cc6 | 54 | return; |
szjenter | 0:8da28b472cc6 | 55 | } |
szjenter | 0:8da28b472cc6 | 56 | switch(Ch_counter){ |
szjenter | 0:8da28b472cc6 | 57 | case 7: |
szjenter | 0:8da28b472cc6 | 58 | //P_led=0; |
szjenter | 0:8da28b472cc6 | 59 | Ch1 = imp; |
szjenter | 0:8da28b472cc6 | 60 | Ch_counter--; |
szjenter | 0:8da28b472cc6 | 61 | break; |
szjenter | 0:8da28b472cc6 | 62 | case 6: |
szjenter | 0:8da28b472cc6 | 63 | //P_led=0; |
szjenter | 0:8da28b472cc6 | 64 | Ch2 = imp; |
szjenter | 0:8da28b472cc6 | 65 | Ch_counter--; |
szjenter | 0:8da28b472cc6 | 66 | break; |
szjenter | 0:8da28b472cc6 | 67 | case 5: |
szjenter | 0:8da28b472cc6 | 68 | Ch3 = imp; |
szjenter | 0:8da28b472cc6 | 69 | Ch_counter--; |
szjenter | 0:8da28b472cc6 | 70 | break; |
szjenter | 0:8da28b472cc6 | 71 | case 4: |
szjenter | 0:8da28b472cc6 | 72 | Ch4 = imp; |
szjenter | 0:8da28b472cc6 | 73 | Ch_counter--; |
szjenter | 0:8da28b472cc6 | 74 | break; |
szjenter | 0:8da28b472cc6 | 75 | case 3: |
szjenter | 0:8da28b472cc6 | 76 | Ch5 = imp; |
szjenter | 0:8da28b472cc6 | 77 | Ch_counter--; |
szjenter | 0:8da28b472cc6 | 78 | break; |
szjenter | 0:8da28b472cc6 | 79 | case 2: |
szjenter | 0:8da28b472cc6 | 80 | Ch6 = imp; |
szjenter | 0:8da28b472cc6 | 81 | lcd.locate(0,0); // LCD |
szjenter | 0:8da28b472cc6 | 82 | lcd.printf(":%d \n", Ch1); |
szjenter | 0:8da28b472cc6 | 83 | lcd.locate(5,0); |
szjenter | 0:8da28b472cc6 | 84 | lcd.printf(":%d \n", Ch2); |
szjenter | 0:8da28b472cc6 | 85 | lcd.locate(11,0); |
szjenter | 0:8da28b472cc6 | 86 | lcd.printf(":%d \n", Ch3); |
szjenter | 0:8da28b472cc6 | 87 | lcd.locate(0,1); |
szjenter | 0:8da28b472cc6 | 88 | lcd.printf(":%d \n", Ch4); |
szjenter | 0:8da28b472cc6 | 89 | lcd.locate(5,1); |
szjenter | 0:8da28b472cc6 | 90 | lcd.printf(":%d \n", Ch5); |
szjenter | 0:8da28b472cc6 | 91 | lcd.locate(11,1); |
szjenter | 0:8da28b472cc6 | 92 | lcd.printf(":%d \n", Ch6); |
szjenter | 0:8da28b472cc6 | 93 | Ch_counter--; |
szjenter | 0:8da28b472cc6 | 94 | break; |
szjenter | 0:8da28b472cc6 | 95 | default: |
szjenter | 0:8da28b472cc6 | 96 | Ch7 = imp; |
szjenter | 0:8da28b472cc6 | 97 | break; |
szjenter | 0:8da28b472cc6 | 98 | } |
szjenter | 0:8da28b472cc6 | 99 | } |
szjenter | 0:8da28b472cc6 | 100 | //************************************************ |
szjenter | 0:8da28b472cc6 | 101 | void tm1_start() { |
szjenter | 0:8da28b472cc6 | 102 | //Z_led=0; |
szjenter | 0:8da28b472cc6 | 103 | timer1.start(); |
szjenter | 0:8da28b472cc6 | 104 | } |
szjenter | 0:8da28b472cc6 | 105 | //************************************************ |
szjenter | 0:8da28b472cc6 | 106 | void tm1_stop() { |
szjenter | 0:8da28b472cc6 | 107 | //P_led=0; |
szjenter | 0:8da28b472cc6 | 108 | imp=timer1.read_us(); |
szjenter | 0:8da28b472cc6 | 109 | timer1.stop(); |
szjenter | 0:8da28b472cc6 | 110 | timer1.reset(); |
szjenter | 0:8da28b472cc6 | 111 | szinkron(); |
szjenter | 0:8da28b472cc6 | 112 | } |
szjenter | 0:8da28b472cc6 | 113 | //************************************************ |
szjenter | 0:8da28b472cc6 | 114 | //************************************************ |
szjenter | 0:8da28b472cc6 | 115 | int main() { |
szjenter | 0:8da28b472cc6 | 116 | K_led=1; |
szjenter | 0:8da28b472cc6 | 117 | Z_led=1; |
szjenter | 0:8da28b472cc6 | 118 | P_led=1; |
szjenter | 0:8da28b472cc6 | 119 | lcd.cls(); |
szjenter | 0:8da28b472cc6 | 120 | lcd.printf("Pulse measuremen\n"); |
szjenter | 0:8da28b472cc6 | 121 | lcd.printf("imp_mess_007.cpp\n"); |
szjenter | 0:8da28b472cc6 | 122 | wait(1); |
szjenter | 0:8da28b472cc6 | 123 | lcd.cls(); // TextLCD.h ban leirt fuggveny |
szjenter | 0:8da28b472cc6 | 124 | |
szjenter | 0:8da28b472cc6 | 125 | int1.fall(&tm1_start); //Piros |
szjenter | 0:8da28b472cc6 | 126 | int1.rise(&tm1_stop); //Zöld |
szjenter | 0:8da28b472cc6 | 127 | while(1) { |
szjenter | 0:8da28b472cc6 | 128 | K_led = !K_led; |
szjenter | 0:8da28b472cc6 | 129 | wait(0.25); |
szjenter | 0:8da28b472cc6 | 130 | |
szjenter | 0:8da28b472cc6 | 131 | |
szjenter | 0:8da28b472cc6 | 132 | } |
szjenter | 0:8da28b472cc6 | 133 | } |