Marta Avramovic
/
CAN_Library_Example
CAN library with main code example.
main.cpp
- Committer:
- renemagrit
- Date:
- 2019-12-11
- Revision:
- 3:a2c5c001c79c
- Parent:
- 1:912431059a0f
File content as of revision 3:a2c5c001c79c:
#include "CANlibrary.h" /* * Datum: 1.april 2019. * Test primer CAN library * Prikazan nacin citanja i slanja poruka koriscenjem biblioteke CANlibrary.h * Dodato: U odnosu na osnovnu verziju dodata su tri tajmera za slanje poruka. * Pri tome ukoliko se ne koristi vise od jednog tajemra istovremeno moze da * se koristi sistem iz prvobotne bibliotke sa funkcijama: * - can_initTX(37); //parametar je adresa, inicijalizacija TX CAN Funkcija * - canTX_set_Interval(0.01); //interval CAN slanja * - can_msg_send_tick(); * - pack_data((uint16_t)data, 1); * Tj. Funckije bez indeksa. Ukoliko se koristi vise od jednog tajmera potrebno, * je koristiti fukcije sa indeksima koje se odnose na redni broj tajmera. * Primer tog koriscenja dat je dole u zakomentarisanom delu koda. */ DigitalOut myled(LED1); CAN can(PB_8, PB_9); Serial pc(USBTX, USBRX); int main() { pc.printf("main\n"); can.frequency(100000); //CAN frequency can_initRX(); //inicijalizacija RX CAN funkcija can_initTX(37); //parametar je adresa, inicijalizacija TX CAN Funkcija canTX_set_Interval(0.01); //interval CAN slanja /* // I N I C I J A L I Z A C I J A //__________________________________________________________________________________ can_initTX1(37); //parametar je adresa, inicijalizacija TX CAN Funkcija za timer 1 canTX_set_Interval_1(0.01); //interval CAN slanja timer-a 1 can_initTX2(16); //parametar je adresa, inicijalizacija TX CAN Funkcija za timer 2 canTX_set_Interval_2(0.1); //interval CAN slanja timer-a 2 can_initTX3(8); //parametar je adresa, inicijalizacija TX CAN Funkcija za timer 3 canTX_set_Interval_3(1.0); //interval CAN slanja timer-a 3 //__________________________________________________________________________________ // P O Z I V T A J M E R A can_msg_send_tick2(); //pozivanje funkcije koja periodicno salje CAN poruku po tajmeru 1 can_msg_send_tick1(); //pozivanje funkcije koja periodicno salje CAN poruku po tajmeru 2 can_msg_send_tick3(); //pozivanje funkcije koja periodicno salje CAN poruku po tajmeru 3 //__________________________________________________________________________________ */ can_msg_send_tick(); /* Poruka koja se salje automatski se upisuje u funkciju: pack_data(podatak, pozicija) */ while(true){ pc.printf("loop\n"); while(!check_flag(14)); //14 je ID prijema poruke int data=get_data(TEST); //pristigli, poslati podaci sa ID 14(dec,hex=0Eh) pack_data((uint16_t)data, 1); /* pack_data1((uint16_t)data, 1); //spakuj podatke timera 1 i posalji pack_data2((uint16_t)data, 2); //spakuj podatke timera 2 i posalji pack_data3((uint16_t)data, 3); //spakuj podatke timera 3 i posalji */ //can_msg_send(); //pojedinacno slanje, slanje van intervala } }