RemoteIR.

Dependents:   RemoteIR_TestProgram SerialGPS_TestProgram StarBoardOrangeExpansion1 Door_Slamming_Device ... more

Committer:
shintamainjp
Date:
Tue Aug 17 08:50:54 2010 +0000
Revision:
0:ec264f4ce158
Child:
2:08836610bd4a

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shintamainjp 0:ec264f4ce158 1 /**
shintamainjp 0:ec264f4ce158 2 * IR transmitter (Version 0.0.3)
shintamainjp 0:ec264f4ce158 3 *
shintamainjp 0:ec264f4ce158 4 * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
shintamainjp 0:ec264f4ce158 5 * http://shinta.main.jp/
shintamainjp 0:ec264f4ce158 6 */
shintamainjp 0:ec264f4ce158 7
shintamainjp 0:ec264f4ce158 8 #ifndef _TRANSMITTER_IR_H_
shintamainjp 0:ec264f4ce158 9 #define _TRANSMITTER_IR_H_
shintamainjp 0:ec264f4ce158 10
shintamainjp 0:ec264f4ce158 11 #include <mbed.h>
shintamainjp 0:ec264f4ce158 12
shintamainjp 0:ec264f4ce158 13 #include "Semaphore.h"
shintamainjp 0:ec264f4ce158 14 #include "RemoteIR.h"
shintamainjp 0:ec264f4ce158 15
shintamainjp 0:ec264f4ce158 16 class TransmitterIR {
shintamainjp 0:ec264f4ce158 17 public:
shintamainjp 0:ec264f4ce158 18 explicit TransmitterIR(PinName txpin);
shintamainjp 0:ec264f4ce158 19 ~TransmitterIR();
shintamainjp 0:ec264f4ce158 20
shintamainjp 0:ec264f4ce158 21 typedef enum {
shintamainjp 0:ec264f4ce158 22 Idle,
shintamainjp 0:ec264f4ce158 23 Leader,
shintamainjp 0:ec264f4ce158 24 Data,
shintamainjp 0:ec264f4ce158 25 Trailer
shintamainjp 0:ec264f4ce158 26 } State;
shintamainjp 0:ec264f4ce158 27
shintamainjp 0:ec264f4ce158 28 void init(void);
shintamainjp 0:ec264f4ce158 29 State getState(void);
shintamainjp 0:ec264f4ce158 30 int setData(RemoteIR::Format format, uint8_t *buf, int bitlength);
shintamainjp 0:ec264f4ce158 31
shintamainjp 0:ec264f4ce158 32 private:
shintamainjp 0:ec264f4ce158 33
shintamainjp 0:ec264f4ce158 34 typedef struct {
shintamainjp 0:ec264f4ce158 35 State state;
shintamainjp 0:ec264f4ce158 36 int bitcount;
shintamainjp 0:ec264f4ce158 37 int leader;
shintamainjp 0:ec264f4ce158 38 int data;
shintamainjp 0:ec264f4ce158 39 int trailer;
shintamainjp 0:ec264f4ce158 40 } work_t;
shintamainjp 0:ec264f4ce158 41
shintamainjp 0:ec264f4ce158 42 typedef struct {
shintamainjp 0:ec264f4ce158 43 RemoteIR::Format format;
shintamainjp 0:ec264f4ce158 44 int bitlength;
shintamainjp 0:ec264f4ce158 45 uint8_t buffer[64];
shintamainjp 0:ec264f4ce158 46 } data_t;
shintamainjp 0:ec264f4ce158 47
shintamainjp 0:ec264f4ce158 48 PwmOut tx;
shintamainjp 0:ec264f4ce158 49 Ticker ticker;
shintamainjp 0:ec264f4ce158 50 data_t data;
shintamainjp 0:ec264f4ce158 51 work_t work;
shintamainjp 0:ec264f4ce158 52 Semaphore sem;
shintamainjp 0:ec264f4ce158 53
shintamainjp 0:ec264f4ce158 54 static const int TUS_NEC = 562;
shintamainjp 0:ec264f4ce158 55 static const int TUS_AEHA = 425;
shintamainjp 0:ec264f4ce158 56 static const int TUS_SONY = 600;
shintamainjp 0:ec264f4ce158 57
shintamainjp 0:ec264f4ce158 58 void tick();
shintamainjp 0:ec264f4ce158 59
shintamainjp 0:ec264f4ce158 60 };
shintamainjp 0:ec264f4ce158 61
shintamainjp 0:ec264f4ce158 62 #endif