mohamed trabelsi
/
UJA1023_LIN_LED
lin to uja1023
main.cpp@0:0af5ede0c252, 2022-04-27 (annotated)
- Committer:
- metronix
- Date:
- Wed Apr 27 07:15:24 2022 +0000
- Revision:
- 0:0af5ede0c252
LINSMSG;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
metronix | 0:0af5ede0c252 | 1 | |
metronix | 0:0af5ede0c252 | 2 | #include "mbed.h" |
metronix | 0:0af5ede0c252 | 3 | |
metronix | 0:0af5ede0c252 | 4 | Serial LIN(PB_7, PB_6);//lin tx and rx |
metronix | 0:0af5ede0c252 | 5 | |
metronix | 0:0af5ede0c252 | 6 | uint8_t assignID[]={0x55,0x3C, 0x60, 0x06, 0xB1, 0x11, 0x00, 0x00, 0x00, 0x04, 0xD2};// Assign frameID, default NAD used and // ID(PxReq) = 04,ID(PxResp) = 05 |
metronix | 0:0af5ede0c252 | 7 | uint8_t postiveResp[]={ 0x55,0x7D, 0x60, 0x01, 0xF1, 0xFF, 0xF, 0xFF, 0xFF, 0xFF, 0xAC};// Positive response |
metronix | 0:0af5ede0c252 | 8 | uint8_t Datadump1[]={ 0x55, 0x3C, 0x60, 0x01, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAC};//Datadump1, 8 × LSE |
metronix | 0:0af5ede0c252 | 9 | uint8_t readdump1[]={0x55, 0x7D, 0x60, 0x06, 0xF4, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xA4}; |
metronix | 0:0af5ede0c252 | 10 | uint8_t Datadump2[]={ 0x55, 0x3C, 0x60, 0x06, 0xB4, 0x40, 0x00, 0x00, 0x00, 0x00, 0xA4};//Datadump1, 8 × LSE |
metronix | 0:0af5ede0c252 | 11 | uint8_t readdump2[]={0x55,0x7D, 0x60,0x06, 0xF4, 0x40, 0x00, 0x00, 0x00, 0x00, 0x64}; |
metronix | 0:0af5ede0c252 | 12 | uint8_t Datadump3[]={0x55, 0x3C, 0x60, 0x04, 0xB4, 0x80, 0x55, 0x10, 0xFF, 0xFF, 0x01};//Datadump1, 8 × LSE |
metronix | 0:0af5ede0c252 | 13 | uint8_t readConfSended[]={0x55,0x7D, 0x60,0x04 , 0xF4, 0x80, 0x55, 0x10, 0xFF, 0xFF, 0xC0}; |
metronix | 0:0af5ede0c252 | 14 | uint8_t readByID[]={ 0x55, 0x3C, 0x60, 0x06, 0xB2, 0x00, 0x11, 0x00, 0x00, 0x00, 0xD5}; |
metronix | 0:0af5ede0c252 | 15 | uint8_t postiveResp2[]={ 0x55,0x7D, 0x60, 0x06, 0xF2, 0x11, 0x00, 0x00, 0x00, 0x02, 0x93}; |
metronix | 0:0af5ede0c252 | 16 | uint8_t enbConf[]={0x55,0xC4, 0x01, 0x80, 0x7E}; |
metronix | 0:0af5ede0c252 | 17 | uint8_t enbP1[] = {0x55,0xC4,0x02 ,0x80, 0x7D}; |
metronix | 0:0af5ede0c252 | 18 | |
metronix | 0:0af5ede0c252 | 19 | void sendDataToSlave(); |
metronix | 0:0af5ede0c252 | 20 | void writeData(uint8_t data[],int length); |
metronix | 0:0af5ede0c252 | 21 | |
metronix | 0:0af5ede0c252 | 22 | int main() |
metronix | 0:0af5ede0c252 | 23 | { |
metronix | 0:0af5ede0c252 | 24 | DigitalOut NSLP(PB_5); //activate lin transiver |
metronix | 0:0af5ede0c252 | 25 | DigitalIn BP(PB_4,PullUp); |
metronix | 0:0af5ede0c252 | 26 | DigitalOut led(PC_13); //fadding led |
metronix | 0:0af5ede0c252 | 27 | int count =0; |
metronix | 0:0af5ede0c252 | 28 | LIN.baud(19200); |
metronix | 0:0af5ede0c252 | 29 | LIN.format (8,SerialBase::None,1); |
metronix | 0:0af5ede0c252 | 30 | led=1; |
metronix | 0:0af5ede0c252 | 31 | wait(10); |
metronix | 0:0af5ede0c252 | 32 | while (true) { |
metronix | 0:0af5ede0c252 | 33 | |
metronix | 0:0af5ede0c252 | 34 | if(count == 0){ |
metronix | 0:0af5ede0c252 | 35 | led=1; |
metronix | 0:0af5ede0c252 | 36 | NSLP=1; |
metronix | 0:0af5ede0c252 | 37 | sendDataToSlave(); |
metronix | 0:0af5ede0c252 | 38 | NSLP=0; |
metronix | 0:0af5ede0c252 | 39 | count=1; |
metronix | 0:0af5ede0c252 | 40 | } |
metronix | 0:0af5ede0c252 | 41 | |
metronix | 0:0af5ede0c252 | 42 | } |
metronix | 0:0af5ede0c252 | 43 | } |
metronix | 0:0af5ede0c252 | 44 | void sendDataToSlave(){ |
metronix | 0:0af5ede0c252 | 45 | writeData(assignID,sizeof(assignID)); |
metronix | 0:0af5ede0c252 | 46 | writeData(postiveResp,sizeof(postiveResp)); |
metronix | 0:0af5ede0c252 | 47 | writeData(Datadump1,sizeof(Datadump1)); |
metronix | 0:0af5ede0c252 | 48 | writeData(readdump1,sizeof(readdump1)); |
metronix | 0:0af5ede0c252 | 49 | writeData(Datadump2,sizeof(Datadump2)); |
metronix | 0:0af5ede0c252 | 50 | writeData(readdump2,sizeof(readdump2)); |
metronix | 0:0af5ede0c252 | 51 | writeData(Datadump3,sizeof(Datadump3)); |
metronix | 0:0af5ede0c252 | 52 | writeData(readConfSended,sizeof(readConfSended)); |
metronix | 0:0af5ede0c252 | 53 | writeData(readByID,sizeof(readConfSended)); |
metronix | 0:0af5ede0c252 | 54 | writeData(postiveResp2,sizeof(postiveResp2)); |
metronix | 0:0af5ede0c252 | 55 | writeData(enbConf,sizeof(enbConf)); |
metronix | 0:0af5ede0c252 | 56 | writeData(enbP1,sizeof(enbP1)); |
metronix | 0:0af5ede0c252 | 57 | } |
metronix | 0:0af5ede0c252 | 58 | |
metronix | 0:0af5ede0c252 | 59 | void writeData(uint8_t data[],int length){ |
metronix | 0:0af5ede0c252 | 60 | wait_ms(150);//sync break |
metronix | 0:0af5ede0c252 | 61 | LIN.putc(0x80);// sync delimeter |
metronix | 0:0af5ede0c252 | 62 | for(int i =0;i<length;i++){ |
metronix | 0:0af5ede0c252 | 63 | LIN.putc(data[i]); |
metronix | 0:0af5ede0c252 | 64 | } |
metronix | 0:0af5ede0c252 | 65 | wait_ms(150);//sync break |
metronix | 0:0af5ede0c252 | 66 | } |