Robert Zalog / Mbed 2 deprecated hermes_copy

Dependencies:   mbed QEI beep

Committer:
rzalog
Date:
Sun May 05 00:02:11 2019 +0000
Revision:
0:7a97ebb833eb
test commit;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rzalog 0:7a97ebb833eb 1 #include "ir.h"
rzalog 0:7a97ebb833eb 2 #include "pins.h"
rzalog 0:7a97ebb833eb 3 #include "globals.h"
rzalog 0:7a97ebb833eb 4
rzalog 0:7a97ebb833eb 5 AnalogIn rec_RF(DET_Rfront);
rzalog 0:7a97ebb833eb 6 AnalogIn rec_LF(DET_Lfront);
rzalog 0:7a97ebb833eb 7 //AnalogIn rec_RS(DET_Rside);
rzalog 0:7a97ebb833eb 8 //AnalogIn rec_LS(DET_Lside);
rzalog 0:7a97ebb833eb 9
rzalog 0:7a97ebb833eb 10 DigitalOut ir_RF(IR_Rfront);
rzalog 0:7a97ebb833eb 11 DigitalOut ir_LF(IR_Lfront);
rzalog 0:7a97ebb833eb 12 //DigitalOut ir_RS(IR_Rside);
rzalog 0:7a97ebb833eb 13 //DigitalOut ir_LS(IR_Lside);
rzalog 0:7a97ebb833eb 14
rzalog 0:7a97ebb833eb 15
rzalog 0:7a97ebb833eb 16 ///////
rzalog 0:7a97ebb833eb 17 // IR class implementation
rzalog 0:7a97ebb833eb 18 ///////
rzalog 0:7a97ebb833eb 19
rzalog 0:7a97ebb833eb 20 IR::IR() {
rzalog 0:7a97ebb833eb 21 m_rf = 0;
rzalog 0:7a97ebb833eb 22 m_lf = 0;
rzalog 0:7a97ebb833eb 23 m_rs = 0;
rzalog 0:7a97ebb833eb 24 m_ls = 0;
rzalog 0:7a97ebb833eb 25 }
rzalog 0:7a97ebb833eb 26
rzalog 0:7a97ebb833eb 27 /***
rzalog 0:7a97ebb833eb 28 * Assignment 4 START
rzalog 0:7a97ebb833eb 29 ***/
rzalog 0:7a97ebb833eb 30
rzalog 0:7a97ebb833eb 31 /***
rzalog 0:7a97ebb833eb 32 * Properly turn the IR's on, warm up receiver for WARM_UP_US,
rzalog 0:7a97ebb833eb 33 * read the value, cool down receivers for COOL_DOWN_US,
rzalog 0:7a97ebb833eb 34 * then turn off.
rzalog 0:7a97ebb833eb 35 ***/
rzalog 0:7a97ebb833eb 36 float IR::flash_ir(DigitalOut ir, AnalogIn rec) volatile {
rzalog 0:7a97ebb833eb 37 ir = 1;
rzalog 0:7a97ebb833eb 38 wait_us(WARM_UP_US);
rzalog 0:7a97ebb833eb 39 float ret = read_ir(rec);
rzalog 0:7a97ebb833eb 40 ir = 0;
rzalog 0:7a97ebb833eb 41 wait_us(COOL_DOWN_US);
rzalog 0:7a97ebb833eb 42
rzalog 0:7a97ebb833eb 43 return ret;
rzalog 0:7a97ebb833eb 44 }
rzalog 0:7a97ebb833eb 45
rzalog 0:7a97ebb833eb 46 float IR::RS_error() volatile {
rzalog 0:7a97ebb833eb 47 // TODO
rzalog 0:7a97ebb833eb 48
rzalog 0:7a97ebb833eb 49 if (RS() > MIDR) {
rzalog 0:7a97ebb833eb 50 //return RS_base() - RS();
rzalog 0:7a97ebb833eb 51 return 0;
rzalog 0:7a97ebb833eb 52 }
rzalog 0:7a97ebb833eb 53 else return 0;
rzalog 0:7a97ebb833eb 54 }
rzalog 0:7a97ebb833eb 55
rzalog 0:7a97ebb833eb 56 float IR::LS_error() volatile {
rzalog 0:7a97ebb833eb 57 // TODO
rzalog 0:7a97ebb833eb 58
rzalog 0:7a97ebb833eb 59 if (LS() > MIDL) {
rzalog 0:7a97ebb833eb 60 //return LS() - LS_base();
rzalog 0:7a97ebb833eb 61 return 0;
rzalog 0:7a97ebb833eb 62 }
rzalog 0:7a97ebb833eb 63 else return 0;
rzalog 0:7a97ebb833eb 64 }
rzalog 0:7a97ebb833eb 65
rzalog 0:7a97ebb833eb 66 float IR::read_ir(AnalogIn rec) volatile {
rzalog 0:7a97ebb833eb 67 // Read an IR, averaging over 10 reads.
rzalog 0:7a97ebb833eb 68 int n = 10;
rzalog 0:7a97ebb833eb 69 float total = 0;
rzalog 0:7a97ebb833eb 70
rzalog 0:7a97ebb833eb 71 for (int i = 0; i < n; i++) {
rzalog 0:7a97ebb833eb 72 total += rec.read();
rzalog 0:7a97ebb833eb 73 }
rzalog 0:7a97ebb833eb 74
rzalog 0:7a97ebb833eb 75 return total / n;
rzalog 0:7a97ebb833eb 76 }
rzalog 0:7a97ebb833eb 77
rzalog 0:7a97ebb833eb 78 void IR::update() volatile {
rzalog 0:7a97ebb833eb 79 // Update all your IR readings.
rzalog 0:7a97ebb833eb 80
rzalog 0:7a97ebb833eb 81 // Don't do any init because for some reason that doesn't work...
rzalog 0:7a97ebb833eb 82 m_rf = flash_ir(ir_RF, rec_RF); //- init_rf;
rzalog 0:7a97ebb833eb 83 m_lf = flash_ir(ir_LF, rec_LF); //- init_lf;
rzalog 0:7a97ebb833eb 84
rzalog 0:7a97ebb833eb 85 //m_rs = flash_ir(ir_RS, rec_RS); //- init_rs;
rzalog 0:7a97ebb833eb 86 //m_ls = flash_ir(ir_LS, rec_LS); //- init_ls;
rzalog 0:7a97ebb833eb 87 }
rzalog 0:7a97ebb833eb 88
rzalog 0:7a97ebb833eb 89
rzalog 0:7a97ebb833eb 90 void IR::printValues() volatile {
rzalog 0:7a97ebb833eb 91 // Utility: Use for diagnostics
rzalog 0:7a97ebb833eb 92
rzalog 0:7a97ebb833eb 93 pc.printf("RF: %.3f\tLF: %.3f\tRS: %.3f\tLS: %.3f\n",
rzalog 0:7a97ebb833eb 94 m_rf, m_lf, m_rs, m_ls);
rzalog 0:7a97ebb833eb 95 }