![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Add CRC16 library
Dependencies: CRC16 mbed-rtos mbed
Fork of S5info_APP4 by
main.cpp
- Committer:
- ericbisson
- Date:
- 2017-03-06
- Revision:
- 7:5501dbea5650
- Parent:
- 6:193013e37136
- Child:
- 8:177b2370528b
File content as of revision 7:5501dbea5650:
#include "mbed.h" #include "rtos.h" #include <string> #include "bit.h" using std::string; #define PREAMBULE 0b01010101 const char START = 0b01111110; const char END = 0b01111110; const char FLAGS = 0x00; const char MAX_LENGTH = 80; const float HALF_PERIOD = 0.0005; // secondes Serial pc(USBTX, USBRX, 9600); Serial uart(p13, p14, 9600); DigitalOut myled1(LED1); DigitalOut myled2(LED2); InterruptIn read_pin(p14); Thread* thread; bool bIsHalfPeriod = false; extern "C" void RIT_IRQHandler(void) { //clear flag LPC_RIT->RICTRL |= bit0; //write 1 to clear bit myled1 = !myled1; bIsHalfPeriod = !bIsHalfPeriod; } void p14_interrupt() { // On envoie le signal au thread de lecture thread->signal_set(1); // On turn off les interrupts de lecture une fois qu'on a détecter un message read_pin.disable_irq(); }; void read() { while(true) { thread->signal_wait(1); // TODO: mettre ici le code pour la lecture de trame myled2 = !myled2; // Une fois fini, on réactive l'interrupt de lecture read_pin.enable_irq(); } }; void rit_init() { LPC_SC->PCONP |= bit16; //Power Control for Peripherals register: power up RIT clock LPC_SC->PCLKSEL1 |= (bit26 && bit27); //Peripheral clock selection: divide clock by 8 (run RIT clock by 12.5MHz) LPC_RIT->RICOUNTER = 0; //set counter to zero LPC_RIT->RICOMPVAL = 1000000000 * HALF_PERIOD; //interrupt tick every HALF_PERIOD LPC_RIT->RICTRL |= bit1; // clear timer when counter reaches value LPC_RIT->RICTRL |= bit3; // enable timer //enable interrupt NVIC_SetPriority(RIT_IRQn, 31); NVIC_EnableIRQ(RIT_IRQn); }; int main() { rit_init(); read_pin.fall(p14_interrupt); read_pin.enable_irq(); Thread ThreadLecture; // Thread pour pas avoir à rien faire dans l'interrupt thread = &ThreadLecture; thread->start(read); while(true) { // TODO: Mettre ici le code pour l'input et l'envoie de message uart.putc(0); wait_ms(100); } };