ok

Dependencies:   mbed ssd1306_library

Committer:
emmanueldavid
Date:
Tue Feb 09 22:59:52 2021 +0000
Revision:
3:03be0fb433da
Parent:
2:8bc7e935c5a6
Child:
4:4f681e272268
modif main

Who changed what in which revision?

UserRevisionLine numberNew 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 0:bce63d085dc2 12
emmanueldavid 0:bce63d085dc2 13 typedef enum{
emmanueldavid 0:bce63d085dc2 14 DataFrame,
emmanueldavid 0:bce63d085dc2 15 RemoteFrame,
emmanueldavid 0:bce63d085dc2 16 ErrorFrame,
emmanueldavid 0:bce63d085dc2 17 OverloadFrame
emmanueldavid 0:bce63d085dc2 18 } TypeTrame;
emmanueldavid 0:bce63d085dc2 19 TypeTrame Trame;
emmanueldavid 0:bce63d085dc2 20
emmanueldavid 0:bce63d085dc2 21 /*
emmanueldavid 0:bce63d085dc2 22 typedef struct{
emmanueldavid 0:bce63d085dc2 23 can_id_t id;
emmanueldavid 0:bce63d085dc2 24 Uchar ctrl;
emmanueldavid 0:bce63d085dc2 25 Uchar * pt_donne;
emmanueldavid 0:bce63d085dc2 26 } can_msg_t;
emmanueldavid 0:bce63d085dc2 27 */
emmanueldavid 0:bce63d085dc2 28
emmanueldavid 0:bce63d085dc2 29 DigitalOut ledD9(PA_4);
emmanueldavid 0:bce63d085dc2 30 DigitalOut ledD8(PA_5); // Attention, désouder SB16&SB18 si utilisation I2c
emmanueldavid 0:bce63d085dc2 31 DigitalOut ledD7(PA_6);
emmanueldavid 0:bce63d085dc2 32 DigitalOut ledD6(PA_7);
emmanueldavid 0:bce63d085dc2 33
emmanueldavid 2:8bc7e935c5a6 34 DigitalIn SW4_0(PA_1);
emmanueldavid 2:8bc7e935c5a6 35 DigitalIn SW4_1(PA_3);
emmanueldavid 0:bce63d085dc2 36
emmanueldavid 0:bce63d085dc2 37 InterruptIn SW1(PB_4, PullUp);
emmanueldavid 0:bce63d085dc2 38 InterruptIn SW2(PB_5, PullUp);
emmanueldavid 0:bce63d085dc2 39 InterruptIn SW3(PA_8, PullUp);
emmanueldavid 0:bce63d085dc2 40
emmanueldavid 0:bce63d085dc2 41 CAN can(PA_11, PA_12);
emmanueldavid 0:bce63d085dc2 42 //Serial pc(USBTX, USBRX);
emmanueldavid 0:bce63d085dc2 43
emmanueldavid 0:bce63d085dc2 44 char Data[5] = "GEII";
emmanueldavid 0:bce63d085dc2 45
emmanueldavid 0:bce63d085dc2 46 /* Envoi d'une trame de donnees */
emmanueldavid 0:bce63d085dc2 47 void AppuiSW1() {
emmanueldavid 0:bce63d085dc2 48 if (can.write(CANMessage(2021, data, 5 , CANData, CANStandard))) { // Rmq : tableau = pointeur
emmanueldavid 0:bce63d085dc2 49 ledD6 = !ledD6;
emmanueldavid 0:bce63d085dc2 50 }
emmanueldavid 0:bce63d085dc2 51 }
emmanueldavid 0:bce63d085dc2 52
emmanueldavid 0:bce63d085dc2 53 /* Envoi d'une trame de requete */
emmanueldavid 0:bce63d085dc2 54 void AppuiSW2() {
emmanueldavid 0:bce63d085dc2 55 if (can.write(CANMessage(1620, CANStandard ))) {
emmanueldavid 0:bce63d085dc2 56 ledD7 = !ledD7;
emmanueldavid 0:bce63d085dc2 57 }
emmanueldavid 0:bce63d085dc2 58 }
emmanueldavid 0:bce63d085dc2 59
emmanueldavid 1:a119d8dc3ef7 60 int LectureSW4(){
emmanueldavid 2:8bc7e935c5a6 61 int ETAT;
emmanueldavid 1:a119d8dc3ef7 62 if (SW4_1 == 1) {
emmanueldavid 1:a119d8dc3ef7 63 if (SW4_0 == 1)
emmanueldavid 1:a119d8dc3ef7 64 ETAT = 3;
emmanueldavid 1:a119d8dc3ef7 65 else
emmanueldavid 1:a119d8dc3ef7 66 ETAT = 2;
emmanueldavid 1:a119d8dc3ef7 67 }
emmanueldavid 1:a119d8dc3ef7 68 else {
emmanueldavid 1:a119d8dc3ef7 69 if (SW4_0 == 1)
emmanueldavid 1:a119d8dc3ef7 70 ETAT = 1;
emmanueldavid 1:a119d8dc3ef7 71 else
emmanueldavid 1:a119d8dc3ef7 72 ETAT = 0;
emmanueldavid 1:a119d8dc3ef7 73 }
emmanueldavid 2:8bc7e935c5a6 74 return ETAT;
emmanueldavid 1:a119d8dc3ef7 75 }
emmanueldavid 1:a119d8dc3ef7 76
emmanueldavid 1:a119d8dc3ef7 77
emmanueldavid 0:bce63d085dc2 78 int main() {
emmanueldavid 0:bce63d085dc2 79 //pc.baud(115200);
emmanueldavid 0:bce63d085dc2 80 can.frequency(500000);
emmanueldavid 0:bce63d085dc2 81 //pc.printf("main()\n");
emmanueldavid 1:a119d8dc3ef7 82 Etat = LectureSW4(); // valeur 0,1,2,3
emmanueldavid 0:bce63d085dc2 83
emmanueldavid 0:bce63d085dc2 84 //CANMessage msg;
emmanueldavid 0:bce63d085dc2 85 //SW1.mode(PullUp);
emmanueldavid 3:03be0fb433da 86 //SW2.mode(PullUp); A mdoifier
emmanueldavid 0:bce63d085dc2 87 //ledD9 = 1;
emmanueldavid 0:bce63d085dc2 88 //ledD6 = 1;
emmanueldavid 0:bce63d085dc2 89
emmanueldavid 0:bce63d085dc2 90 SW1.fall(&AppuiSW1);
emmanueldavid 0:bce63d085dc2 91
emmanueldavid 0:bce63d085dc2 92
emmanueldavid 0:bce63d085dc2 93 while(1)
emmanueldavid 0:bce63d085dc2 94 {
emmanueldavid 0:bce63d085dc2 95 //SW1.fall(&AppuiSW1);
emmanueldavid 0:bce63d085dc2 96 //SW2.fall(&AppuiSW2);
emmanueldavid 0:bce63d085dc2 97 /*
emmanueldavid 0:bce63d085dc2 98 if(!SW2) //Detect Switch Press
emmanueldavid 0:bce63d085dc2 99 {
emmanueldavid 0:bce63d085dc2 100 //ledD8 = !ledD8;
emmanueldavid 0:bce63d085dc2 101 ledD6 = !ledD6;
emmanueldavid 0:bce63d085dc2 102 while(!SW2); //Wait for Key release
emmanueldavid 0:bce63d085dc2 103 }
emmanueldavid 0:bce63d085dc2 104 */
emmanueldavid 0:bce63d085dc2 105 }
emmanueldavid 0:bce63d085dc2 106 }