A simple program to try the TESTBED evaluation KIT http://www.lextronic.fr/P22450-platine-devaluation-testbed.html
Fork of TestBed-LCD20x4 by
main.cpp@1:15626458ee57, 2015-03-19 (annotated)
- Committer:
- cdupaty
- Date:
- Thu Mar 19 10:13:29 2015 +0000
- Revision:
- 1:15626458ee57
- Parent:
- 0:7c694e032688
A simple program to test TESTBED evaluation KIT
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cdupaty | 1:15626458ee57 | 1 | // essai LPC1768 sut carte TESTBED |
cdupaty | 1:15626458ee57 | 2 | // http://www.lextronic.fr/P22450-platine-devaluation-testbed.html |
cdupaty | 1:15626458ee57 | 3 | // test IO, ADC, serial, LCD, interrupt |
cdupaty | 1:15626458ee57 | 4 | |
elmicro | 0:7c694e032688 | 5 | #include "mbed.h" |
elmicro | 0:7c694e032688 | 6 | #include "TextLCD.h" |
elmicro | 0:7c694e032688 | 7 | |
cdupaty | 1:15626458ee57 | 8 | // LED1 = P5.5 LED2 = P5.6 sur carte testbed |
cdupaty | 1:15626458ee57 | 9 | // 2 Leds sur carte testBed |
cdupaty | 1:15626458ee57 | 10 | DigitalOut ledG(p6); |
cdupaty | 1:15626458ee57 | 11 | DigitalOut ledR(p5); |
cdupaty | 1:15626458ee57 | 12 | |
cdupaty | 1:15626458ee57 | 13 | // Potentiomètre sur p15 (carte testbed) |
cdupaty | 1:15626458ee57 | 14 | AnalogIn pot(p15); |
cdupaty | 1:15626458ee57 | 15 | |
cdupaty | 1:15626458ee57 | 16 | // le port serie emulé sur la connexion USB (USBTX et USBRX), necessite un driver sous Windows |
cdupaty | 1:15626458ee57 | 17 | Serial pc(USBTX, USBRX); |
cdupaty | 1:15626458ee57 | 18 | |
elmicro | 0:7c694e032688 | 19 | //the object "lcd" is initialized to act as a TextLCD with 20x4 characters |
elmicro | 0:7c694e032688 | 20 | TextLCD lcd(p26, p25, p24, p23, p22, p20, p19, TextLCD::LCD20x4); |
elmicro | 0:7c694e032688 | 21 | |
cdupaty | 1:15626458ee57 | 22 | // interruption sur BTN1 |
cdupaty | 1:15626458ee57 | 23 | InterruptIn btn1(p8); |
cdupaty | 1:15626458ee57 | 24 | |
cdupaty | 1:15626458ee57 | 25 | // IT periodique |
cdupaty | 1:15626458ee57 | 26 | Ticker tempo; |
cdupaty | 1:15626458ee57 | 27 | |
cdupaty | 1:15626458ee57 | 28 | // prototypes fonctions d'IT |
cdupaty | 1:15626458ee57 | 29 | void BTN1_interruption(); |
cdupaty | 1:15626458ee57 | 30 | void Rx_interruption(); |
cdupaty | 1:15626458ee57 | 31 | void flash_interruption(); |
cdupaty | 1:15626458ee57 | 32 | |
cdupaty | 1:15626458ee57 | 33 | int main() |
cdupaty | 1:15626458ee57 | 34 | { |
elmicro | 0:7c694e032688 | 35 | //each line of the LCD can be accessed directly using the .locate(column, line) function |
elmicro | 0:7c694e032688 | 36 | lcd.locate(0,0); |
cdupaty | 1:15626458ee57 | 37 | lcd.printf("Tests mbed"); |
elmicro | 0:7c694e032688 | 38 | lcd.locate(0,1); |
cdupaty | 1:15626458ee57 | 39 | lcd.printf("---------"); |
cdupaty | 1:15626458ee57 | 40 | lcd.locate(0,2); |
cdupaty | 1:15626458ee57 | 41 | lcd.printf("CD.01-2015"); |
cdupaty | 1:15626458ee57 | 42 | lcd.locate(5,3); |
cdupaty | 1:15626458ee57 | 43 | lcd.printf("LLAP"); |
cdupaty | 1:15626458ee57 | 44 | wait(1); |
cdupaty | 1:15626458ee57 | 45 | |
elmicro | 0:7c694e032688 | 46 | //the LCD is cleared using function .cls() |
elmicro | 0:7c694e032688 | 47 | lcd.cls(); |
cdupaty | 1:15626458ee57 | 48 | // communications |
cdupaty | 1:15626458ee57 | 49 | pc.baud(9600); |
cdupaty | 1:15626458ee57 | 50 | |
cdupaty | 1:15626458ee57 | 51 | // interruption sur RX |
cdupaty | 1:15626458ee57 | 52 | pc.attach(&Rx_interruption); |
cdupaty | 1:15626458ee57 | 53 | |
cdupaty | 1:15626458ee57 | 54 | // interruption sur BTN1 front descendant, appui |
cdupaty | 1:15626458ee57 | 55 | btn1.fall(&BTN1_interruption); |
cdupaty | 1:15626458ee57 | 56 | |
cdupaty | 1:15626458ee57 | 57 | // IT sur timer toutes les 0,5s |
cdupaty | 1:15626458ee57 | 58 | tempo.attach_us(&flash_interruption, 500000); |
cdupaty | 1:15626458ee57 | 59 | |
cdupaty | 1:15626458ee57 | 60 | while(1) { |
cdupaty | 1:15626458ee57 | 61 | lcd.locate(0,0); |
cdupaty | 1:15626458ee57 | 62 | lcd.printf("pot=%f %d \n",pot.read(),pot.read_u16 ()); |
cdupaty | 1:15626458ee57 | 63 | lcd.printf("BTN1:IT RXIT affiche\n"); |
cdupaty | 1:15626458ee57 | 64 | pc.printf("pot=%f %d\n",pot.read(),pot.read_u16 ()); |
cdupaty | 1:15626458ee57 | 65 | wait(0.5); |
elmicro | 0:7c694e032688 | 66 | } |
cdupaty | 1:15626458ee57 | 67 | //__WFI(); |
elmicro | 0:7c694e032688 | 68 | } |
cdupaty | 1:15626458ee57 | 69 | |
cdupaty | 1:15626458ee57 | 70 | void BTN1_interruption() |
cdupaty | 1:15626458ee57 | 71 | { |
cdupaty | 1:15626458ee57 | 72 | static char c=0; |
cdupaty | 1:15626458ee57 | 73 | if (!c) { |
cdupaty | 1:15626458ee57 | 74 | lcd.locate(5,3); |
cdupaty | 1:15626458ee57 | 75 | lcd.printf("INTERRUPTION"); |
cdupaty | 1:15626458ee57 | 76 | } else { |
cdupaty | 1:15626458ee57 | 77 | lcd.locate(5,3); |
cdupaty | 1:15626458ee57 | 78 | lcd.printf(" "); |
cdupaty | 1:15626458ee57 | 79 | } |
cdupaty | 1:15626458ee57 | 80 | c=~c; |
cdupaty | 1:15626458ee57 | 81 | pc.printf("\n ------------INTERRUPTION BTN1----------\n"); |
cdupaty | 1:15626458ee57 | 82 | return; |
cdupaty | 1:15626458ee57 | 83 | } |
cdupaty | 1:15626458ee57 | 84 | |
cdupaty | 1:15626458ee57 | 85 | void Rx_interruption() |
cdupaty | 1:15626458ee57 | 86 | { |
cdupaty | 1:15626458ee57 | 87 | lcd.locate(5,3); |
cdupaty | 1:15626458ee57 | 88 | lcd.printf("%c ",pc.getc()); |
cdupaty | 1:15626458ee57 | 89 | return; |
cdupaty | 1:15626458ee57 | 90 | } |
cdupaty | 1:15626458ee57 | 91 | |
cdupaty | 1:15626458ee57 | 92 | void flash_interruption() |
cdupaty | 1:15626458ee57 | 93 | { |
cdupaty | 1:15626458ee57 | 94 | ledG=!ledG; |
cdupaty | 1:15626458ee57 | 95 | ledR=!ledG; |
cdupaty | 1:15626458ee57 | 96 | return; |
cdupaty | 1:15626458ee57 | 97 | } |