Bus Can
Dependencies: mbed ssd1306_library
main_Carte2.cpp@1:068cd7adbe4d, 2021-03-10 (annotated)
- Committer:
- emmanueldavid
- Date:
- Wed Mar 10 18:24:03 2021 +0000
- Revision:
- 1:068cd7adbe4d
- Parent:
- 0:793b62d1f1ec
version 10/03
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
emmanueldavid | 0:793b62d1f1ec | 1 | /* |
emmanueldavid | 0:793b62d1f1ec | 2 | * Copyright (c) 2017-2020 Arm Limited and affiliates. |
emmanueldavid | 0:793b62d1f1ec | 3 | * SPDX-License-Identifier: Apache-2.0 |
emmanueldavid | 0:793b62d1f1ec | 4 | */ |
emmanueldavid | 0:793b62d1f1ec | 5 | |
emmanueldavid | 0:793b62d1f1ec | 6 | #if !DEVICE_CAN |
emmanueldavid | 0:793b62d1f1ec | 7 | #error [NOT_SUPPORTED] CAN not supported for this target |
emmanueldavid | 0:793b62d1f1ec | 8 | #endif |
emmanueldavid | 0:793b62d1f1ec | 9 | |
emmanueldavid | 0:793b62d1f1ec | 10 | |
emmanueldavid | 0:793b62d1f1ec | 11 | #include "mbed.h" |
emmanueldavid | 0:793b62d1f1ec | 12 | #include "ssd1306.h" |
emmanueldavid | 0:793b62d1f1ec | 13 | |
emmanueldavid | 0:793b62d1f1ec | 14 | SSD1306 OLED (I2C_SDA, I2C_SCL); // assumes default I2C address of 0x78 |
emmanueldavid | 0:793b62d1f1ec | 15 | |
emmanueldavid | 0:793b62d1f1ec | 16 | |
emmanueldavid | 0:793b62d1f1ec | 17 | //Ticker ticker; |
emmanueldavid | 0:793b62d1f1ec | 18 | |
emmanueldavid | 0:793b62d1f1ec | 19 | DigitalOut ledD9(PA_4); |
emmanueldavid | 1:068cd7adbe4d | 20 | DigitalOut ledD8(PA_5); // NON, désouder SB16 si utilisation I2c |
emmanueldavid | 1:068cd7adbe4d | 21 | DigitalOut ledD7(PA_6); // NON, désouder SB18 si utilisation I2c |
emmanueldavid | 0:793b62d1f1ec | 22 | DigitalOut ledD6(PA_7); |
emmanueldavid | 0:793b62d1f1ec | 23 | |
emmanueldavid | 0:793b62d1f1ec | 24 | DigitalIn SW4_1(PA_1); |
emmanueldavid | 0:793b62d1f1ec | 25 | DigitalIn SW4_0(PA_3); |
emmanueldavid | 1:068cd7adbe4d | 26 | DigitalIn SW1(PB_4, PullUp); |
emmanueldavid | 1:068cd7adbe4d | 27 | DigitalIn SW2(PB_5, PullUp); |
emmanueldavid | 1:068cd7adbe4d | 28 | //DigitalIn SW3(PA_8, PullUp); |
emmanueldavid | 0:793b62d1f1ec | 29 | |
emmanueldavid | 1:068cd7adbe4d | 30 | //InterruptIn SW1(PB_4, PullUp); |
emmanueldavid | 1:068cd7adbe4d | 31 | //InterruptIn SW2(PB_5, PullUp); |
emmanueldavid | 0:793b62d1f1ec | 32 | InterruptIn SW3(PA_8, PullUp); |
emmanueldavid | 0:793b62d1f1ec | 33 | |
emmanueldavid | 0:793b62d1f1ec | 34 | /** The constructor takes in RX, and TX pin respectively. |
emmanueldavid | 0:793b62d1f1ec | 35 | * These pins, for this example, are defined in mbed_app.json |
emmanueldavid | 0:793b62d1f1ec | 36 | */ |
emmanueldavid | 0:793b62d1f1ec | 37 | //CAN can1(MBED_CONF_APP_CAN1_RD, MBED_CONF_APP_CAN1_TD); |
emmanueldavid | 0:793b62d1f1ec | 38 | |
emmanueldavid | 0:793b62d1f1ec | 39 | CAN can(PA_11, PA_12); |
emmanueldavid | 1:068cd7adbe4d | 40 | //Serial pc(USBTX, USBRX); |
emmanueldavid | 0:793b62d1f1ec | 41 | |
emmanueldavid | 0:793b62d1f1ec | 42 | char counter = 123; |
emmanueldavid | 1:068cd7adbe4d | 43 | char Carte2[] = "K2 "; |
emmanueldavid | 0:793b62d1f1ec | 44 | char Carte2bb[] = "K2bb"; |
emmanueldavid | 1:068cd7adbe4d | 45 | int Nb_messT = 0; |
emmanueldavid | 0:793b62d1f1ec | 46 | int value_SW4=0; |
emmanueldavid | 0:793b62d1f1ec | 47 | |
emmanueldavid | 1:068cd7adbe4d | 48 | int detectionFrontSW1(void) { |
emmanueldavid | 1:068cd7adbe4d | 49 | int frontDescendant = 0; |
emmanueldavid | 1:068cd7adbe4d | 50 | static int etatPrecedent1=1; |
emmanueldavid | 1:068cd7adbe4d | 51 | int bp = SW1.read(); |
emmanueldavid | 1:068cd7adbe4d | 52 | if(bp!=etatPrecedent1 && !bp) |
emmanueldavid | 1:068cd7adbe4d | 53 | frontDescendant = 1; |
emmanueldavid | 1:068cd7adbe4d | 54 | etatPrecedent1= bp; |
emmanueldavid | 1:068cd7adbe4d | 55 | return frontDescendant; |
emmanueldavid | 1:068cd7adbe4d | 56 | } |
emmanueldavid | 1:068cd7adbe4d | 57 | |
emmanueldavid | 1:068cd7adbe4d | 58 | int detectionFrontSW2(void) { |
emmanueldavid | 1:068cd7adbe4d | 59 | int frontDescendant = 0; |
emmanueldavid | 1:068cd7adbe4d | 60 | static int etatPrecedent1=1; |
emmanueldavid | 1:068cd7adbe4d | 61 | int bp = SW2.read(); |
emmanueldavid | 1:068cd7adbe4d | 62 | if(bp!=etatPrecedent1 && !bp) |
emmanueldavid | 1:068cd7adbe4d | 63 | frontDescendant = 1; |
emmanueldavid | 1:068cd7adbe4d | 64 | etatPrecedent1= bp; |
emmanueldavid | 1:068cd7adbe4d | 65 | return frontDescendant; |
emmanueldavid | 1:068cd7adbe4d | 66 | } |
emmanueldavid | 1:068cd7adbe4d | 67 | |
emmanueldavid | 0:793b62d1f1ec | 68 | /* |
emmanueldavid | 1:068cd7adbe4d | 69 | int detectionFrontSW3(void) { |
emmanueldavid | 1:068cd7adbe4d | 70 | int frontDescendant = 0; |
emmanueldavid | 1:068cd7adbe4d | 71 | static int etatPrecedent1=1; |
emmanueldavid | 1:068cd7adbe4d | 72 | int bp = SW3.read(); |
emmanueldavid | 1:068cd7adbe4d | 73 | if(bp!=etatPrecedent1 && !bp) |
emmanueldavid | 1:068cd7adbe4d | 74 | frontDescendant = 1; |
emmanueldavid | 1:068cd7adbe4d | 75 | etatPrecedent1= bp; |
emmanueldavid | 1:068cd7adbe4d | 76 | return frontDescendant; |
emmanueldavid | 0:793b62d1f1ec | 77 | } |
emmanueldavid | 0:793b62d1f1ec | 78 | */ |
emmanueldavid | 0:793b62d1f1ec | 79 | |
emmanueldavid | 1:068cd7adbe4d | 80 | /* Test Arbitrage */ |
emmanueldavid | 1:068cd7adbe4d | 81 | void AppuiSW3() { |
emmanueldavid | 1:068cd7adbe4d | 82 | if (value_SW4 == 3) { |
emmanueldavid | 1:068cd7adbe4d | 83 | if (can.write(CANMessage(60, Carte2bb, 5 , CANData, CANStandard))) { // Rmq : tableau = pointeur |
emmanueldavid | 1:068cd7adbe4d | 84 | ledD8 = !ledD8; |
emmanueldavid | 1:068cd7adbe4d | 85 | Nb_messT++; |
emmanueldavid | 1:068cd7adbe4d | 86 | } |
emmanueldavid | 0:793b62d1f1ec | 87 | } |
emmanueldavid | 1:068cd7adbe4d | 88 | if (value_SW4 == 2) { |
emmanueldavid | 1:068cd7adbe4d | 89 | if (can.write(CANMessage(48, Carte2bb, 5 , CANData, CANStandard))) { // Rmq : tableau = pointeur |
emmanueldavid | 1:068cd7adbe4d | 90 | ledD8 = !ledD8; |
emmanueldavid | 1:068cd7adbe4d | 91 | Nb_messT++; |
emmanueldavid | 1:068cd7adbe4d | 92 | } |
emmanueldavid | 1:068cd7adbe4d | 93 | } |
emmanueldavid | 0:793b62d1f1ec | 94 | } |
emmanueldavid | 0:793b62d1f1ec | 95 | |
emmanueldavid | 0:793b62d1f1ec | 96 | |
emmanueldavid | 0:793b62d1f1ec | 97 | int LectureSW4(){ |
emmanueldavid | 0:793b62d1f1ec | 98 | int ETAT; |
emmanueldavid | 0:793b62d1f1ec | 99 | int value_SW4_0 = SW4_0.read(); |
emmanueldavid | 0:793b62d1f1ec | 100 | int value_SW4_1 = SW4_1.read(); |
emmanueldavid | 0:793b62d1f1ec | 101 | |
emmanueldavid | 0:793b62d1f1ec | 102 | if (value_SW4_1 == 1) { |
emmanueldavid | 0:793b62d1f1ec | 103 | if (value_SW4_0 == 1) |
emmanueldavid | 0:793b62d1f1ec | 104 | ETAT = 3; |
emmanueldavid | 0:793b62d1f1ec | 105 | else |
emmanueldavid | 0:793b62d1f1ec | 106 | ETAT = 2; |
emmanueldavid | 0:793b62d1f1ec | 107 | } |
emmanueldavid | 0:793b62d1f1ec | 108 | else { |
emmanueldavid | 0:793b62d1f1ec | 109 | if (value_SW4_0 == 1) |
emmanueldavid | 0:793b62d1f1ec | 110 | ETAT = 1; |
emmanueldavid | 0:793b62d1f1ec | 111 | else |
emmanueldavid | 0:793b62d1f1ec | 112 | ETAT = 0; |
emmanueldavid | 0:793b62d1f1ec | 113 | } |
emmanueldavid | 0:793b62d1f1ec | 114 | return ETAT; |
emmanueldavid | 0:793b62d1f1ec | 115 | } |
emmanueldavid | 0:793b62d1f1ec | 116 | |
emmanueldavid | 1:068cd7adbe4d | 117 | |
emmanueldavid | 1:068cd7adbe4d | 118 | int main() |
emmanueldavid | 1:068cd7adbe4d | 119 | { |
emmanueldavid | 1:068cd7adbe4d | 120 | //pc.baud(115200); |
emmanueldavid | 1:068cd7adbe4d | 121 | //pc.printf("main()\n"); |
emmanueldavid | 1:068cd7adbe4d | 122 | |
emmanueldavid | 1:068cd7adbe4d | 123 | can.frequency(500000); |
emmanueldavid | 1:068cd7adbe4d | 124 | CANMessage msg; |
emmanueldavid | 1:068cd7adbe4d | 125 | |
emmanueldavid | 1:068cd7adbe4d | 126 | char Donnees[8]=""; |
emmanueldavid | 1:068cd7adbe4d | 127 | static int Nb_messR = 0; |
emmanueldavid | 1:068cd7adbe4d | 128 | |
emmanueldavid | 1:068cd7adbe4d | 129 | ledD6 = 1; ledD7 = 1; ledD8 = 1; ledD9 = 1; |
emmanueldavid | 1:068cd7adbe4d | 130 | |
emmanueldavid | 1:068cd7adbe4d | 131 | OLED.speed(SSD1306::Medium); // set working frequency |
emmanueldavid | 1:068cd7adbe4d | 132 | OLED.init(); // initialize SSD1306 |
emmanueldavid | 1:068cd7adbe4d | 133 | OLED.cls(); // clear frame buffer |
emmanueldavid | 1:068cd7adbe4d | 134 | |
emmanueldavid | 1:068cd7adbe4d | 135 | OLED.locate (0,0); |
emmanueldavid | 1:068cd7adbe4d | 136 | OLED.printf ("NbRx = 0"); |
emmanueldavid | 1:068cd7adbe4d | 137 | OLED.locate (1,0); |
emmanueldavid | 1:068cd7adbe4d | 138 | OLED.printf ("NbTx = 0"); |
emmanueldavid | 1:068cd7adbe4d | 139 | |
emmanueldavid | 1:068cd7adbe4d | 140 | SW3.fall(&AppuiSW3); |
emmanueldavid | 1:068cd7adbe4d | 141 | |
emmanueldavid | 1:068cd7adbe4d | 142 | while (1) { |
emmanueldavid | 1:068cd7adbe4d | 143 | //pc.printf("Reception message \n"); |
emmanueldavid | 1:068cd7adbe4d | 144 | value_SW4 = LectureSW4(); |
emmanueldavid | 1:068cd7adbe4d | 145 | |
emmanueldavid | 1:068cd7adbe4d | 146 | if (detectionFrontSW1()) |
emmanueldavid | 1:068cd7adbe4d | 147 | { |
emmanueldavid | 1:068cd7adbe4d | 148 | if (value_SW4 == 0) { |
emmanueldavid | 1:068cd7adbe4d | 149 | if (can.write(CANMessage(2021, Carte2, 5 , CANData, CANStandard))) { // Rmq : tableau = pointeur |
emmanueldavid | 1:068cd7adbe4d | 150 | ledD6 = !ledD6; |
emmanueldavid | 1:068cd7adbe4d | 151 | Nb_messT++; |
emmanueldavid | 1:068cd7adbe4d | 152 | } |
emmanueldavid | 1:068cd7adbe4d | 153 | } |
emmanueldavid | 1:068cd7adbe4d | 154 | } |
emmanueldavid | 1:068cd7adbe4d | 155 | /* |
emmanueldavid | 1:068cd7adbe4d | 156 | if (detectionFrontSW2()) |
emmanueldavid | 1:068cd7adbe4d | 157 | { |
emmanueldavid | 1:068cd7adbe4d | 158 | if (value_SW4 == 0) { |
emmanueldavid | 1:068cd7adbe4d | 159 | if (can.write(CANMessage(2021, CANStandard))) { // Remote frame |
emmanueldavid | 1:068cd7adbe4d | 160 | ledD7 = !ledD7; |
emmanueldavid | 1:068cd7adbe4d | 161 | Nb_messT++; |
emmanueldavid | 1:068cd7adbe4d | 162 | } |
emmanueldavid | 1:068cd7adbe4d | 163 | } |
emmanueldavid | 1:068cd7adbe4d | 164 | } |
emmanueldavid | 1:068cd7adbe4d | 165 | */ |
emmanueldavid | 1:068cd7adbe4d | 166 | /* |
emmanueldavid | 1:068cd7adbe4d | 167 | if (detectionFrontSW3()) |
emmanueldavid | 1:068cd7adbe4d | 168 | { |
emmanueldavid | 1:068cd7adbe4d | 169 | if (value_SW4 == 3) { |
emmanueldavid | 1:068cd7adbe4d | 170 | if (can.write(CANMessage(60, Carte2bb, 5 , CANData, CANStandard))) { // Rmq : tableau = pointeur |
emmanueldavid | 1:068cd7adbe4d | 171 | ledD8 = !ledD8; |
emmanueldavid | 1:068cd7adbe4d | 172 | Nb_messT++; |
emmanueldavid | 1:068cd7adbe4d | 173 | } |
emmanueldavid | 1:068cd7adbe4d | 174 | } |
emmanueldavid | 1:068cd7adbe4d | 175 | if (value_SW4 == 2) { |
emmanueldavid | 1:068cd7adbe4d | 176 | if (can.write(CANMessage(48, Carte2bb, 5 , CANData, CANStandard))) { // Rmq : tableau = pointeur |
emmanueldavid | 1:068cd7adbe4d | 177 | ledD8 = !ledD8; |
emmanueldavid | 1:068cd7adbe4d | 178 | Nb_messT++; |
emmanueldavid | 1:068cd7adbe4d | 179 | } |
emmanueldavid | 1:068cd7adbe4d | 180 | } |
emmanueldavid | 1:068cd7adbe4d | 181 | } |
emmanueldavid | 1:068cd7adbe4d | 182 | */ |
emmanueldavid | 1:068cd7adbe4d | 183 | |
emmanueldavid | 1:068cd7adbe4d | 184 | if (can.read(msg)) { |
emmanueldavid | 1:068cd7adbe4d | 185 | Nb_messR++; |
emmanueldavid | 1:068cd7adbe4d | 186 | ledD9 = !ledD9; |
emmanueldavid | 1:068cd7adbe4d | 187 | |
emmanueldavid | 1:068cd7adbe4d | 188 | for (int i =0; i < msg.len; i++) |
emmanueldavid | 1:068cd7adbe4d | 189 | Donnees[i] = msg.data[i]; |
emmanueldavid | 1:068cd7adbe4d | 190 | |
emmanueldavid | 1:068cd7adbe4d | 191 | //pc.printf("ID = 0x%.3x\r\n", msg.id); //ID sous forme 0x suivi de l'id |
emmanueldavid | 1:068cd7adbe4d | 192 | //pc.printf("Length = %d\r\n", msg.len); |
emmanueldavid | 1:068cd7adbe4d | 193 | //pc.printf("CAN rderrors : %d, CAN tderrors : %d\n", can.rderror(), can.tderror()); |
emmanueldavid | 1:068cd7adbe4d | 194 | |
emmanueldavid | 1:068cd7adbe4d | 195 | } |
emmanueldavid | 1:068cd7adbe4d | 196 | OLED.locate (0,0); |
emmanueldavid | 1:068cd7adbe4d | 197 | OLED.printf ("NbRx = %d", Nb_messR); |
emmanueldavid | 1:068cd7adbe4d | 198 | OLED.locate (1,0); |
emmanueldavid | 1:068cd7adbe4d | 199 | OLED.printf ("NbTx = %d", Nb_messT); |
emmanueldavid | 1:068cd7adbe4d | 200 | OLED.locate (3,0); |
emmanueldavid | 1:068cd7adbe4d | 201 | OLED.printf ("Message recu "); |
emmanueldavid | 1:068cd7adbe4d | 202 | OLED.locate (4,0); |
emmanueldavid | 1:068cd7adbe4d | 203 | OLED.printf ("=> "); |
emmanueldavid | 1:068cd7adbe4d | 204 | OLED.puts(Donnees); |
emmanueldavid | 1:068cd7adbe4d | 205 | OLED.locate (6,0); |
emmanueldavid | 1:068cd7adbe4d | 206 | OLED.printf("Valeur REC=%d", can.rderror()); |
emmanueldavid | 1:068cd7adbe4d | 207 | OLED.locate (7,0); |
emmanueldavid | 1:068cd7adbe4d | 208 | OLED.printf("Valeur TEC=%d", can.tderror()); |
emmanueldavid | 1:068cd7adbe4d | 209 | OLED.redraw(); |
emmanueldavid | 1:068cd7adbe4d | 210 | wait(0.2); |
emmanueldavid | 1:068cd7adbe4d | 211 | } |
emmanueldavid | 1:068cd7adbe4d | 212 | } |
emmanueldavid | 1:068cd7adbe4d | 213 | |
emmanueldavid | 1:068cd7adbe4d | 214 | |
emmanueldavid | 1:068cd7adbe4d | 215 | /* Envoi d'une trame de requete */ |
emmanueldavid | 1:068cd7adbe4d | 216 | /* |
emmanueldavid | 1:068cd7adbe4d | 217 | void AppuiSW2() { |
emmanueldavid | 1:068cd7adbe4d | 218 | if (can.write(CANMessage(1620, CANStandard ))) { |
emmanueldavid | 1:068cd7adbe4d | 219 | ledD7 = !ledD7; |
emmanueldavid | 1:068cd7adbe4d | 220 | } |
emmanueldavid | 1:068cd7adbe4d | 221 | } |
emmanueldavid | 1:068cd7adbe4d | 222 | */ |
emmanueldavid | 1:068cd7adbe4d | 223 | /* Reset controleur après court-circuit */ |
emmanueldavid | 1:068cd7adbe4d | 224 | /* |
emmanueldavid | 1:068cd7adbe4d | 225 | void AppuiSW3() { |
emmanueldavid | 1:068cd7adbe4d | 226 | if (can.write(CANMessage(2021, Reset, 6 , CANData, CANStandard))) // Rmq : tableau = pointeur |
emmanueldavid | 1:068cd7adbe4d | 227 | ledD8 = !ledD8; |
emmanueldavid | 1:068cd7adbe4d | 228 | else |
emmanueldavid | 1:068cd7adbe4d | 229 | can.reset(); |
emmanueldavid | 1:068cd7adbe4d | 230 | } |
emmanueldavid | 1:068cd7adbe4d | 231 | */ |
emmanueldavid | 0:793b62d1f1ec | 232 | /* Reset controleur après court-circuit */ |
emmanueldavid | 0:793b62d1f1ec | 233 | /* |
emmanueldavid | 0:793b62d1f1ec | 234 | void AppuiSW3() { |
emmanueldavid | 0:793b62d1f1ec | 235 | can.reset(); |
emmanueldavid | 0:793b62d1f1ec | 236 | OLED.cls(); |
emmanueldavid | 0:793b62d1f1ec | 237 | OLED.locate (0,0); // set text cursor to line 3, column 1 |
emmanueldavid | 0:793b62d1f1ec | 238 | OLED.printf ("GEII - Bus CAN"); // print to frame buffer |
emmanueldavid | 0:793b62d1f1ec | 239 | OLED.locate (2,0); // set text cursor to line 3, column 1 |
emmanueldavid | 0:793b62d1f1ec | 240 | OLED.printf ("SW1"); // print to frame buffer |
emmanueldavid | 0:793b62d1f1ec | 241 | OLED.locate (3,0); // set text cursor to line 3, column 1 |
emmanueldavid | 0:793b62d1f1ec | 242 | OLED.printf ("Envoi trame"); // print to frame buffer |
emmanueldavid | 0:793b62d1f1ec | 243 | OLED.redraw(); |
emmanueldavid | 0:793b62d1f1ec | 244 | } |
emmanueldavid | 0:793b62d1f1ec | 245 | */ |
emmanueldavid | 0:793b62d1f1ec | 246 | /* |
emmanueldavid | 0:793b62d1f1ec | 247 | char *conversionIntChaine(int longueurChaine, int Valeur_int, char *ChaineAffichage) |
emmanueldavid | 0:793b62d1f1ec | 248 | { |
emmanueldavid | 0:793b62d1f1ec | 249 | while (longueurChaine >= 0) |
emmanueldavid | 0:793b62d1f1ec | 250 | { |
emmanueldavid | 0:793b62d1f1ec | 251 | ChaineAffichage[longueurChaine] = (Valeur_int % 10) + 48; |
emmanueldavid | 0:793b62d1f1ec | 252 | Valeur_int /= 10; |
emmanueldavid | 0:793b62d1f1ec | 253 | longueurChaine--; |
emmanueldavid | 0:793b62d1f1ec | 254 | } |
emmanueldavid | 0:793b62d1f1ec | 255 | return (ChaineAffichage); |
emmanueldavid | 0:793b62d1f1ec | 256 | } |
emmanueldavid | 0:793b62d1f1ec | 257 | */ |
emmanueldavid | 1:068cd7adbe4d | 258 | |
emmanueldavid | 0:793b62d1f1ec | 259 | /* |
emmanueldavid | 0:793b62d1f1ec | 260 | OLED.locate (0,0); // set text cursor to line 3, column 1 |
emmanueldavid | 0:793b62d1f1ec | 261 | OLED.printf ("GEII - Bus CAN"); // print to frame buffer |
emmanueldavid | 0:793b62d1f1ec | 262 | OLED.locate (2,0); // set text cursor to line 3, column 1 |
emmanueldavid | 0:793b62d1f1ec | 263 | OLED.printf ("SW1"); // print to frame buffer |
emmanueldavid | 0:793b62d1f1ec | 264 | OLED.locate (3,0); // set text cursor to line 3, column 1 |
emmanueldavid | 0:793b62d1f1ec | 265 | OLED.printf ("Envoi trame"); // print to frame buffer |
emmanueldavid | 0:793b62d1f1ec | 266 | OLED.redraw(); |
emmanueldavid | 0:793b62d1f1ec | 267 | */ |
emmanueldavid | 0:793b62d1f1ec | 268 | |
emmanueldavid | 0:793b62d1f1ec | 269 | /* |
emmanueldavid | 0:793b62d1f1ec | 270 | char * |
emmanueldavid | 0:793b62d1f1ec | 271 | itoa (int n) |
emmanueldavid | 0:793b62d1f1ec | 272 | { |
emmanueldavid | 0:793b62d1f1ec | 273 | |
emmanueldavid | 0:793b62d1f1ec | 274 | char *a = malloc (long_int (n) + 1); |
emmanueldavid | 0:793b62d1f1ec | 275 | int i; |
emmanueldavid | 0:793b62d1f1ec | 276 | for (i = 0; n > 0; i++) |
emmanueldavid | 0:793b62d1f1ec | 277 | { |
emmanueldavid | 0:793b62d1f1ec | 278 | a[i] = n % 10 + 48; |
emmanueldavid | 0:793b62d1f1ec | 279 | n = n / 10; |
emmanueldavid | 0:793b62d1f1ec | 280 | } |
emmanueldavid | 0:793b62d1f1ec | 281 | a[i + 1] = '\0'; |
emmanueldavid | 0:793b62d1f1ec | 282 | return retourne (a); |
emmanueldavid | 0:793b62d1f1ec | 283 | } |
emmanueldavid | 0:793b62d1f1ec | 284 | |
emmanueldavid | 0:793b62d1f1ec | 285 | char *create_str(int len, int n, int neg, char *str) |
emmanueldavid | 0:793b62d1f1ec | 286 | { |
emmanueldavid | 0:793b62d1f1ec | 287 | while (len >= 0) |
emmanueldavid | 0:793b62d1f1ec | 288 | { |
emmanueldavid | 0:793b62d1f1ec | 289 | str[len] = (n % 10) + 48; |
emmanueldavid | 0:793b62d1f1ec | 290 | n /= 10; |
emmanueldavid | 0:793b62d1f1ec | 291 | len--; |
emmanueldavid | 0:793b62d1f1ec | 292 | } |
emmanueldavid | 0:793b62d1f1ec | 293 | if (neg < 0) |
emmanueldavid | 0:793b62d1f1ec | 294 | str[0] = '-'; |
emmanueldavid | 0:793b62d1f1ec | 295 | return (str); |
emmanueldavid | 0:793b62d1f1ec | 296 | } |
emmanueldavid | 0:793b62d1f1ec | 297 | */ |