Pulse measurement; timer; int; to LCD

Dependencies:   TextLCD mbed

Committer:
szjenter
Date:
Thu Jul 11 15:00:33 2013 +0000
Revision:
0:8da28b472cc6
2013-07-11

Who changed what in which revision?

UserRevisionLine numberNew 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 }