![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
ok
Dependencies: mbed ssd1306_library
main_Carte1.cpp@5:9c975d6bd219, 2021-03-10 (annotated)
- Committer:
- emmanueldavid
- Date:
- Wed Mar 10 18:20:16 2021 +0000
- Revision:
- 5:9c975d6bd219
- Parent:
- 4:4f681e272268
Version 10/03
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
emmanueldavid | 0:bce63d085dc2 | 1 | /* |
emmanueldavid | 0:bce63d085dc2 | 2 | * Programme Carte 1 |
emmanueldavid | 0:bce63d085dc2 | 3 | * E. DAVID - Fevrier 2021 |
emmanueldavid | 0:bce63d085dc2 | 4 | */ |
emmanueldavid | 0:bce63d085dc2 | 5 | |
emmanueldavid | 0:bce63d085dc2 | 6 | #if !DEVICE_CAN |
emmanueldavid | 0:bce63d085dc2 | 7 | #error [NOT_SUPPORTED] CAN not supported for this target |
emmanueldavid | 0:bce63d085dc2 | 8 | #endif |
emmanueldavid | 0:bce63d085dc2 | 9 | |
emmanueldavid | 0:bce63d085dc2 | 10 | #include "mbed.h" |
emmanueldavid | 0:bce63d085dc2 | 11 | #include "ssd1306.h" |
emmanueldavid | 5:9c975d6bd219 | 12 | #include "stm32f3xx_hal_can.h" |
emmanueldavid | 5:9c975d6bd219 | 13 | |
emmanueldavid | 5:9c975d6bd219 | 14 | CAN_HandleTypeDef hcan1; |
emmanueldavid | 0:bce63d085dc2 | 15 | |
emmanueldavid | 0:bce63d085dc2 | 16 | typedef enum{ |
emmanueldavid | 0:bce63d085dc2 | 17 | DataFrame, |
emmanueldavid | 0:bce63d085dc2 | 18 | RemoteFrame, |
emmanueldavid | 0:bce63d085dc2 | 19 | ErrorFrame, |
emmanueldavid | 0:bce63d085dc2 | 20 | OverloadFrame |
emmanueldavid | 0:bce63d085dc2 | 21 | } TypeTrame; |
emmanueldavid | 0:bce63d085dc2 | 22 | TypeTrame Trame; |
emmanueldavid | 0:bce63d085dc2 | 23 | |
emmanueldavid | 5:9c975d6bd219 | 24 | SSD1306 OLED (I2C_SDA, I2C_SCL, 0x78); // assumes default I2C address of 0x78 |
emmanueldavid | 5:9c975d6bd219 | 25 | //SSD1306 OLED (I2C_SDA, I2C_SCL, 0x3C); // assumes default I2C address of 0x78 |
emmanueldavid | 4:4f681e272268 | 26 | |
emmanueldavid | 0:bce63d085dc2 | 27 | /* |
emmanueldavid | 0:bce63d085dc2 | 28 | typedef struct{ |
emmanueldavid | 0:bce63d085dc2 | 29 | can_id_t id; |
emmanueldavid | 0:bce63d085dc2 | 30 | Uchar ctrl; |
emmanueldavid | 0:bce63d085dc2 | 31 | Uchar * pt_donne; |
emmanueldavid | 0:bce63d085dc2 | 32 | } can_msg_t; |
emmanueldavid | 0:bce63d085dc2 | 33 | */ |
emmanueldavid | 0:bce63d085dc2 | 34 | |
emmanueldavid | 5:9c975d6bd219 | 35 | DigitalOut ledD9(PA_4); |
emmanueldavid | 5:9c975d6bd219 | 36 | DigitalOut ledD8(PA_5); // Attention, désouder SB16&SB18 si utilisation I2c |
emmanueldavid | 5:9c975d6bd219 | 37 | DigitalOut ledD7(PA_6); |
emmanueldavid | 5:9c975d6bd219 | 38 | DigitalOut ledD6(PA_7); |
emmanueldavid | 0:bce63d085dc2 | 39 | |
emmanueldavid | 5:9c975d6bd219 | 40 | DigitalIn SW4_1(PA_1); |
emmanueldavid | 5:9c975d6bd219 | 41 | DigitalIn SW4_0(PA_3); |
emmanueldavid | 5:9c975d6bd219 | 42 | DigitalIn SW1(PB_4, PullUp); |
emmanueldavid | 5:9c975d6bd219 | 43 | DigitalIn SW2(PB_5, PullUp); |
emmanueldavid | 5:9c975d6bd219 | 44 | //DigitalIn SW3(PA_8, PullUp); |
emmanueldavid | 0:bce63d085dc2 | 45 | |
emmanueldavid | 5:9c975d6bd219 | 46 | //InterruptIn SW1(PB_4, PullUp); |
emmanueldavid | 5:9c975d6bd219 | 47 | //InterruptIn SW2(PB_5, PullUp); |
emmanueldavid | 0:bce63d085dc2 | 48 | InterruptIn SW3(PA_8, PullUp); |
emmanueldavid | 0:bce63d085dc2 | 49 | |
emmanueldavid | 4:4f681e272268 | 50 | AnalogIn adc_RV1(PA_0); |
emmanueldavid | 5:9c975d6bd219 | 51 | //Timer antirebond; |
emmanueldavid | 4:4f681e272268 | 52 | |
emmanueldavid | 0:bce63d085dc2 | 53 | CAN can(PA_11, PA_12); |
emmanueldavid | 5:9c975d6bd219 | 54 | Serial pc(USBTX, USBRX); |
emmanueldavid | 0:bce63d085dc2 | 55 | |
emmanueldavid | 4:4f681e272268 | 56 | int value_SW4; // valeur 0,1,2,3 |
emmanueldavid | 5:9c975d6bd219 | 57 | |
emmanueldavid | 5:9c975d6bd219 | 58 | char Reset[6] = "Reset"; |
emmanueldavid | 5:9c975d6bd219 | 59 | char Donnees[12]=""; |
emmanueldavid | 0:bce63d085dc2 | 60 | char Data[5] = "GEII"; |
emmanueldavid | 5:9c975d6bd219 | 61 | char DataArbitrage[5] = "K1bb"; |
emmanueldavid | 5:9c975d6bd219 | 62 | int Nb_messT = 0; |
emmanueldavid | 5:9c975d6bd219 | 63 | int Nb_messR = 0; |
emmanueldavid | 5:9c975d6bd219 | 64 | |
emmanueldavid | 0:bce63d085dc2 | 65 | |
emmanueldavid | 5:9c975d6bd219 | 66 | int detectionFrontSW1(void) { |
emmanueldavid | 5:9c975d6bd219 | 67 | int frontDescendant = 0; |
emmanueldavid | 5:9c975d6bd219 | 68 | static int etatPrecedent1=1; |
emmanueldavid | 5:9c975d6bd219 | 69 | int bp1 = SW1.read(); |
emmanueldavid | 5:9c975d6bd219 | 70 | if(bp1!=etatPrecedent1 && !bp1) |
emmanueldavid | 5:9c975d6bd219 | 71 | frontDescendant = 1; |
emmanueldavid | 5:9c975d6bd219 | 72 | etatPrecedent1= bp1; |
emmanueldavid | 5:9c975d6bd219 | 73 | return frontDescendant; |
emmanueldavid | 0:bce63d085dc2 | 74 | } |
emmanueldavid | 0:bce63d085dc2 | 75 | |
emmanueldavid | 5:9c975d6bd219 | 76 | int detectionFrontSW2(void) { |
emmanueldavid | 5:9c975d6bd219 | 77 | int frontDescendant = 0; |
emmanueldavid | 5:9c975d6bd219 | 78 | static int etatPrecedent2=1; |
emmanueldavid | 5:9c975d6bd219 | 79 | int bp2 = SW2.read(); |
emmanueldavid | 5:9c975d6bd219 | 80 | if(bp2!=etatPrecedent2 && !bp2) |
emmanueldavid | 5:9c975d6bd219 | 81 | frontDescendant = 1; |
emmanueldavid | 5:9c975d6bd219 | 82 | etatPrecedent2= bp2; |
emmanueldavid | 5:9c975d6bd219 | 83 | return frontDescendant; |
emmanueldavid | 0:bce63d085dc2 | 84 | } |
emmanueldavid | 0:bce63d085dc2 | 85 | |
emmanueldavid | 5:9c975d6bd219 | 86 | /* |
emmanueldavid | 5:9c975d6bd219 | 87 | int detectionFrontSW3(void) { |
emmanueldavid | 5:9c975d6bd219 | 88 | int frontDescendant = 0; |
emmanueldavid | 5:9c975d6bd219 | 89 | static int etatPrecedent1=1; |
emmanueldavid | 5:9c975d6bd219 | 90 | int bp = SW3.read(); |
emmanueldavid | 5:9c975d6bd219 | 91 | if(bp!=etatPrecedent1 && !bp) |
emmanueldavid | 5:9c975d6bd219 | 92 | frontDescendant = 1; |
emmanueldavid | 5:9c975d6bd219 | 93 | etatPrecedent1= bp; |
emmanueldavid | 5:9c975d6bd219 | 94 | return frontDescendant; |
emmanueldavid | 5:9c975d6bd219 | 95 | } |
emmanueldavid | 5:9c975d6bd219 | 96 | */ |
emmanueldavid | 5:9c975d6bd219 | 97 | |
emmanueldavid | 5:9c975d6bd219 | 98 | /* Test Arbitrage */ |
emmanueldavid | 5:9c975d6bd219 | 99 | void AppuiSW3() { |
emmanueldavid | 5:9c975d6bd219 | 100 | if (value_SW4 == 3) { |
emmanueldavid | 5:9c975d6bd219 | 101 | if (can.write(CANMessage(60, DataArbitrage, 5 , CANData, CANStandard))) { // Rmq : tableau = pointeur |
emmanueldavid | 5:9c975d6bd219 | 102 | ledD8 = !ledD8; |
emmanueldavid | 5:9c975d6bd219 | 103 | Nb_messT++; |
emmanueldavid | 5:9c975d6bd219 | 104 | } |
emmanueldavid | 5:9c975d6bd219 | 105 | } |
emmanueldavid | 5:9c975d6bd219 | 106 | } |
emmanueldavid | 5:9c975d6bd219 | 107 | |
emmanueldavid | 5:9c975d6bd219 | 108 | |
emmanueldavid | 1:a119d8dc3ef7 | 109 | int LectureSW4(){ |
emmanueldavid | 2:8bc7e935c5a6 | 110 | int ETAT; |
emmanueldavid | 4:4f681e272268 | 111 | int value_SW4_0 = SW4_0.read(); |
emmanueldavid | 4:4f681e272268 | 112 | int value_SW4_1 = SW4_1.read(); |
emmanueldavid | 4:4f681e272268 | 113 | |
emmanueldavid | 4:4f681e272268 | 114 | if (value_SW4_1 == 1) { |
emmanueldavid | 4:4f681e272268 | 115 | if (value_SW4_0 == 1) |
emmanueldavid | 1:a119d8dc3ef7 | 116 | ETAT = 3; |
emmanueldavid | 1:a119d8dc3ef7 | 117 | else |
emmanueldavid | 1:a119d8dc3ef7 | 118 | ETAT = 2; |
emmanueldavid | 1:a119d8dc3ef7 | 119 | } |
emmanueldavid | 1:a119d8dc3ef7 | 120 | else { |
emmanueldavid | 4:4f681e272268 | 121 | if (value_SW4_0 == 1) |
emmanueldavid | 1:a119d8dc3ef7 | 122 | ETAT = 1; |
emmanueldavid | 1:a119d8dc3ef7 | 123 | else |
emmanueldavid | 1:a119d8dc3ef7 | 124 | ETAT = 0; |
emmanueldavid | 1:a119d8dc3ef7 | 125 | } |
emmanueldavid | 2:8bc7e935c5a6 | 126 | return ETAT; |
emmanueldavid | 1:a119d8dc3ef7 | 127 | } |
emmanueldavid | 1:a119d8dc3ef7 | 128 | |
emmanueldavid | 5:9c975d6bd219 | 129 | int main() { |
emmanueldavid | 5:9c975d6bd219 | 130 | //HAL_Init(); |
emmanueldavid | 5:9c975d6bd219 | 131 | |
emmanueldavid | 5:9c975d6bd219 | 132 | //uint8_t receivedMessage[8]; |
emmanueldavid | 5:9c975d6bd219 | 133 | //CAN_RxHeaderTypeDef RxHeader; |
emmanueldavid | 1:a119d8dc3ef7 | 134 | |
emmanueldavid | 5:9c975d6bd219 | 135 | //HAL_CAN_Start(&hcan); |
emmanueldavid | 5:9c975d6bd219 | 136 | |
emmanueldavid | 5:9c975d6bd219 | 137 | pc.baud(115200); |
emmanueldavid | 5:9c975d6bd219 | 138 | pc.printf("Affichage serie Carte 1 \n"); |
emmanueldavid | 4:4f681e272268 | 139 | |
emmanueldavid | 0:bce63d085dc2 | 140 | can.frequency(500000); |
emmanueldavid | 0:bce63d085dc2 | 141 | |
emmanueldavid | 5:9c975d6bd219 | 142 | CANMessage msg; |
emmanueldavid | 5:9c975d6bd219 | 143 | //unsigned char REC, TEC ; |
emmanueldavid | 4:4f681e272268 | 144 | |
emmanueldavid | 5:9c975d6bd219 | 145 | ledD6 = 1; ledD7 = 1; ledD8 = 1; ledD9 = 1; |
emmanueldavid | 5:9c975d6bd219 | 146 | |
emmanueldavid | 4:4f681e272268 | 147 | OLED.speed (SSD1306::Medium); // set working frequency |
emmanueldavid | 4:4f681e272268 | 148 | OLED.init(); // initialize SSD1306 |
emmanueldavid | 4:4f681e272268 | 149 | OLED.cls(); // clear frame buffer |
emmanueldavid | 5:9c975d6bd219 | 150 | /* |
emmanueldavid | 4:4f681e272268 | 151 | OLED.locate (0,0); // set text cursor to line 3, column 1 |
emmanueldavid | 5:9c975d6bd219 | 152 | OLED.printf ("GEII - Bus CAN"); // print to frame buffer |
emmanueldavid | 4:4f681e272268 | 153 | OLED.redraw(); // updates actual display transferring frame buffer over I2C bus |
emmanueldavid | 5:9c975d6bd219 | 154 | */ |
emmanueldavid | 5:9c975d6bd219 | 155 | //SW1.fall(&AppuiSW1); |
emmanueldavid | 5:9c975d6bd219 | 156 | SW3.fall(&AppuiSW3); |
emmanueldavid | 5:9c975d6bd219 | 157 | //antirebond.start(); |
emmanueldavid | 0:bce63d085dc2 | 158 | |
emmanueldavid | 5:9c975d6bd219 | 159 | OLED.locate (0,0); |
emmanueldavid | 5:9c975d6bd219 | 160 | OLED.printf ("NbRx = 0"); |
emmanueldavid | 5:9c975d6bd219 | 161 | OLED.locate (1,0); |
emmanueldavid | 5:9c975d6bd219 | 162 | OLED.printf ("NbTx = 0"); |
emmanueldavid | 0:bce63d085dc2 | 163 | |
emmanueldavid | 0:bce63d085dc2 | 164 | while(1) |
emmanueldavid | 4:4f681e272268 | 165 | { |
emmanueldavid | 4:4f681e272268 | 166 | value_SW4 = LectureSW4(); |
emmanueldavid | 5:9c975d6bd219 | 167 | |
emmanueldavid | 5:9c975d6bd219 | 168 | if (detectionFrontSW1()) |
emmanueldavid | 5:9c975d6bd219 | 169 | { |
emmanueldavid | 5:9c975d6bd219 | 170 | if (value_SW4 == 0) { |
emmanueldavid | 5:9c975d6bd219 | 171 | if (can.write(CANMessage(1975, Data, 5 , CANData, CANStandard))) { // Rmq : tableau = pointeur |
emmanueldavid | 5:9c975d6bd219 | 172 | ledD6 = !ledD6; |
emmanueldavid | 5:9c975d6bd219 | 173 | Nb_messT++; |
emmanueldavid | 5:9c975d6bd219 | 174 | } |
emmanueldavid | 5:9c975d6bd219 | 175 | } |
emmanueldavid | 5:9c975d6bd219 | 176 | } |
emmanueldavid | 5:9c975d6bd219 | 177 | if (detectionFrontSW2()) |
emmanueldavid | 5:9c975d6bd219 | 178 | { |
emmanueldavid | 5:9c975d6bd219 | 179 | if (value_SW4 == 0) { |
emmanueldavid | 5:9c975d6bd219 | 180 | if (can.write(CANMessage(1975, CANStandard))) { // Remote frame |
emmanueldavid | 5:9c975d6bd219 | 181 | ledD7 = !ledD7; |
emmanueldavid | 5:9c975d6bd219 | 182 | Nb_messT++; |
emmanueldavid | 5:9c975d6bd219 | 183 | } |
emmanueldavid | 5:9c975d6bd219 | 184 | } |
emmanueldavid | 5:9c975d6bd219 | 185 | } |
emmanueldavid | 5:9c975d6bd219 | 186 | /* |
emmanueldavid | 5:9c975d6bd219 | 187 | if (detectionFrontSW3()) |
emmanueldavid | 5:9c975d6bd219 | 188 | { |
emmanueldavid | 5:9c975d6bd219 | 189 | if (value_SW4 == 3) { |
emmanueldavid | 5:9c975d6bd219 | 190 | if (can.write(CANMessage(60, DataArbitrage, 5 , CANData, CANStandard))) { // Rmq : tableau = pointeur |
emmanueldavid | 5:9c975d6bd219 | 191 | ledD8 = !ledD8; |
emmanueldavid | 5:9c975d6bd219 | 192 | Nb_messT++; |
emmanueldavid | 5:9c975d6bd219 | 193 | } |
emmanueldavid | 5:9c975d6bd219 | 194 | } |
emmanueldavid | 5:9c975d6bd219 | 195 | } |
emmanueldavid | 5:9c975d6bd219 | 196 | */ |
emmanueldavid | 5:9c975d6bd219 | 197 | |
emmanueldavid | 5:9c975d6bd219 | 198 | if (can.read(msg)) { |
emmanueldavid | 5:9c975d6bd219 | 199 | Nb_messR++; |
emmanueldavid | 5:9c975d6bd219 | 200 | ledD9 = !ledD9; |
emmanueldavid | 5:9c975d6bd219 | 201 | for (int i =0; i < msg.len; i++) |
emmanueldavid | 5:9c975d6bd219 | 202 | Donnees[i] = msg.data[i]; |
emmanueldavid | 5:9c975d6bd219 | 203 | pc.printf("ID = 0x%.3x\r\n", msg.id); //ID sous forme 0x suivi de l'id |
emmanueldavid | 5:9c975d6bd219 | 204 | pc.printf("Length = %d\r\n", msg.len); |
emmanueldavid | 5:9c975d6bd219 | 205 | pc.printf("Boucle envoi CAN rderrors : %d, CAN tderrors : %d\n", can.rderror(), can.tderror()); |
emmanueldavid | 5:9c975d6bd219 | 206 | //REC = can.rderror(); |
emmanueldavid | 5:9c975d6bd219 | 207 | } |
emmanueldavid | 5:9c975d6bd219 | 208 | |
emmanueldavid | 5:9c975d6bd219 | 209 | OLED.locate (0,0); |
emmanueldavid | 5:9c975d6bd219 | 210 | OLED.printf ("NbRx = %d", Nb_messR); |
emmanueldavid | 5:9c975d6bd219 | 211 | OLED.locate (1,0); |
emmanueldavid | 5:9c975d6bd219 | 212 | OLED.printf ("NbTx = %d", Nb_messT); |
emmanueldavid | 5:9c975d6bd219 | 213 | OLED.locate (3,0); |
emmanueldavid | 5:9c975d6bd219 | 214 | OLED.printf ("Message recu "); |
emmanueldavid | 5:9c975d6bd219 | 215 | OLED.locate (4,0); |
emmanueldavid | 5:9c975d6bd219 | 216 | OLED.printf ("=> "); |
emmanueldavid | 5:9c975d6bd219 | 217 | OLED.puts(Donnees); |
emmanueldavid | 5:9c975d6bd219 | 218 | OLED.locate (6,0); |
emmanueldavid | 5:9c975d6bd219 | 219 | OLED.printf("Valeur REC=%u", can.rderror()); |
emmanueldavid | 5:9c975d6bd219 | 220 | OLED.locate (7,0); |
emmanueldavid | 5:9c975d6bd219 | 221 | OLED.printf("Valeur TEC=%u", can.tderror()); |
emmanueldavid | 5:9c975d6bd219 | 222 | OLED.redraw(); |
emmanueldavid | 5:9c975d6bd219 | 223 | wait(0.2); |
emmanueldavid | 5:9c975d6bd219 | 224 | } |
emmanueldavid | 5:9c975d6bd219 | 225 | } |
emmanueldavid | 5:9c975d6bd219 | 226 | |
emmanueldavid | 5:9c975d6bd219 | 227 | |
emmanueldavid | 5:9c975d6bd219 | 228 | /* Envoi d'une trame de requete */ |
emmanueldavid | 5:9c975d6bd219 | 229 | /* |
emmanueldavid | 5:9c975d6bd219 | 230 | void AppuiSW2() { |
emmanueldavid | 5:9c975d6bd219 | 231 | if (can.write(CANMessage(1620, CANStandard ))) { |
emmanueldavid | 5:9c975d6bd219 | 232 | ledD7 = !ledD7; |
emmanueldavid | 5:9c975d6bd219 | 233 | } |
emmanueldavid | 5:9c975d6bd219 | 234 | } |
emmanueldavid | 5:9c975d6bd219 | 235 | */ |
emmanueldavid | 5:9c975d6bd219 | 236 | |
emmanueldavid | 5:9c975d6bd219 | 237 | |
emmanueldavid | 5:9c975d6bd219 | 238 | |
emmanueldavid | 5:9c975d6bd219 | 239 | /* Envoi d'une trame de donnees */ |
emmanueldavid | 5:9c975d6bd219 | 240 | /* |
emmanueldavid | 5:9c975d6bd219 | 241 | void AppuiSW1() { |
emmanueldavid | 5:9c975d6bd219 | 242 | if (antirebond.read_ms() > 100) |
emmanueldavid | 5:9c975d6bd219 | 243 | { |
emmanueldavid | 5:9c975d6bd219 | 244 | //while(!SW1); |
emmanueldavid | 5:9c975d6bd219 | 245 | if (value_SW4 == 1) |
emmanueldavid | 5:9c975d6bd219 | 246 | { |
emmanueldavid | 5:9c975d6bd219 | 247 | if (can.write(CANMessage(2021, Data, 5 , CANData, CANStandard))) // Rmq : tableau = pointeur |
emmanueldavid | 5:9c975d6bd219 | 248 | ledD6 = !ledD6; |
emmanueldavid | 5:9c975d6bd219 | 249 | } |
emmanueldavid | 5:9c975d6bd219 | 250 | antirebond.reset(); |
emmanueldavid | 5:9c975d6bd219 | 251 | } |
emmanueldavid | 5:9c975d6bd219 | 252 | } |
emmanueldavid | 5:9c975d6bd219 | 253 | */ |
emmanueldavid | 5:9c975d6bd219 | 254 | /* |
emmanueldavid | 5:9c975d6bd219 | 255 | char *conversionIntChaine(int longueurChaine, int Valeur_int, char *ChaineAffichage) |
emmanueldavid | 5:9c975d6bd219 | 256 | { |
emmanueldavid | 5:9c975d6bd219 | 257 | while (longueurChaine >= 0) |
emmanueldavid | 5:9c975d6bd219 | 258 | { |
emmanueldavid | 5:9c975d6bd219 | 259 | ChaineAffichage[longueurChaine] = (Valeur_int % 10) + 48; |
emmanueldavid | 5:9c975d6bd219 | 260 | Valeur_int /= 10; |
emmanueldavid | 5:9c975d6bd219 | 261 | longueurChaine--; |
emmanueldavid | 5:9c975d6bd219 | 262 | } |
emmanueldavid | 5:9c975d6bd219 | 263 | return (ChaineAffichage); |
emmanueldavid | 5:9c975d6bd219 | 264 | } |
emmanueldavid | 5:9c975d6bd219 | 265 | */ |
emmanueldavid | 5:9c975d6bd219 | 266 | /* |
emmanueldavid | 4:4f681e272268 | 267 | OLED.locate (2,0); |
emmanueldavid | 5:9c975d6bd219 | 268 | OLED.printf("ADC A0=%2.1f", (adc_RV1.read()*100)); |
emmanueldavid | 4:4f681e272268 | 269 | OLED.locate (3,0); |
emmanueldavid | 4:4f681e272268 | 270 | OLED.printf("Valeur SW4_1=%d", SW4_0.read()); |
emmanueldavid | 4:4f681e272268 | 271 | OLED.locate (4,0); |
emmanueldavid | 4:4f681e272268 | 272 | OLED.printf("Valeur SW4_2=%d", SW4_1.read()); |
emmanueldavid | 4:4f681e272268 | 273 | OLED.locate (5,0); |
emmanueldavid | 4:4f681e272268 | 274 | OLED.printf("Valeur SW4=%d", value_SW4); |
emmanueldavid | 5:9c975d6bd219 | 275 | */ |