Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
- Committer:
- dedounet
- Date:
- 2017-06-03
- Revision:
- 6:2c713a0187dd
- Parent:
- 5:e7fa92a21eff
- Parent:
- 4:4051a72a22f7
- Child:
- 7:5ad5ce91831f
File content as of revision 6:2c713a0187dd:
#include "mbed.h" #include "rtos.h" #include <vector> #define SIG_RX_CAN 0x01 using namespace std; DigitalOut led1(LED1); DigitalOut led2(LED2); Thread threadA; Thread threadB; Thread threadC; char * BDD[8]; CAN CanPort(p30, p29); CANMessage MessageRx; CANMessage MessageTx; CANMessage MessageBuzzer; bool Send_Buzz=false; // Envoyer tramme au buzzer unsigned int Id; bool rechercheID(char * ID) // recherche d'un ID dans la base de données { bool retour = false; for( int i= 0; i< sizeof(BDD); i++) { if (BDD[i]==ID) retour= true ; } return retour; } void canReader(void) { if (CanPort.read(MessageRx)) { led1 = !led1; switch(MessageRx.id){ case 0x111 : threadA.signal_set(SIG_RX_CAN); break; case 0x221 : threadC.signal_set(SIG_RX_CAN); break; case 0x222 : threadC.signal_set(SIG_RX_CAN); break; case 0x333 : break; default: printf("Id error = %X\n\r",MessageRx.id) ; } } } void traitRFID() { int i=0; while(true) { Thread::signal_wait(SIG_RX_CAN); led2 = !led2; for(i=0; i<8;i++){ printf("Numero de carte = %X\n\r",MessageRx.data[i]); } } } void thA() { int i=0; while(true) { Thread::signal_wait(SIG_RX_CAN); led2 = !led2; if(MessageRx.data[0]==0x01){ printf("RX ID = %X \t\n\r",MessageRx.id); for (i=0;i<8;i++){ printf(" DATA = %X \n\r",MessageRx.data[i]); } } } } 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() { char c[8] ={0x00,0x00,0x00,0x00,0x3E,0xC1,0xF5,0x8A}; 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); threadC.start(traitRFID); led1 = 0; led2 =0 ; printf("Start OK\n\r"); while (true) { } }