SSI OpComms 3CM Board RX
Dependencies: mbed
Fork of Optical3cmRX by
main.cpp
- Committer:
- tteisberg
- Date:
- 2015-10-30
- Revision:
- 1:b446f401a861
- Parent:
- 0:879aa9d0247b
- Child:
- 2:eb447fcd8284
File content as of revision 1:b446f401a861:
#include "mbed.h" AnalogIn rx(p20); Serial pc(USBTX, USBRX); // tx, rx int buf[20]; int idx = 0; int nzeros = 0; int onCount, offCount; char decodechar(int start){ int val = 0; for(int i=7;i>=0;i--){ val += ((int)buf[start+i]) << (7-i); } return (char) val; } int main() { pc.printf("3 CM Link Board - Recieve\n"); bool calib = true; if(calib){ while(true){ pc.printf("%f\r\n", rx.read()); wait_ms(100); if(pc.readable()) break; } } idx = 0; onCount = 0; offCount = 0; while(true){ float v = rx.read(); if(v > 0.001){ //pc.printf("1 "); onCount++; offCount = 0; }else{ if(onCount >= 5 && onCount <= 15){ buf[idx] = false; idx++; }else if(onCount >= 15 && onCount <= 25){ buf[idx] = true; idx++; } onCount = 0; offCount++; if(offCount >= 25 || idx >=8){ int c = decodechar(0); pc.printf("%c",c); for(int i=0;i<8;i++) buf[i] = 0; idx = 0; offCount = 0; } } wait_ms(1); } }