Bus CAN intégré au lecteur RFID

Dependencies:   RTOS-Serial mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "rtos.h"
00003 #include "rtos_serial.h"
00004 #include "tRDM880.h"
00005 
00006 #define TXD     p28
00007 #define RXD     p27
00008 
00009 #define ID 0x222
00010 
00011 CAN CanPort(p30, p29);
00012 CANMessage  MessageTx;
00013 
00014 int main() 
00015 {
00016     unsigned char Data[100];
00017     int Res;
00018     tCSN    CardNumber;
00019     unsigned char Status;
00020     
00021     RTOS_Serial Uart(TXD, RXD);
00022     tRdm880 Reader(&Uart);
00023     
00024     while(1){
00025         
00026         Reader.SendGetID();
00027         Res = Reader.GetResponse(Data);
00028         
00029         Status = Reader.getStatus(Data);
00030         
00031         if (Status == CMD_OK){
00032             
00033             Res = Reader.getCardSerialNumber(Data,&CardNumber);
00034             
00035             if (Res == 0){      
00036                     printf("CARD ID = %04X %08X %08X\n",CardNumber.VeryHigh16b,CardNumber.High32b,CardNumber.Low32b);  
00037                     
00038                     MessageTx.data[0] = CardNumber.High32b >> 24;
00039                     MessageTx.data[1] = CardNumber.High32b >> 16;
00040                     MessageTx.data[2] = CardNumber.High32b >> 8;
00041                     MessageTx.data[3] = CardNumber.High32b;
00042                     
00043                     MessageTx.data[4] = CardNumber.Low32b >> 24;
00044                     MessageTx.data[5] = CardNumber.Low32b >> 16;
00045                     MessageTx.data[6] = CardNumber.Low32b >> 8;
00046                     MessageTx.data[7] = CardNumber.Low32b;
00047                      
00048                     MessageTx.id=ID;
00049                     CanPort.write(MessageTx);//on envoi 8 octets
00050                     
00051             } else {
00052                 printf("ID ERROR\n");
00053             }
00054                 
00055         }else {
00056                 printf("NO CARD\n");
00057         }
00058         
00059         
00060         
00061         
00062         wait(0.5);
00063     }
00064 }
00065 
00066