ok

Dependencies:   mbed ssd1306_library

main_Carte1.cpp

Committer:
emmanueldavid
Date:
2021-02-09
Revision:
2:8bc7e935c5a6
Parent:
1:a119d8dc3ef7
Child:
3:03be0fb433da

File content as of revision 2:8bc7e935c5a6:

/*
 * Programme Carte 1
 * E. DAVID - Fevrier 2021
 */

#if !DEVICE_CAN
#error [NOT_SUPPORTED] CAN not supported for this target
#endif

#include "mbed.h"
#include "ssd1306.h"

typedef enum{ 
  DataFrame,
  RemoteFrame,
  ErrorFrame,
  OverloadFrame
} TypeTrame;
TypeTrame Trame;

/*
typedef struct{
  can_id_t id;
  Uchar ctrl;
  Uchar * pt_donne;
} can_msg_t;
*/

DigitalOut ledD9(PA_4);
DigitalOut ledD8(PA_5);   // Attention, désouder SB16&SB18 si utilisation I2c
DigitalOut ledD7(PA_6);   
DigitalOut ledD6(PA_7);

DigitalIn  SW4_0(PA_1);
DigitalIn  SW4_1(PA_3);

InterruptIn SW1(PB_4, PullUp); 
InterruptIn SW2(PB_5, PullUp); 
InterruptIn SW3(PA_8, PullUp); 

CAN can(PA_11, PA_12);
//Serial pc(USBTX, USBRX);

char Data[5] = "GEII";

/* Envoi d'une trame de donnees */
void AppuiSW1() {
  if (can.write(CANMessage(2021, data, 5 , CANData, CANStandard))) { // Rmq : tableau = pointeur
    ledD6 = !ledD6;
  } 
}

/* Envoi d'une trame de requete */
void AppuiSW2() {
  if (can.write(CANMessage(1620, CANStandard ))) {
    ledD7 = !ledD7;
  } 
}

int LectureSW4(){
    int ETAT;
    if (SW4_1 == 1) {
        if (SW4_0 == 1)
            ETAT = 3;
        else
            ETAT = 2;
    }
    else {
        if (SW4_0 == 1)
            ETAT = 1;
        else
            ETAT = 0;       
    }
    return ETAT;
}


int main() {
    //pc.baud(115200);
    can.frequency(500000); 
    //pc.printf("main()\n");
    Etat = LectureSW4();    // valeur 0,1,2,3
    
    //CANMessage msg;
    //SW1.mode(PullUp);
    //SW2.mode(PullUp);
    //ledD9 = 1;
    //ledD6 = 1;  
    
    SW1.fall(&AppuiSW1);

    
    while(1) 
    {
        //SW1.fall(&AppuiSW1);
        //SW2.fall(&AppuiSW2);
    /*    
        if(!SW2)       //Detect Switch Press
        {
            //ledD8 = !ledD8;
            ledD6 = !ledD6;
            while(!SW2);   //Wait for Key release                              
        }
        */
    }
}