Guillermo Stedile / RA8875

Dependencies:   GPS

Dependents:   SNOCC_V1 SNOCC_V2

Fork of RA8875 by SNOCC

Committer:
gstedile
Date:
Sun Dec 04 20:16:21 2016 +0000
Revision:
112:b2ce766d095d
Prueba;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gstedile 112:b2ce766d095d 1
gstedile 112:b2ce766d095d 2 #include "mbed.h" // v112
gstedile 112:b2ce766d095d 3 #include "RA8875.h" // v102
gstedile 112:b2ce766d095d 4 #include "MyFont18x32.h"
gstedile 112:b2ce766d095d 5 #include "BPG_Arial08x08.h"
gstedile 112:b2ce766d095d 6 #include "BPG_Arial10x10.h"
gstedile 112:b2ce766d095d 7 #include "BPG_Arial20x20.h"
gstedile 112:b2ce766d095d 8 #include "BPG_Arial31x32.h"
gstedile 112:b2ce766d095d 9 #include "BPG_Arial63x63.h"
gstedile 112:b2ce766d095d 10
gstedile 112:b2ce766d095d 11 // Agrego includes para uso en la comunicacion con el gps.
gstedile 112:b2ce766d095d 12 #include "GPS.h"
gstedile 112:b2ce766d095d 13
gstedile 112:b2ce766d095d 14 // Agrego includes para medicion de pulsos del sensor de flujo
gstedile 112:b2ce766d095d 15 #include "DebounceIn.h"
gstedile 112:b2ce766d095d 16
gstedile 112:b2ce766d095d 17 #include <sstream> //include this to use string streams
gstedile 112:b2ce766d095d 18 #include <string>
gstedile 112:b2ce766d095d 19
gstedile 112:b2ce766d095d 20 int Counter=1234;
gstedile 112:b2ce766d095d 21
gstedile 112:b2ce766d095d 22
gstedile 112:b2ce766d095d 23
gstedile 112:b2ce766d095d 24 LocalFileSystem local("local"); // Because I want <PrintScreen>
gstedile 112:b2ce766d095d 25 Serial pc(USBTX, USBRX); // And a little feedback
gstedile 112:b2ce766d095d 26
gstedile 112:b2ce766d095d 27 int main()
gstedile 112:b2ce766d095d 28 {
gstedile 112:b2ce766d095d 29 RA8875 lcd(p5, p6, p7, p12, NC, "tft"); // MOSI, MISO, SCK, /ChipSelect, /reset, name
gstedile 112:b2ce766d095d 30
gstedile 112:b2ce766d095d 31 pc.baud(460800); // I like a snappy terminal, so crank it up!
gstedile 112:b2ce766d095d 32 pc.printf("\r\nRA8875 Soft Fonts - Build " __DATE__ " " __TIME__ "\r\n");
gstedile 112:b2ce766d095d 33
gstedile 112:b2ce766d095d 34 lcd.init();
gstedile 112:b2ce766d095d 35
gstedile 112:b2ce766d095d 36
gstedile 112:b2ce766d095d 37
gstedile 112:b2ce766d095d 38
gstedile 112:b2ce766d095d 39
gstedile 112:b2ce766d095d 40
gstedile 112:b2ce766d095d 41 // **************************
gstedile 112:b2ce766d095d 42 //RunTestSet(lcd, pc); // If the library was compiled for test mode...
gstedile 112:b2ce766d095d 43
gstedile 112:b2ce766d095d 44 lcd.foreground(RGB(255,255,0)); // Seteo del color de las letras.
gstedile 112:b2ce766d095d 45
gstedile 112:b2ce766d095d 46
gstedile 112:b2ce766d095d 47
gstedile 112:b2ce766d095d 48 //lcd.puts(0,0, "RA8875 Soft Fonts - Build " __DATE__ " " __TIME__ "\r\n");
gstedile 112:b2ce766d095d 49
gstedile 112:b2ce766d095d 50 //lcd.SelectUserFont(Dave_Smart18x32);
gstedile 112:b2ce766d095d 51 //lcd.puts("**** ! Soft Fonts ! **** 0123456789\r\n");
gstedile 112:b2ce766d095d 52 //lcd.puts("ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n");
gstedile 112:b2ce766d095d 53 //lcd.puts("abcdefghijklmnopqrstuvwxyz\r\n");
gstedile 112:b2ce766d095d 54 //lcd.SelectUserFont();
gstedile 112:b2ce766d095d 55 //lcd.puts("Back to normal\r\n");
gstedile 112:b2ce766d095d 56 //lcd.SelectUserFont(BPG_Arial08x08);
gstedile 112:b2ce766d095d 57 //lcd.puts("BPG_Arial08x08 ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n");
gstedile 112:b2ce766d095d 58 //lcd.puts("BPG_Arial08x08 abcdefghijklmnopqrstuvwxyz\r\n");
gstedile 112:b2ce766d095d 59 //lcd.SelectUserFont(BPG_Arial10x10);
gstedile 112:b2ce766d095d 60 //lcd.puts("BPG_Arial10x10 ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n");
gstedile 112:b2ce766d095d 61 //lcd.puts("BPG_Arial10x10 abcdefghijklmnopqrstuvwxyz\r\n");
gstedile 112:b2ce766d095d 62 //lcd.SelectUserFont(BPG_Arial20x20);
gstedile 112:b2ce766d095d 63 //lcd.puts("BPG_Arial20x20 ");
gstedile 112:b2ce766d095d 64 //lcd.SelectUserFont(BPG_Arial31x32);
gstedile 112:b2ce766d095d 65 //lcd.puts("BPG_Arial31x32\r\n");
gstedile 112:b2ce766d095d 66
gstedile 112:b2ce766d095d 67 // lcd.init();
gstedile 112:b2ce766d095d 68 //lcd.printf("printing 3 x 2 = %d", 3*2);
gstedile 112:b2ce766d095d 69 /*lcd.circle( 400,25, 25, BrightRed);
gstedile 112:b2ce766d095d 70 lcd.fillcircle( 400,25, 15, RGB(128,255,128));
gstedile 112:b2ce766d095d 71 lcd.ellipse( 440,75, 35,20, BrightBlue);
gstedile 112:b2ce766d095d 72 lcd.fillellipse( 440,75, 25,10, Blue);
gstedile 112:b2ce766d095d 73 */
gstedile 112:b2ce766d095d 74
gstedile 112:b2ce766d095d 75 /*
gstedile 112:b2ce766d095d 76 lcd.SelectUserFont(BPG_Arial63x63);
gstedile 112:b2ce766d095d 77 //lcd.puts("BPG_Arial63x63");
gstedile 112:b2ce766d095d 78 lcd.puts(" FIUBA\r\n");
gstedile 112:b2ce766d095d 79
gstedile 112:b2ce766d095d 80 lcd.puts("------------------------\r\n");
gstedile 112:b2ce766d095d 81 lcd.puts("Proyecto SNOCC\r\n");
gstedile 112:b2ce766d095d 82 */
gstedile 112:b2ce766d095d 83
gstedile 112:b2ce766d095d 84 /*lcd.triangle( 440,100, 475,110, 450,125, Magenta);
gstedile 112:b2ce766d095d 85 lcd.filltriangle( 445,105, 467,111, 452,120, Cyan);
gstedile 112:b2ce766d095d 86 //lcd.rect( 400,130, 475,155, Brown);
gstedile 112:b2ce766d095d 87 lcd.rect( 170,210, 55,235, Brown);
gstedile 112:b2ce766d095d 88 //lcd.fillrect( 405,135, 470,150, Pink);
gstedile 112:b2ce766d095d 89 lcd.fillrect( 165,215, 60,230, Pink);
gstedile 112:b2ce766d095d 90 //lcd.roundrect( 410,160, 475,190, 10,8, Yellow);
gstedile 112:b2ce766d095d 91 lcd.roundrect( 210,200, 275,230, 10,8, Green);
gstedile 112:b2ce766d095d 92 //lcd.fillroundrect(415,165, 470,185, 5,3, Orange);
gstedile 112:b2ce766d095d 93 lcd.fillroundrect(215,205, 270,225, 5,3, Yellow);
gstedile 112:b2ce766d095d 94 lcd.line( 330,200, 360,230, RGB(0,255,255));
gstedile 112:b2ce766d095d 95 for (int i=0; i<=30; i+=5)
gstedile 112:b2ce766d095d 96 lcd.pixel(335+i,200+i, White);
gstedile 112:b2ce766d095d 97 */
gstedile 112:b2ce766d095d 98
gstedile 112:b2ce766d095d 99
gstedile 112:b2ce766d095d 100
gstedile 112:b2ce766d095d 101
gstedile 112:b2ce766d095d 102
gstedile 112:b2ce766d095d 103
gstedile 112:b2ce766d095d 104
gstedile 112:b2ce766d095d 105 lcd.SelectUserFont(BPG_Arial20x20); // Seleccion de tipo y tamaño de letras
gstedile 112:b2ce766d095d 106 //lcd.puts("BPG_Arial63x63");
gstedile 112:b2ce766d095d 107 /* lcd.puts("\t\tFIUBA\r\n");
gstedile 112:b2ce766d095d 108 lcd.puts("---------------------\r\n");
gstedile 112:b2ce766d095d 109 lcd.printf("Contador = %d", Counter);
gstedile 112:b2ce766d095d 110 lcd.puts("Proyecto SNOCC");
gstedile 112:b2ce766d095d 111
gstedile 112:b2ce766d095d 112 pc.printf("PrintScreen activated ...\r\n");
gstedile 112:b2ce766d095d 113 RetCode_t r = lcd.PrintScreen(0,0,480,272,"/sd/file.bmp");
gstedile 112:b2ce766d095d 114 pc.printf(" PrintScreen returned %d\r\n", r);
gstedile 112:b2ce766d095d 115 */
gstedile 112:b2ce766d095d 116 lcd.SetTextCursor(0,0); // Pongo cursor en posicion
gstedile 112:b2ce766d095d 117 lcd.puts("Proyecto SNOCC\r\n");
gstedile 112:b2ce766d095d 118 GPS gps(p9, p10); // Agrego para comunicacion con el GPS
gstedile 112:b2ce766d095d 119
gstedile 112:b2ce766d095d 120 //Inicializo variables para el sensor de flujo
gstedile 112:b2ce766d095d 121 //----------------------------------------------------
gstedile 112:b2ce766d095d 122 DigitalOut myled(LED1);
gstedile 112:b2ce766d095d 123 DigitalOut myled2(LED2);
gstedile 112:b2ce766d095d 124 DigitalOut myled3(LED3);
gstedile 112:b2ce766d095d 125 DigitalOut myled4(LED4);
gstedile 112:b2ce766d095d 126 DebounceIn pb(p8);
gstedile 112:b2ce766d095d 127 int count=0;
gstedile 112:b2ce766d095d 128 int old_pb=0;
gstedile 112:b2ce766d095d 129 int new_pb;
gstedile 112:b2ce766d095d 130 // Use internal pullup for pushbutton
gstedile 112:b2ce766d095d 131 pb.mode(PullUp);
gstedile 112:b2ce766d095d 132 // Delay for initial pullup to take effect
gstedile 112:b2ce766d095d 133 wait(.001);
gstedile 112:b2ce766d095d 134
gstedile 112:b2ce766d095d 135 //----------------------------------------------------
gstedile 112:b2ce766d095d 136
gstedile 112:b2ce766d095d 137 while(1) {
gstedile 112:b2ce766d095d 138
gstedile 112:b2ce766d095d 139 // Sensor de flujo:
gstedile 112:b2ce766d095d 140 //-----------------------------------------------------
gstedile 112:b2ce766d095d 141 new_pb = pb;
gstedile 112:b2ce766d095d 142 if ((new_pb==0) && (old_pb==1)) count++;
gstedile 112:b2ce766d095d 143 myled4 = count & 0x01;
gstedile 112:b2ce766d095d 144 myled3 = (count & 0x02)>>1;
gstedile 112:b2ce766d095d 145 myled2 = (count & 0x04)>>2;
gstedile 112:b2ce766d095d 146 myled = (count & 0x08)>>3;
gstedile 112:b2ce766d095d 147 old_pb = new_pb;
gstedile 112:b2ce766d095d 148 lcd.SetTextCursor(0,200);
gstedile 112:b2ce766d095d 149 lcd.printf("Flujo %d pulsos", count);
gstedile 112:b2ce766d095d 150 //-----------------------------------------------------
gstedile 112:b2ce766d095d 151
gstedile 112:b2ce766d095d 152 lcd.SetTextCursor(0,20);
gstedile 112:b2ce766d095d 153 lcd.printf("M0: %s \r\n\r\n", gps.msg); //Imprimo el mensaje crudo proveniente de la uart
gstedile 112:b2ce766d095d 154 //lcd.printf("M1: %s \r\n", gps.mensaje1);
gstedile 112:b2ce766d095d 155 //lcd.printf("M2: %s \r\n", gps.mensaje2);
gstedile 112:b2ce766d095d 156 //lcd.printf("M3: %s \r\n", gps.mensaje3);
gstedile 112:b2ce766d095d 157 //lcd.printf("M4: %s \r\n", gps.mensaje4);
gstedile 112:b2ce766d095d 158 //lcd.printf("Posicion actual_0: %f, %f \r\n", gps.longitude, gps.latitude);
gstedile 112:b2ce766d095d 159 //lcd.printf("Contador = %d", Counter);
gstedile 112:b2ce766d095d 160 lcd.SetTextCursor(0,100);
gstedile 112:b2ce766d095d 161 if(gps.sample()) { // Si es exitosa la obtencion de datos del gps.
gstedile 112:b2ce766d095d 162
gstedile 112:b2ce766d095d 163 lcd.printf("Posicion: %f, %f\r\n", gps.longitude, gps.latitude);
gstedile 112:b2ce766d095d 164 lcd.printf("Velocidad %f km/h", gps.speed);
gstedile 112:b2ce766d095d 165
gstedile 112:b2ce766d095d 166 } else {
gstedile 112:b2ce766d095d 167
gstedile 112:b2ce766d095d 168 lcd.printf("No hay datos disponibles :(\n");
gstedile 112:b2ce766d095d 169
gstedile 112:b2ce766d095d 170 }
gstedile 112:b2ce766d095d 171 }
gstedile 112:b2ce766d095d 172
gstedile 112:b2ce766d095d 173
gstedile 112:b2ce766d095d 174
gstedile 112:b2ce766d095d 175
gstedile 112:b2ce766d095d 176 /*
gstedile 112:b2ce766d095d 177 while(1) {
gstedile 112:b2ce766d095d 178 ; // end
gstedile 112:b2ce766d095d 179 }
gstedile 112:b2ce766d095d 180 */
gstedile 112:b2ce766d095d 181 }