Serial Library STE

Dependencies:   mbed mbed-rtos MODSERIAL

Committer:
JavierGC
Date:
Wed Dec 23 08:54:49 2020 +0000
Revision:
0:7077a789f16a
Serial Library STE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JavierGC 0:7077a789f16a 1 #include "main.h"
JavierGC 0:7077a789f16a 2
JavierGC 0:7077a789f16a 3
JavierGC 0:7077a789f16a 4 DigitalOut myled1(LED1);
JavierGC 0:7077a789f16a 5 DigitalOut myled2(LED2);
JavierGC 0:7077a789f16a 6 DigitalOut myled3(LED3);
JavierGC 0:7077a789f16a 7 DigitalOut d1(p21);
JavierGC 0:7077a789f16a 8 DigitalOut d2(p22);
JavierGC 0:7077a789f16a 9 DigitalOut d3(p23);
JavierGC 0:7077a789f16a 10 DigitalOut d4(p24);
JavierGC 0:7077a789f16a 11 DigitalOut d5(p25);
JavierGC 0:7077a789f16a 12 DigitalOut d6(p26);
JavierGC 0:7077a789f16a 13 DigitalOut d7(p27);
JavierGC 0:7077a789f16a 14
JavierGC 0:7077a789f16a 15
JavierGC 0:7077a789f16a 16 int main() {
JavierGC 0:7077a789f16a 17 pc.start();
JavierGC 0:7077a789f16a 18
JavierGC 0:7077a789f16a 19
JavierGC 0:7077a789f16a 20 pc.LoadMail(2,"starting...\r");
JavierGC 0:7077a789f16a 21
JavierGC 0:7077a789f16a 22 wait_ms(100); // use this in place of wait() to exclude waiting time from
JavierGC 0:7077a789f16a 23 // your usage value.
JavierGC 0:7077a789f16a 24
JavierGC 0:7077a789f16a 25 //wait_ms(100);
JavierGC 0:7077a789f16a 26
JavierGC 0:7077a789f16a 27 Setup();
JavierGC 0:7077a789f16a 28 //set_time(0);
JavierGC 0:7077a789f16a 29
JavierGC 0:7077a789f16a 30 E=99999;
JavierGC 0:7077a789f16a 31
JavierGC 0:7077a789f16a 32
JavierGC 0:7077a789f16a 33 while(true) {
JavierGC 0:7077a789f16a 34 //d1=1;
JavierGC 0:7077a789f16a 35 //wait_ms(7);
JavierGC 0:7077a789f16a 36 //d1=0;
JavierGC 0:7077a789f16a 37 //wait_ms(7);
JavierGC 0:7077a789f16a 38 myled1 = 1;
JavierGC 0:7077a789f16a 39 wait(0.25);
JavierGC 0:7077a789f16a 40 myled1 = 0;
JavierGC 0:7077a789f16a 41 wait(0.25);
JavierGC 0:7077a789f16a 42
JavierGC 0:7077a789f16a 43 switch(E)
JavierGC 0:7077a789f16a 44 {
JavierGC 0:7077a789f16a 45 case PC::eState:
JavierGC 0:7077a789f16a 46
JavierGC 0:7077a789f16a 47 switch (DATA[0])
JavierGC 0:7077a789f16a 48 {
JavierGC 0:7077a789f16a 49 case '1':
JavierGC 0:7077a789f16a 50 d1=(DATA[2]=='1');
JavierGC 0:7077a789f16a 51 break;
JavierGC 0:7077a789f16a 52 case '2':
JavierGC 0:7077a789f16a 53 d2=(DATA[2]=='1');
JavierGC 0:7077a789f16a 54 break;
JavierGC 0:7077a789f16a 55 case '3':
JavierGC 0:7077a789f16a 56 d3=(DATA[2]=='1');
JavierGC 0:7077a789f16a 57 break;
JavierGC 0:7077a789f16a 58 case '4':
JavierGC 0:7077a789f16a 59 d4=(DATA[2]=='1');
JavierGC 0:7077a789f16a 60 break;
JavierGC 0:7077a789f16a 61 case '5':
JavierGC 0:7077a789f16a 62 d5=(DATA[2]=='1');
JavierGC 0:7077a789f16a 63 break;
JavierGC 0:7077a789f16a 64 case '6':
JavierGC 0:7077a789f16a 65 d6=(DATA[2]=='1');
JavierGC 0:7077a789f16a 66 break;
JavierGC 0:7077a789f16a 67 case '7':
JavierGC 0:7077a789f16a 68 d7=(DATA[2]=='1');
JavierGC 0:7077a789f16a 69 break;
JavierGC 0:7077a789f16a 70 default:
JavierGC 0:7077a789f16a 71 break;
JavierGC 0:7077a789f16a 72 }
JavierGC 0:7077a789f16a 73 E=99999;
JavierGC 0:7077a789f16a 74 break;
JavierGC 0:7077a789f16a 75 case PC::ePulse:
JavierGC 0:7077a789f16a 76 sscanf(DATA,"%[^;];%[^;]",&CMD[0],&DATO[0]);
JavierGC 0:7077a789f16a 77 switch (CMD[0])
JavierGC 0:7077a789f16a 78 {
JavierGC 0:7077a789f16a 79 case '1':
JavierGC 0:7077a789f16a 80 d1=1;
JavierGC 0:7077a789f16a 81 wait_us(atoi(DATO));
JavierGC 0:7077a789f16a 82 d1=0;
JavierGC 0:7077a789f16a 83 break;
JavierGC 0:7077a789f16a 84 case '2':
JavierGC 0:7077a789f16a 85 d2=1;
JavierGC 0:7077a789f16a 86 wait_us(atoi(DATO));
JavierGC 0:7077a789f16a 87 d2=0;
JavierGC 0:7077a789f16a 88 break;
JavierGC 0:7077a789f16a 89 case '3':
JavierGC 0:7077a789f16a 90 d3=1;
JavierGC 0:7077a789f16a 91 wait_us(atoi(DATO));
JavierGC 0:7077a789f16a 92 d3=0;
JavierGC 0:7077a789f16a 93 break;
JavierGC 0:7077a789f16a 94 case '4':
JavierGC 0:7077a789f16a 95 d4=1;
JavierGC 0:7077a789f16a 96 wait_us(atoi(DATO));
JavierGC 0:7077a789f16a 97 d4=0;
JavierGC 0:7077a789f16a 98 break;
JavierGC 0:7077a789f16a 99 case '5':
JavierGC 0:7077a789f16a 100 d5=1;
JavierGC 0:7077a789f16a 101 wait_us(atoi(DATO));
JavierGC 0:7077a789f16a 102 d5=0;
JavierGC 0:7077a789f16a 103 break;
JavierGC 0:7077a789f16a 104 case '6':
JavierGC 0:7077a789f16a 105 d6=1;
JavierGC 0:7077a789f16a 106 wait_us(atoi(DATO));
JavierGC 0:7077a789f16a 107 d6=0;
JavierGC 0:7077a789f16a 108 break;
JavierGC 0:7077a789f16a 109 case '7':
JavierGC 0:7077a789f16a 110 d7=1;
JavierGC 0:7077a789f16a 111 wait_us(atoi(DATO));
JavierGC 0:7077a789f16a 112 d7=0;
JavierGC 0:7077a789f16a 113 break;
JavierGC 0:7077a789f16a 114 default:
JavierGC 0:7077a789f16a 115 break;
JavierGC 0:7077a789f16a 116 }
JavierGC 0:7077a789f16a 117 E=99999;
JavierGC 0:7077a789f16a 118 break;
JavierGC 0:7077a789f16a 119 case PC::ePulsems:
JavierGC 0:7077a789f16a 120 sscanf(DATA,"%[^;];%[^;]",&CMD[0],&DATO[0]);
JavierGC 0:7077a789f16a 121 switch (CMD[0])
JavierGC 0:7077a789f16a 122 {
JavierGC 0:7077a789f16a 123 case '1':
JavierGC 0:7077a789f16a 124 d1=1;
JavierGC 0:7077a789f16a 125 wait_ms(atoi(DATO));
JavierGC 0:7077a789f16a 126 d1=0;
JavierGC 0:7077a789f16a 127 break;
JavierGC 0:7077a789f16a 128 case '2':
JavierGC 0:7077a789f16a 129 d2=1;
JavierGC 0:7077a789f16a 130 wait_ms(atoi(DATO));
JavierGC 0:7077a789f16a 131 d2=0;
JavierGC 0:7077a789f16a 132 break;
JavierGC 0:7077a789f16a 133 case '3':
JavierGC 0:7077a789f16a 134 d3=1;
JavierGC 0:7077a789f16a 135 wait_ms(atoi(DATO));
JavierGC 0:7077a789f16a 136 d3=0;
JavierGC 0:7077a789f16a 137 break;
JavierGC 0:7077a789f16a 138 case '4':
JavierGC 0:7077a789f16a 139 d4=1;
JavierGC 0:7077a789f16a 140 wait_ms(atoi(DATO));
JavierGC 0:7077a789f16a 141 d4=0;
JavierGC 0:7077a789f16a 142 break;
JavierGC 0:7077a789f16a 143 case '5':
JavierGC 0:7077a789f16a 144 d5=1;
JavierGC 0:7077a789f16a 145 wait_ms(atoi(DATO));
JavierGC 0:7077a789f16a 146 d5=0;
JavierGC 0:7077a789f16a 147 break;
JavierGC 0:7077a789f16a 148 case '6':
JavierGC 0:7077a789f16a 149 d6=1;
JavierGC 0:7077a789f16a 150 wait_ms(atoi(DATO));
JavierGC 0:7077a789f16a 151 d6=0;
JavierGC 0:7077a789f16a 152 break;
JavierGC 0:7077a789f16a 153 case '7':
JavierGC 0:7077a789f16a 154 d7=1;
JavierGC 0:7077a789f16a 155 wait_ms(atoi(DATO));
JavierGC 0:7077a789f16a 156 d7=0;
JavierGC 0:7077a789f16a 157 break;
JavierGC 0:7077a789f16a 158 default:
JavierGC 0:7077a789f16a 159 break;
JavierGC 0:7077a789f16a 160 }
JavierGC 0:7077a789f16a 161 E=99999;
JavierGC 0:7077a789f16a 162 break;
JavierGC 0:7077a789f16a 163 case PC::ePulses:
JavierGC 0:7077a789f16a 164 sscanf(DATA,"%[^;];%[^;]",&CMD[0],&DATO[0]);
JavierGC 0:7077a789f16a 165 switch (CMD[0])
JavierGC 0:7077a789f16a 166 {
JavierGC 0:7077a789f16a 167 case '1':
JavierGC 0:7077a789f16a 168 d1=1;
JavierGC 0:7077a789f16a 169 wait(atof(DATO));
JavierGC 0:7077a789f16a 170 d1=0;
JavierGC 0:7077a789f16a 171 break;
JavierGC 0:7077a789f16a 172 case '2':
JavierGC 0:7077a789f16a 173 d2=1;
JavierGC 0:7077a789f16a 174 wait(atof(DATO));
JavierGC 0:7077a789f16a 175 d2=0;
JavierGC 0:7077a789f16a 176 break;
JavierGC 0:7077a789f16a 177 case '3':
JavierGC 0:7077a789f16a 178 d3=1;
JavierGC 0:7077a789f16a 179 wait(atof(DATO));
JavierGC 0:7077a789f16a 180 d3=0;
JavierGC 0:7077a789f16a 181 break;
JavierGC 0:7077a789f16a 182 case '4':
JavierGC 0:7077a789f16a 183 d4=1;
JavierGC 0:7077a789f16a 184 wait(atof(DATO));
JavierGC 0:7077a789f16a 185 d4=0;
JavierGC 0:7077a789f16a 186 break;
JavierGC 0:7077a789f16a 187 case '5':
JavierGC 0:7077a789f16a 188 d5=1;
JavierGC 0:7077a789f16a 189 wait_us(atof(DATO));
JavierGC 0:7077a789f16a 190 d5=0;
JavierGC 0:7077a789f16a 191 break;
JavierGC 0:7077a789f16a 192 case '6':
JavierGC 0:7077a789f16a 193 d6=1;
JavierGC 0:7077a789f16a 194 wait_us(atof(DATO));
JavierGC 0:7077a789f16a 195 d6=0;
JavierGC 0:7077a789f16a 196 break;
JavierGC 0:7077a789f16a 197 case '7':
JavierGC 0:7077a789f16a 198 d7=1;
JavierGC 0:7077a789f16a 199 wait_us(atof(DATO));
JavierGC 0:7077a789f16a 200 d7=0;
JavierGC 0:7077a789f16a 201 break;
JavierGC 0:7077a789f16a 202 default:
JavierGC 0:7077a789f16a 203 break;
JavierGC 0:7077a789f16a 204 }
JavierGC 0:7077a789f16a 205 E=99999;
JavierGC 0:7077a789f16a 206 break;
JavierGC 0:7077a789f16a 207 default:
JavierGC 0:7077a789f16a 208 break;
JavierGC 0:7077a789f16a 209 }
JavierGC 0:7077a789f16a 210 }
JavierGC 0:7077a789f16a 211 }
JavierGC 0:7077a789f16a 212
JavierGC 0:7077a789f16a 213
JavierGC 0:7077a789f16a 214
JavierGC 0:7077a789f16a 215
JavierGC 0:7077a789f16a 216 void PCEventHandler(int e, char *data)
JavierGC 0:7077a789f16a 217 {
JavierGC 0:7077a789f16a 218 if(E==99999)
JavierGC 0:7077a789f16a 219 {
JavierGC 0:7077a789f16a 220 E=e;
JavierGC 0:7077a789f16a 221 sprintf(DATA,"%s",data);
JavierGC 0:7077a789f16a 222 }
JavierGC 0:7077a789f16a 223 }
JavierGC 0:7077a789f16a 224
JavierGC 0:7077a789f16a 225 void Setup()
JavierGC 0:7077a789f16a 226 {
JavierGC 0:7077a789f16a 227
JavierGC 0:7077a789f16a 228 //pc.AttachSendStatus();
JavierGC 0:7077a789f16a 229
JavierGC 0:7077a789f16a 230 pc.LoadMail(2,"\n");
JavierGC 0:7077a789f16a 231 pc.LoadMail(2,"\n");
JavierGC 0:7077a789f16a 232 pc.LoadMail(2,"\n");
JavierGC 0:7077a789f16a 233 pc.LoadMail(2,"************************************************");
JavierGC 0:7077a789f16a 234 pc.LoadMail(2,"\n");
JavierGC 0:7077a789f16a 235 pc.LoadMail(2,"************************************************");
JavierGC 0:7077a789f16a 236 pc.LoadMail(2,"\n");
JavierGC 0:7077a789f16a 237 pc.LoadMail(2,"\n");
JavierGC 0:7077a789f16a 238 pc.LoadMail(2,"\n");
JavierGC 0:7077a789f16a 239
JavierGC 0:7077a789f16a 240 DigitalOut(LED1,0);
JavierGC 0:7077a789f16a 241 DigitalOut(LED2,0);
JavierGC 0:7077a789f16a 242 DigitalOut(LED3,0);
JavierGC 0:7077a789f16a 243 DigitalOut(LED4,0);
JavierGC 0:7077a789f16a 244 }
JavierGC 0:7077a789f16a 245