enrico, forno, prova

Dependencies:   BSP_DISCO_F746NG LCD_DISCO_F746NG Shifter TS_DISCO_F746NG mbed

Fork of F746_DrawPixel by marco valli

Committer:
billycorgan123
Date:
Wed Feb 21 19:38:50 2018 +0000
Revision:
1:8a54b7de2617
Parent:
0:d421f2c38453
rev1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
billycorgan123 0:d421f2c38453 1 #include "mbed.h"
billycorgan123 1:8a54b7de2617 2 #include "TS_DISCO_F746NG.h"
billycorgan123 0:d421f2c38453 3 #include "LCD_DISCO_F746NG.h"
billycorgan123 1:8a54b7de2617 4
billycorgan123 1:8a54b7de2617 5 #include "Bloccoporta_acceso.c"
billycorgan123 1:8a54b7de2617 6 #include "Bloccoporta_spento.c"
billycorgan123 1:8a54b7de2617 7 #include "Girarrosto_acceso.c"
billycorgan123 1:8a54b7de2617 8 #include "Girarrosto_spento.c"
billycorgan123 1:8a54b7de2617 9 #include "Lampadina_acceso.c"
billycorgan123 1:8a54b7de2617 10 #include "Lampadina_spento.c"
billycorgan123 1:8a54b7de2617 11 #include "Motore_acceso.c"
billycorgan123 1:8a54b7de2617 12 #include "Motore_spento.c"
billycorgan123 1:8a54b7de2617 13 #include "Resistenza1_acceso.c"
billycorgan123 1:8a54b7de2617 14 #include "Resistenza1_spento.c"
billycorgan123 1:8a54b7de2617 15 #include "Resistenza2_acceso.c"
billycorgan123 1:8a54b7de2617 16 #include "Resistenza2_spento.c"
billycorgan123 1:8a54b7de2617 17 #include "Ventilatore1_acceso.c"
billycorgan123 1:8a54b7de2617 18 #include "Ventilatore1_spento.c"
billycorgan123 1:8a54b7de2617 19 #include "Ventilatore2_acceso.c"
billycorgan123 1:8a54b7de2617 20 #include "Ventilatore2_spento.c"
billycorgan123 1:8a54b7de2617 21
billycorgan123 1:8a54b7de2617 22 #include "Clean.c"
billycorgan123 1:8a54b7de2617 23 #include "Roast.c"
billycorgan123 1:8a54b7de2617 24 #include "Stop.c"
billycorgan123 1:8a54b7de2617 25
billycorgan123 1:8a54b7de2617 26 #include "functions.h"
billycorgan123 1:8a54b7de2617 27 #include "colors.c"
billycorgan123 1:8a54b7de2617 28 #include "Output.h"
billycorgan123 1:8a54b7de2617 29 #include "Shifter.h"
billycorgan123 0:d421f2c38453 30
billycorgan123 0:d421f2c38453 31 LCD_DISCO_F746NG lcd;
billycorgan123 1:8a54b7de2617 32 TS_DISCO_F746NG ts;
billycorgan123 1:8a54b7de2617 33
billycorgan123 1:8a54b7de2617 34 extern void clean(int);
billycorgan123 1:8a54b7de2617 35 extern void stop();
billycorgan123 1:8a54b7de2617 36 extern void object_update();
billycorgan123 1:8a54b7de2617 37
billycorgan123 1:8a54b7de2617 38 TS_StateTypeDef TS_State;
billycorgan123 1:8a54b7de2617 39 uint16_t X, Y;
billycorgan123 1:8a54b7de2617 40 uint8_t idx;
billycorgan123 1:8a54b7de2617 41 uint8_t status;
billycorgan123 1:8a54b7de2617 42 uint8_t cleared = 0;
billycorgan123 1:8a54b7de2617 43 uint8_t prev_nb_touches = 0;
billycorgan123 1:8a54b7de2617 44 int numerotappe=0;
billycorgan123 1:8a54b7de2617 45 uint8_t text[30];
billycorgan123 1:8a54b7de2617 46
billycorgan123 1:8a54b7de2617 47 Output Bloccoporta;
billycorgan123 1:8a54b7de2617 48 Output Girarrosto;
billycorgan123 1:8a54b7de2617 49 Output Lampadina;
billycorgan123 1:8a54b7de2617 50 Output Motore;
billycorgan123 1:8a54b7de2617 51 Output Resistenza1;
billycorgan123 1:8a54b7de2617 52 Output Resistenza2;
billycorgan123 1:8a54b7de2617 53 Output Ventilatore1;
billycorgan123 1:8a54b7de2617 54 Output Ventilatore2;
billycorgan123 1:8a54b7de2617 55
billycorgan123 1:8a54b7de2617 56 Shifter scheda_8relay; //!! pinout defined in library
billycorgan123 1:8a54b7de2617 57 bool array[16]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
billycorgan123 0:d421f2c38453 58
billycorgan123 0:d421f2c38453 59 int main()
billycorgan123 0:d421f2c38453 60 {
billycorgan123 1:8a54b7de2617 61 setup_griglia();
billycorgan123 0:d421f2c38453 62 while(1) {
billycorgan123 1:8a54b7de2617 63 //acquisisco la pressione sullo schermo per attivare i vari oggetti
billycorgan123 1:8a54b7de2617 64 ts.ResetTouchData(&TS_State);
billycorgan123 1:8a54b7de2617 65 ts.GetState(&TS_State);
billycorgan123 1:8a54b7de2617 66 X = TS_State.touchX[0]; //acquisisco la X
billycorgan123 1:8a54b7de2617 67 Y = TS_State.touchY[0]; //acquisisco la Y
billycorgan123 1:8a54b7de2617 68 /*
billycorgan123 1:8a54b7de2617 69 if (X>=310 && X<360 && Y>=0 && Y<60) {
billycorgan123 1:8a54b7de2617 70 Lampadina.stato=!Lampadina.stato;
billycorgan123 1:8a54b7de2617 71 array[0]=Lampadina.stato;
billycorgan123 1:8a54b7de2617 72 }
billycorgan123 1:8a54b7de2617 73 if (X>=310 && X<360 && Y>=60 && Y<120) {
billycorgan123 1:8a54b7de2617 74 Motore.stato=!Motore.stato;
billycorgan123 1:8a54b7de2617 75 array[1]=Motore.stato;
billycorgan123 1:8a54b7de2617 76 }
billycorgan123 1:8a54b7de2617 77 if (X>=310 && X<360 && Y>=120 && Y<180) {
billycorgan123 1:8a54b7de2617 78 Ventilatore1.stato=!Ventilatore1.stato;
billycorgan123 1:8a54b7de2617 79 array[2]=Ventilatore1.stato;
billycorgan123 1:8a54b7de2617 80 }
billycorgan123 1:8a54b7de2617 81 if (X>=310 && X<360 && Y>=180 && Y<240) {
billycorgan123 1:8a54b7de2617 82 Ventilatore2.stato=!Ventilatore2.stato;
billycorgan123 1:8a54b7de2617 83 array[3]=Ventilatore2.stato;
billycorgan123 1:8a54b7de2617 84 }
billycorgan123 1:8a54b7de2617 85 if (X>=360 && X<410 && Y>=0 && Y<60) {
billycorgan123 1:8a54b7de2617 86 Bloccoporta.stato=!Bloccoporta.stato;
billycorgan123 1:8a54b7de2617 87 array[4]=Bloccoporta.stato;
billycorgan123 0:d421f2c38453 88 }
billycorgan123 1:8a54b7de2617 89 if (X>=360 && X<410 && Y>=60 && Y<120) {
billycorgan123 1:8a54b7de2617 90 Girarrosto.stato=!Girarrosto.stato;
billycorgan123 1:8a54b7de2617 91 array[5]=Girarrosto.stato;
billycorgan123 1:8a54b7de2617 92 }
billycorgan123 1:8a54b7de2617 93 if (X>=360 && X<410 && Y>=120 && Y<180) {
billycorgan123 1:8a54b7de2617 94 Resistenza1.stato=!Resistenza1.stato;
billycorgan123 1:8a54b7de2617 95 array[6]=Resistenza1.stato;
billycorgan123 1:8a54b7de2617 96 }
billycorgan123 1:8a54b7de2617 97 if (X>=360 && X<410 && Y>=180 && Y<240) {
billycorgan123 1:8a54b7de2617 98 Resistenza2.stato=!Resistenza2.stato;
billycorgan123 1:8a54b7de2617 99 array[7]=Resistenza2.stato;
billycorgan123 1:8a54b7de2617 100 }
billycorgan123 1:8a54b7de2617 101 */
billycorgan123 1:8a54b7de2617 102 if (X>=20 && X<120 && Y>=20 && Y<80) { //ROAST
billycorgan123 1:8a54b7de2617 103
billycorgan123 1:8a54b7de2617 104 }
billycorgan123 1:8a54b7de2617 105 if (X>=20 && X<120 && Y>=90 && Y<150) { //CLEAN
billycorgan123 1:8a54b7de2617 106 clean(10000);
billycorgan123 1:8a54b7de2617 107 }
billycorgan123 1:8a54b7de2617 108 if (X>=20 && X<120 && Y>=160 && Y<220) { //STOP
billycorgan123 1:8a54b7de2617 109
billycorgan123 1:8a54b7de2617 110 }
billycorgan123 1:8a54b7de2617 111 if (TS_State.touchDetected) wait(0.1);
billycorgan123 1:8a54b7de2617 112
billycorgan123 1:8a54b7de2617 113 object_update();
billycorgan123 1:8a54b7de2617 114
billycorgan123 1:8a54b7de2617 115 wait(0.1);
billycorgan123 0:d421f2c38453 116 }//close while(1)
billycorgan123 0:d421f2c38453 117 }//close main
billycorgan123 1:8a54b7de2617 118
billycorgan123 1:8a54b7de2617 119 void clean(int clean_time)
billycorgan123 1:8a54b7de2617 120 {
billycorgan123 1:8a54b7de2617 121 Timer timer;
billycorgan123 1:8a54b7de2617 122 timer.start();
billycorgan123 1:8a54b7de2617 123 int previous_time, actual_time;
billycorgan123 1:8a54b7de2617 124 previous_time = timer.read();
billycorgan123 1:8a54b7de2617 125 Lampadina.stato=1;
billycorgan123 1:8a54b7de2617 126 Resistenza1.stato=1;
billycorgan123 1:8a54b7de2617 127 Resistenza2.stato=1;
billycorgan123 1:8a54b7de2617 128
billycorgan123 1:8a54b7de2617 129 while(1) {
billycorgan123 1:8a54b7de2617 130 actual_time = timer.read();
billycorgan123 1:8a54b7de2617 131 uint8_t text[30];
billycorgan123 1:8a54b7de2617 132 //acquisisco la pressione sullo schermo per attivare i vari oggetti
billycorgan123 1:8a54b7de2617 133 ts.ResetTouchData(&TS_State);
billycorgan123 1:8a54b7de2617 134 ts.GetState(&TS_State);
billycorgan123 1:8a54b7de2617 135 int X = TS_State.touchX[0]; //acquisisco la X
billycorgan123 1:8a54b7de2617 136 int Y = TS_State.touchY[0]; //acquisisco la Y
billycorgan123 1:8a54b7de2617 137 if (X>=20 && X<120 && Y>=160 && Y<220) { //STOP
billycorgan123 1:8a54b7de2617 138 stop();
billycorgan123 1:8a54b7de2617 139 break;
billycorgan123 1:8a54b7de2617 140 }
billycorgan123 1:8a54b7de2617 141 //countdown dal clean_time a zero
billycorgan123 1:8a54b7de2617 142 if (actual_time-previous_time >=1) {
billycorgan123 1:8a54b7de2617 143 lcd.SetFont(&Font24);
billycorgan123 1:8a54b7de2617 144 lcd.SetTextColor(black);
billycorgan123 1:8a54b7de2617 145 sprintf((char*)text, "%5d", clean_time);
billycorgan123 1:8a54b7de2617 146 lcd.DisplayStringAt(130,100, (uint8_t *)&text, LEFT_MODE);
billycorgan123 1:8a54b7de2617 147 previous_time = actual_time;
billycorgan123 1:8a54b7de2617 148 clean_time--;
billycorgan123 1:8a54b7de2617 149 }
billycorgan123 1:8a54b7de2617 150 //se il tempo di clean è finito porto gli output a zero e aggiorno, poi esco dal ciclo
billycorgan123 1:8a54b7de2617 151 if (clean_time<0) {
billycorgan123 1:8a54b7de2617 152 stop();
billycorgan123 1:8a54b7de2617 153 break;
billycorgan123 1:8a54b7de2617 154 }
billycorgan123 1:8a54b7de2617 155
billycorgan123 1:8a54b7de2617 156 object_update();
billycorgan123 1:8a54b7de2617 157 }
billycorgan123 1:8a54b7de2617 158 }
billycorgan123 1:8a54b7de2617 159 void stop()
billycorgan123 1:8a54b7de2617 160 {
billycorgan123 1:8a54b7de2617 161 //imposto gli output a zero, poi aggiorno
billycorgan123 1:8a54b7de2617 162 Lampadina.stato=0;
billycorgan123 1:8a54b7de2617 163 Resistenza1.stato=0;
billycorgan123 1:8a54b7de2617 164 Resistenza2.stato=0;
billycorgan123 1:8a54b7de2617 165
billycorgan123 1:8a54b7de2617 166 object_update();
billycorgan123 1:8a54b7de2617 167 }
billycorgan123 1:8a54b7de2617 168 void object_update()
billycorgan123 1:8a54b7de2617 169 { //update delle immagini e dello stato delle uscite
billycorgan123 1:8a54b7de2617 170 //disegno lo stato dei vari oggetti
billycorgan123 1:8a54b7de2617 171 Lampadina.draw_image (&_acLampadina_acceso[0], &_acLampadina_spento[0], Lampadina.stato, 310, 0);
billycorgan123 1:8a54b7de2617 172 Motore.draw_image (&_acMotore_acceso[0], &_acMotore_spento[0], Motore.stato, 310, 60);
billycorgan123 1:8a54b7de2617 173 Ventilatore1.draw_image (&_acVentilatore1_acceso[0], &_acVentilatore1_spento[0], Ventilatore1.stato, 310, 120);
billycorgan123 1:8a54b7de2617 174 Ventilatore2.draw_image (&_acVentilatore2_acceso[0], &_acVentilatore2_spento[0], Ventilatore2.stato, 310, 180);
billycorgan123 1:8a54b7de2617 175 Bloccoporta.draw_image (&_acBloccoporta_acceso[0], &_acBloccoporta_spento[0], Bloccoporta.stato, 360, 0);
billycorgan123 1:8a54b7de2617 176 Girarrosto.draw_image (&_acGirarrosto_acceso[0], &_acGirarrosto_spento[0], Girarrosto.stato, 360, 60);
billycorgan123 1:8a54b7de2617 177 Resistenza1.draw_image (&_acResistenza1_acceso[0], &_acResistenza1_spento[0], Resistenza1.stato, 360, 120);
billycorgan123 1:8a54b7de2617 178 Resistenza2.draw_image (&_acResistenza2_acceso[0], &_acResistenza2_spento[0], Resistenza2.stato, 360, 180);
billycorgan123 1:8a54b7de2617 179 //update uscita 74HC595
billycorgan123 1:8a54b7de2617 180 for (int i=0; i<16; i++) scheda_8relay.setPin(i,array[i]);
billycorgan123 1:8a54b7de2617 181 scheda_8relay.write();
billycorgan123 1:8a54b7de2617 182 }