A simple program to try the TESTBED evaluation KIT http://www.lextronic.fr/P22450-platine-devaluation-testbed.html

Dependencies:   mbed

Fork of TestBed-LCD20x4 by Elmicro Computer

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?

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