DIISWAG / Mbed 2 deprecated CAN_Database

Dependencies:   mbed mbed-rtos

main.cpp

Committer:
Taliarte
Date:
2017-05-23
Revision:
2:654aafc318bf
Parent:
1:6f8bf5bdc70f
Child:
4:4051a72a22f7
Child:
5:e7fa92a21eff

File content as of revision 2:654aafc318bf:

#include "mbed.h"
#include "rtos.h"

#define SIG_RX_CAN  0x01


DigitalOut led1(LED1);
DigitalOut led2(LED2);

Thread threadA;
Thread threadB;
 
 
CAN CanPort(p30, p29);
CANMessage  MessageRx; 
CANMessage  MessageTx;

CANMessage MessageBuzzer;

bool Send_Buzz=false; // Envoyer tramme au buzzer

unsigned int    Id;

 
void canReader(void)
{
    
      
    if (CanPort.read(MessageRx))
    {
            led1 = !led1;
            threadA.signal_set(SIG_RX_CAN);
    }
    
} 
 

void thA() 
{
    while(true)
    {
        Thread::signal_wait(SIG_RX_CAN);    
        led2 = !led2;
        printf("RX FRAME ID = %X\n\r",MessageRx.id);
        
    }
}
 
void thB() 
{
    while(true) 
    {
    led1 = !led1;   
    printf("TIC3s\n\r");
    MessageBuzzer.id=Id;
    CanPort.write(MessageBuzzer);
    /*if (Id < 0x3FF) Id++;
    else Id = 0x000;*/
    
    wait(3);   
    }
}

int main() 
{
    
    
    CanPort.frequency(20000);
    
    Id = 0x222;
    MessageBuzzer.len=1;
    MessageBuzzer.data[0] = 0x01;
    //MessageTx.data[1] = 0xAA;
    
    MessageTx.format = CANStandard;
    //MessageTx.format = CANExtended;
    
    MessageTx.type = CANData;
    //MessageTx.type = CANRemote;
    
    CanPort.attach(canReader,CAN::RxIrq);
        
    threadA.start(thA);
    threadB.start(thB);
    
    led1 = 0;
  
    while (true) 
        {
    
        }
}