Projet AutoStart pour projecteur LG

Dependencies:   mbed

Committer:
nnguyen
Date:
Mon Jul 03 16:17:40 2017 +0000
Revision:
0:f09b7c760de7
AutoStart

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nnguyen 0:f09b7c760de7 1 /**
nnguyen 0:f09b7c760de7 2 * IR transmitter (Version 0.0.4)
nnguyen 0:f09b7c760de7 3 *
nnguyen 0:f09b7c760de7 4 * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
nnguyen 0:f09b7c760de7 5 * http://shinta.main.jp/
nnguyen 0:f09b7c760de7 6 */
nnguyen 0:f09b7c760de7 7
nnguyen 0:f09b7c760de7 8 #ifndef _TRANSMITTER_IR_H_
nnguyen 0:f09b7c760de7 9 #define _TRANSMITTER_IR_H_
nnguyen 0:f09b7c760de7 10
nnguyen 0:f09b7c760de7 11 #include <mbed.h>
nnguyen 0:f09b7c760de7 12
nnguyen 0:f09b7c760de7 13 #include "RemoteIR.h"
nnguyen 0:f09b7c760de7 14
nnguyen 0:f09b7c760de7 15 /**
nnguyen 0:f09b7c760de7 16 * IR transmitter class.
nnguyen 0:f09b7c760de7 17 */
nnguyen 0:f09b7c760de7 18 class TransmitterIR {
nnguyen 0:f09b7c760de7 19 public:
nnguyen 0:f09b7c760de7 20
nnguyen 0:f09b7c760de7 21 /**
nnguyen 0:f09b7c760de7 22 * Constructor.
nnguyen 0:f09b7c760de7 23 *
nnguyen 0:f09b7c760de7 24 * @param txpin Pin for transmit IR signal.
nnguyen 0:f09b7c760de7 25 */
nnguyen 0:f09b7c760de7 26 explicit TransmitterIR(PinName txpin);
nnguyen 0:f09b7c760de7 27
nnguyen 0:f09b7c760de7 28 /**
nnguyen 0:f09b7c760de7 29 * Destructor.
nnguyen 0:f09b7c760de7 30 */
nnguyen 0:f09b7c760de7 31 ~TransmitterIR();
nnguyen 0:f09b7c760de7 32
nnguyen 0:f09b7c760de7 33 typedef enum {
nnguyen 0:f09b7c760de7 34 Idle,
nnguyen 0:f09b7c760de7 35 Leader,
nnguyen 0:f09b7c760de7 36 Data,
nnguyen 0:f09b7c760de7 37 Trailer
nnguyen 0:f09b7c760de7 38 } State;
nnguyen 0:f09b7c760de7 39
nnguyen 0:f09b7c760de7 40 /**
nnguyen 0:f09b7c760de7 41 * Get state.
nnguyen 0:f09b7c760de7 42 *
nnguyen 0:f09b7c760de7 43 * @return Current state.
nnguyen 0:f09b7c760de7 44 */
nnguyen 0:f09b7c760de7 45 State getState(void);
nnguyen 0:f09b7c760de7 46
nnguyen 0:f09b7c760de7 47 /**
nnguyen 0:f09b7c760de7 48 * Set data.
nnguyen 0:f09b7c760de7 49 *
nnguyen 0:f09b7c760de7 50 * @param format Format.
nnguyen 0:f09b7c760de7 51 * @param buf Buffer of a data.
nnguyen 0:f09b7c760de7 52 * @param bitlength Bit length of the data.
nnguyen 0:f09b7c760de7 53 *
nnguyen 0:f09b7c760de7 54 * @return Data bit length.
nnguyen 0:f09b7c760de7 55 */
nnguyen 0:f09b7c760de7 56 int setData(RemoteIR::Format format, uint8_t *buf, int bitlength);
nnguyen 0:f09b7c760de7 57
nnguyen 0:f09b7c760de7 58 private:
nnguyen 0:f09b7c760de7 59
nnguyen 0:f09b7c760de7 60 typedef struct {
nnguyen 0:f09b7c760de7 61 State state;
nnguyen 0:f09b7c760de7 62 int bitcount;
nnguyen 0:f09b7c760de7 63 int leader;
nnguyen 0:f09b7c760de7 64 int data;
nnguyen 0:f09b7c760de7 65 int trailer;
nnguyen 0:f09b7c760de7 66 } work_t;
nnguyen 0:f09b7c760de7 67
nnguyen 0:f09b7c760de7 68 typedef struct {
nnguyen 0:f09b7c760de7 69 RemoteIR::Format format;
nnguyen 0:f09b7c760de7 70 int bitlength;
nnguyen 0:f09b7c760de7 71 uint8_t buffer[64];
nnguyen 0:f09b7c760de7 72 } data_t;
nnguyen 0:f09b7c760de7 73
nnguyen 0:f09b7c760de7 74 PwmOut tx;
nnguyen 0:f09b7c760de7 75 Ticker ticker;
nnguyen 0:f09b7c760de7 76 data_t data;
nnguyen 0:f09b7c760de7 77 work_t work;
nnguyen 0:f09b7c760de7 78
nnguyen 0:f09b7c760de7 79 void tick();
nnguyen 0:f09b7c760de7 80
nnguyen 0:f09b7c760de7 81 };
nnguyen 0:f09b7c760de7 82
nnguyen 0:f09b7c760de7 83 #endif