Oregon Scientific Decoder V2 and V3 for Nucleo-F401RE

Dependencies:   Oregon_Decode

Oregon-Scientific Decoder for V2 and V3 protocol. As exemple it handles THGR122NX (V2) and THGR810 (V3) sensors.

The software use interrupts to collect frames in a buffer and decode them in a background task.

Committer:
sev2000
Date:
Sat Jul 18 07:58:54 2020 +0000
Revision:
1:265557f4b6b8
Parent:
0:7d471396cb64
Change for Mbed 6

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sev2000 0:7d471396cb64 1 #include "mbed.h"
sev2000 0:7d471396cb64 2 #include "Regul.h"
sev2000 1:265557f4b6b8 3 //#include "rtos.h"
sev2000 0:7d471396cb64 4
sev2000 0:7d471396cb64 5 void Init_Oregon(void);
sev2000 0:7d471396cb64 6 extern measure_t Sensor[];
sev2000 0:7d471396cb64 7
sev2000 0:7d471396cb64 8 DigitalOut led1(LED1);
sev2000 1:265557f4b6b8 9 //static BufferedSerial pc(USBTX, USBRX,115200); // tx, rx
sev2000 0:7d471396cb64 10
sev2000 0:7d471396cb64 11 int main()
sev2000 0:7d471396cb64 12 {
sev2000 0:7d471396cb64 13 measure_t Measure;
sev2000 0:7d471396cb64 14
sev2000 1:265557f4b6b8 15 //pc.baud(115200);
sev2000 1:265557f4b6b8 16 DBG("Start");
sev2000 0:7d471396cb64 17 Init_Oregon();
sev2000 0:7d471396cb64 18 // NVIC_SetPriority(EXTI9_5_IRQn, 0); //set interupt to highest priority 0
sev2000 0:7d471396cb64 19 // NVIC_SetPriority(TIM3_IRQn,1); // set mbed tickers to lower priority than other things
sev2000 0:7d471396cb64 20
sev2000 0:7d471396cb64 21 while (1)
sev2000 0:7d471396cb64 22 { // loop forever
sev2000 0:7d471396cb64 23 led1 = !led1;
sev2000 0:7d471396cb64 24
sev2000 0:7d471396cb64 25 for (int i=0; i<NB_CHAN; i++)
sev2000 0:7d471396cb64 26 {
sev2000 0:7d471396cb64 27 if (Sensor[i].timestamp !=0)
sev2000 0:7d471396cb64 28 {
sev2000 0:7d471396cb64 29 Measure=Sensor[i];
sev2000 1:265557f4b6b8 30 printf("\r\nCh%d : %0.1f%cC %0.0f%%\r\n", i , Measure.temp1, 0xC2B0, Measure.hum1);
sev2000 0:7d471396cb64 31 Sensor[i].timestamp = 0;
sev2000 0:7d471396cb64 32 }
sev2000 0:7d471396cb64 33 }
sev2000 0:7d471396cb64 34 ThisThread::sleep_for(2000);
sev2000 0:7d471396cb64 35 }
sev2000 0:7d471396cb64 36 }