Help me photohunt
Dependencies: mbed
main.cpp@0:ff615d611c5c, 2015-11-28 (annotated)
- Committer:
- Peeraya
- Date:
- Sat Nov 28 14:53:02 2015 +0000
- Revision:
- 0:ff615d611c5c
Display
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Peeraya | 0:ff615d611c5c | 1 | #ifndef __TTSDISPLAY_H__ |
Peeraya | 0:ff615d611c5c | 2 | #define __TTSDISPLAY_H__ |
Peeraya | 0:ff615d611c5c | 3 | |
Peeraya | 0:ff615d611c5c | 4 | #ifndef uchar |
Peeraya | 0:ff615d611c5c | 5 | #define uchar char |
Peeraya | 0:ff615d611c5c | 6 | #endif |
Peeraya | 0:ff615d611c5c | 7 | |
Peeraya | 0:ff615d611c5c | 8 | // definitions for TM1636 |
Peeraya | 0:ff615d611c5c | 9 | #define ADDR_AUTO 0x40 |
Peeraya | 0:ff615d611c5c | 10 | #define ADDR_FIXED 0x44 |
Peeraya | 0:ff615d611c5c | 11 | #define STARTADDR 0xc0 |
Peeraya | 0:ff615d611c5c | 12 | |
Peeraya | 0:ff615d611c5c | 13 | // definitions for the clock point of the digit tube |
Peeraya | 0:ff615d611c5c | 14 | #define POINT_ON 1 |
Peeraya | 0:ff615d611c5c | 15 | #define POINT_OFF 0 |
Peeraya | 0:ff615d611c5c | 16 | |
Peeraya | 0:ff615d611c5c | 17 | // definitions for brightness |
Peeraya | 0:ff615d611c5c | 18 | #define BRIGHT_DARKEST 0 |
Peeraya | 0:ff615d611c5c | 19 | #define BRIGHT_TYPICAL 2 |
Peeraya | 0:ff615d611c5c | 20 | #define BRIGHTEST 7 |
Peeraya | 0:ff615d611c5c | 21 | |
Peeraya | 0:ff615d611c5c | 22 | //Special characters index of tube table |
Peeraya | 0:ff615d611c5c | 23 | #define INDEX_NEGATIVE_SIGH 16 |
Peeraya | 0:ff615d611c5c | 24 | #define INDEX_BLANK 17 |
Peeraya | 0:ff615d611c5c | 25 | |
Peeraya | 0:ff615d611c5c | 26 | |
Peeraya | 0:ff615d611c5c | 27 | class TTSDisplay{ |
Peeraya | 0:ff615d611c5c | 28 | |
Peeraya | 0:ff615d611c5c | 29 | |
Peeraya | 0:ff615d611c5c | 30 | private: |
Peeraya | 0:ff615d611c5c | 31 | |
Peeraya | 0:ff615d611c5c | 32 | uchar Cmd_SetData; |
Peeraya | 0:ff615d611c5c | 33 | uchar Cmd_SetAddr; |
Peeraya | 0:ff615d611c5c | 34 | uchar Cmd_Dispdisplay; |
Peeraya | 0:ff615d611c5c | 35 | uchar _PointFlag; //_PointFlag=1:the clock point on |
Peeraya | 0:ff615d611c5c | 36 | uchar _brightness; |
Peeraya | 0:ff615d611c5c | 37 | uchar Clkpin; |
Peeraya | 0:ff615d611c5c | 38 | uchar Datapin; |
Peeraya | 0:ff615d611c5c | 39 | uchar dtaDisplay[4]; |
Peeraya | 0:ff615d611c5c | 40 | |
Peeraya | 0:ff615d611c5c | 41 | private: |
Peeraya | 0:ff615d611c5c | 42 | |
Peeraya | 0:ff615d611c5c | 43 | void writeByte(uchar wr_data); //write 8bit data to tm1637 |
Peeraya | 0:ff615d611c5c | 44 | void start(void); //send start bits |
Peeraya | 0:ff615d611c5c | 45 | void stop(void); //send stop bits |
Peeraya | 0:ff615d611c5c | 46 | void set(uchar = BRIGHT_TYPICAL, uchar = 0x40, uchar = 0xc0); //To take effect the next time it displays. |
Peeraya | 0:ff615d611c5c | 47 | uchar coding(uchar DispData); |
Peeraya | 0:ff615d611c5c | 48 | |
Peeraya | 0:ff615d611c5c | 49 | |
Peeraya | 0:ff615d611c5c | 50 | //********************************************************************************************************** |
Peeraya | 0:ff615d611c5c | 51 | //*************************** USER INTERFACE *************************************************************** |
Peeraya | 0:ff615d611c5c | 52 | //********************************************************************************************************** |
Peeraya | 0:ff615d611c5c | 53 | public: |
Peeraya | 0:ff615d611c5c | 54 | |
Peeraya | 0:ff615d611c5c | 55 | TTSDisplay(); |
Peeraya | 0:ff615d611c5c | 56 | |
Peeraya | 0:ff615d611c5c | 57 | void display(uchar loca, uchar dta); // display a single num(0-9) |
Peeraya | 0:ff615d611c5c | 58 | void num(int dta); // display a num (0-9999) |
Peeraya | 0:ff615d611c5c | 59 | void time(uchar hour, uchar min); // display time, such as: 11:26 |
Peeraya | 0:ff615d611c5c | 60 | void clear(); // clear display |
Peeraya | 0:ff615d611c5c | 61 | |
Peeraya | 0:ff615d611c5c | 62 | void pointOn(); // display : |
Peeraya | 0:ff615d611c5c | 63 | void pointOff(); // undisplay : |
Peeraya | 0:ff615d611c5c | 64 | |
Peeraya | 0:ff615d611c5c | 65 | }; |
Peeraya | 0:ff615d611c5c | 66 | |
Peeraya | 0:ff615d611c5c | 67 | #endif |
Peeraya | 0:ff615d611c5c | 68 | |
Peeraya | 0:ff615d611c5c | 69 | //#include <Arduino.h> |
Peeraya | 0:ff615d611c5c | 70 | #include<mbed.h> |
Peeraya | 0:ff615d611c5c | 71 | //#include <Streaming.h> |
Peeraya | 0:ff615d611c5c | 72 | |
Peeraya | 0:ff615d611c5c | 73 | //#include "TTSDisplay.h" |
Peeraya | 0:ff615d611c5c | 74 | |
Peeraya | 0:ff615d611c5c | 75 | //0~9,A,b,C,d,E,F,"-"," " |
Peeraya | 0:ff615d611c5c | 76 | const uchar TubeTab[] = |
Peeraya | 0:ff615d611c5c | 77 | { |
Peeraya | 0:ff615d611c5c | 78 | 0x3f,0x06,0x5b,0x4f, |
Peeraya | 0:ff615d611c5c | 79 | 0x66,0x6d,0x7d,0x07, |
Peeraya | 0:ff615d611c5c | 80 | 0x7f,0x6f,0x77,0x7c, |
Peeraya | 0:ff615d611c5c | 81 | 0x39,0x5e,0x79,0x71, |
Peeraya | 0:ff615d611c5c | 82 | 0x40,0x00 |
Peeraya | 0:ff615d611c5c | 83 | }; |
Peeraya | 0:ff615d611c5c | 84 | |
Peeraya | 0:ff615d611c5c | 85 | //#define PINCLK 7 // pin of clk |
Peeraya | 0:ff615d611c5c | 86 | //#define PINDTA 8 // pin of data |
Peeraya | 0:ff615d611c5c | 87 | |
Peeraya | 0:ff615d611c5c | 88 | TTSDisplay::TTSDisplay() |
Peeraya | 0:ff615d611c5c | 89 | { |
Peeraya | 0:ff615d611c5c | 90 | DigitalOut Clkpin(D7); |
Peeraya | 0:ff615d611c5c | 91 | DigitalOut Datapin(D8); |
Peeraya | 0:ff615d611c5c | 92 | /*Clkpin = PINCLK; |
Peeraya | 0:ff615d611c5c | 93 | Datapin = PINDTA; |
Peeraya | 0:ff615d611c5c | 94 | |
Peeraya | 0:ff615d611c5c | 95 | pinMode(Clkpin,OUTPUT); |
Peeraya | 0:ff615d611c5c | 96 | pinMode(Datapin,OUTPUT);*/ |
Peeraya | 0:ff615d611c5c | 97 | |
Peeraya | 0:ff615d611c5c | 98 | for(int i=0; i<4; i++) |
Peeraya | 0:ff615d611c5c | 99 | { |
Peeraya | 0:ff615d611c5c | 100 | dtaDisplay[i] = 0x00; |
Peeraya | 0:ff615d611c5c | 101 | } |
Peeraya | 0:ff615d611c5c | 102 | |
Peeraya | 0:ff615d611c5c | 103 | set(); |
Peeraya | 0:ff615d611c5c | 104 | //clear(); |
Peeraya | 0:ff615d611c5c | 105 | } |
Peeraya | 0:ff615d611c5c | 106 | |
Peeraya | 0:ff615d611c5c | 107 | /********************************************************************************************************* |
Peeraya | 0:ff615d611c5c | 108 | * Function Name: display |
Peeraya | 0:ff615d611c5c | 109 | * Description: display a num in certain location |
Peeraya | 0:ff615d611c5c | 110 | * Parameters: loca - location, 3-2-1-0 |
Peeraya | 0:ff615d611c5c | 111 | * num - number to display |
Peeraya | 0:ff615d611c5c | 112 | * Return: None |
Peeraya | 0:ff615d611c5c | 113 | *********************************************************************************************************/ |
Peeraya | 0:ff615d611c5c | 114 | void TTSDisplay::display(uchar loca, uchar dta) |
Peeraya | 0:ff615d611c5c | 115 | { |
Peeraya | 0:ff615d611c5c | 116 | |
Peeraya | 0:ff615d611c5c | 117 | //if(loca > 3 || loca < 0) return; |
Peeraya | 0:ff615d611c5c | 118 | |
Peeraya | 0:ff615d611c5c | 119 | if(loca > 3) return; |
Peeraya | 0:ff615d611c5c | 120 | dtaDisplay[loca] = dta; |
Peeraya | 0:ff615d611c5c | 121 | |
Peeraya | 0:ff615d611c5c | 122 | loca = 3-loca; |
Peeraya | 0:ff615d611c5c | 123 | |
Peeraya | 0:ff615d611c5c | 124 | uchar segData = coding(dta); |
Peeraya | 0:ff615d611c5c | 125 | |
Peeraya | 0:ff615d611c5c | 126 | start(); //start signal sent to TM1637 from MCU |
Peeraya | 0:ff615d611c5c | 127 | writeByte(ADDR_FIXED); |
Peeraya | 0:ff615d611c5c | 128 | stop(); |
Peeraya | 0:ff615d611c5c | 129 | |
Peeraya | 0:ff615d611c5c | 130 | start(); |
Peeraya | 0:ff615d611c5c | 131 | writeByte(loca|0xc0); |
Peeraya | 0:ff615d611c5c | 132 | writeByte(segData); |
Peeraya | 0:ff615d611c5c | 133 | stop(); |
Peeraya | 0:ff615d611c5c | 134 | |
Peeraya | 0:ff615d611c5c | 135 | start(); |
Peeraya | 0:ff615d611c5c | 136 | writeByte(Cmd_Dispdisplay); |
Peeraya | 0:ff615d611c5c | 137 | stop(); |
Peeraya | 0:ff615d611c5c | 138 | |
Peeraya | 0:ff615d611c5c | 139 | } |
Peeraya | 0:ff615d611c5c | 140 | |
Peeraya | 0:ff615d611c5c | 141 | /********************************************************************************************************* |
Peeraya | 0:ff615d611c5c | 142 | * Function Name: num |
Peeraya | 0:ff615d611c5c | 143 | * Description: display a num that 0 - 9999 |
Peeraya | 0:ff615d611c5c | 144 | * Parameters: num - number to display |
Peeraya | 0:ff615d611c5c | 145 | * Return: None |
Peeraya | 0:ff615d611c5c | 146 | *********************************************************************************************************/ |
Peeraya | 0:ff615d611c5c | 147 | void TTSDisplay::num(int dta) |
Peeraya | 0:ff615d611c5c | 148 | { |
Peeraya | 0:ff615d611c5c | 149 | if(dta < 0 || dta > 9999) return; // bad data |
Peeraya | 0:ff615d611c5c | 150 | |
Peeraya | 0:ff615d611c5c | 151 | //clear(); |
Peeraya | 0:ff615d611c5c | 152 | |
Peeraya | 0:ff615d611c5c | 153 | pointOff(); |
Peeraya | 0:ff615d611c5c | 154 | if(dta < 10) |
Peeraya | 0:ff615d611c5c | 155 | { |
Peeraya | 0:ff615d611c5c | 156 | display(0, dta); |
Peeraya | 0:ff615d611c5c | 157 | display(1, 0x7f); |
Peeraya | 0:ff615d611c5c | 158 | display(2, 0x7f); |
Peeraya | 0:ff615d611c5c | 159 | display(3, 0x7f); |
Peeraya | 0:ff615d611c5c | 160 | } |
Peeraya | 0:ff615d611c5c | 161 | else if(dta < 100) |
Peeraya | 0:ff615d611c5c | 162 | { |
Peeraya | 0:ff615d611c5c | 163 | display(1, dta/10); |
Peeraya | 0:ff615d611c5c | 164 | display(0, dta%10); |
Peeraya | 0:ff615d611c5c | 165 | display(2, 0x7f); |
Peeraya | 0:ff615d611c5c | 166 | display(3, 0x7f); |
Peeraya | 0:ff615d611c5c | 167 | } |
Peeraya | 0:ff615d611c5c | 168 | else if(dta < 1000) |
Peeraya | 0:ff615d611c5c | 169 | { |
Peeraya | 0:ff615d611c5c | 170 | display(2, dta/100); |
Peeraya | 0:ff615d611c5c | 171 | display(1, (dta/10)%10); |
Peeraya | 0:ff615d611c5c | 172 | display(0, dta%10); |
Peeraya | 0:ff615d611c5c | 173 | display(3, 0x7f); |
Peeraya | 0:ff615d611c5c | 174 | } |
Peeraya | 0:ff615d611c5c | 175 | else |
Peeraya | 0:ff615d611c5c | 176 | { |
Peeraya | 0:ff615d611c5c | 177 | display(3, dta/1000); |
Peeraya | 0:ff615d611c5c | 178 | display(2, (dta/100)%10); |
Peeraya | 0:ff615d611c5c | 179 | display(1, (dta/10)%10); |
Peeraya | 0:ff615d611c5c | 180 | display(0, dta%10); |
Peeraya | 0:ff615d611c5c | 181 | } |
Peeraya | 0:ff615d611c5c | 182 | } |
Peeraya | 0:ff615d611c5c | 183 | |
Peeraya | 0:ff615d611c5c | 184 | /********************************************************************************************************* |
Peeraya | 0:ff615d611c5c | 185 | * Function Name: time |
Peeraya | 0:ff615d611c5c | 186 | * Description: display time |
Peeraya | 0:ff615d611c5c | 187 | * Parameters: hour - hour |
Peeraya | 0:ff615d611c5c | 188 | * min - minutes |
Peeraya | 0:ff615d611c5c | 189 | * Return: None |
Peeraya | 0:ff615d611c5c | 190 | *********************************************************************************************************/ |
Peeraya | 0:ff615d611c5c | 191 | void TTSDisplay::time(uchar hour, uchar min) |
Peeraya | 0:ff615d611c5c | 192 | { |
Peeraya | 0:ff615d611c5c | 193 | // if(hour > 24 || hour < 0) return; // bad data |
Peeraya | 0:ff615d611c5c | 194 | if(hour > 24) return; // bad data |
Peeraya | 0:ff615d611c5c | 195 | // if(min > 60 || min < 0) return; // bad data |
Peeraya | 0:ff615d611c5c | 196 | if(min > 60) return; // bad data |
Peeraya | 0:ff615d611c5c | 197 | |
Peeraya | 0:ff615d611c5c | 198 | |
Peeraya | 0:ff615d611c5c | 199 | display(3, hour/10); |
Peeraya | 0:ff615d611c5c | 200 | display(2, hour%10); |
Peeraya | 0:ff615d611c5c | 201 | display(1, min/10); |
Peeraya | 0:ff615d611c5c | 202 | display(0, min%10); |
Peeraya | 0:ff615d611c5c | 203 | } |
Peeraya | 0:ff615d611c5c | 204 | |
Peeraya | 0:ff615d611c5c | 205 | /********************************************************************************************************* |
Peeraya | 0:ff615d611c5c | 206 | * Function Name: clear |
Peeraya | 0:ff615d611c5c | 207 | * Description: clear all |
Peeraya | 0:ff615d611c5c | 208 | * Parameters: None |
Peeraya | 0:ff615d611c5c | 209 | * Return: None |
Peeraya | 0:ff615d611c5c | 210 | *********************************************************************************************************/ |
Peeraya | 0:ff615d611c5c | 211 | void TTSDisplay::clear() |
Peeraya | 0:ff615d611c5c | 212 | { |
Peeraya | 0:ff615d611c5c | 213 | display(0x00,0x7f); |
Peeraya | 0:ff615d611c5c | 214 | display(0x01,0x7f); |
Peeraya | 0:ff615d611c5c | 215 | display(0x02,0x7f); |
Peeraya | 0:ff615d611c5c | 216 | display(0x03,0x7f); |
Peeraya | 0:ff615d611c5c | 217 | } |
Peeraya | 0:ff615d611c5c | 218 | |
Peeraya | 0:ff615d611c5c | 219 | /********************************************************************************************************* |
Peeraya | 0:ff615d611c5c | 220 | * Function Name: writeByte |
Peeraya | 0:ff615d611c5c | 221 | * Description: write a byte to tm1636 |
Peeraya | 0:ff615d611c5c | 222 | * Parameters: wr_data: data to write |
Peeraya | 0:ff615d611c5c | 223 | * Return: None |
Peeraya | 0:ff615d611c5c | 224 | *********************************************************************************************************/ |
Peeraya | 0:ff615d611c5c | 225 | void TTSDisplay::writeByte(uchar wr_data) |
Peeraya | 0:ff615d611c5c | 226 | { |
Peeraya | 0:ff615d611c5c | 227 | uchar i,count1; |
Peeraya | 0:ff615d611c5c | 228 | for(i=0;i<8;i++) // sent 8bit data |
Peeraya | 0:ff615d611c5c | 229 | { |
Peeraya | 0:ff615d611c5c | 230 | Clkpin=0; |
Peeraya | 0:ff615d611c5c | 231 | //digitalWrite(Clkpin,LOW); |
Peeraya | 0:ff615d611c5c | 232 | //if(wr_data & 0x01)digitalWrite(Datapin,HIGH); // LSB first |
Peeraya | 0:ff615d611c5c | 233 | if(wr_data & 0x01)Datapin=1; // LSB first |
Peeraya | 0:ff615d611c5c | 234 | //else digitalWrite(Datapin,LOW); |
Peeraya | 0:ff615d611c5c | 235 | else Datapin=0; |
Peeraya | 0:ff615d611c5c | 236 | wr_data >>= 1; |
Peeraya | 0:ff615d611c5c | 237 | Clkpin=1; |
Peeraya | 0:ff615d611c5c | 238 | //digitalWrite(Clkpin,HIGH); |
Peeraya | 0:ff615d611c5c | 239 | } |
Peeraya | 0:ff615d611c5c | 240 | |
Peeraya | 0:ff615d611c5c | 241 | Clkpin=0; |
Peeraya | 0:ff615d611c5c | 242 | Datapin=1; |
Peeraya | 0:ff615d611c5c | 243 | Clkpin=1; |
Peeraya | 0:ff615d611c5c | 244 | DigitalIn Datapin(D8); |
Peeraya | 0:ff615d611c5c | 245 | |
Peeraya | 0:ff615d611c5c | 246 | /*digitalWrite(Clkpin,LOW); // wait for the ACK |
Peeraya | 0:ff615d611c5c | 247 | digitalWrite(Datapin,HIGH); |
Peeraya | 0:ff615d611c5c | 248 | digitalWrite(Clkpin,HIGH); |
Peeraya | 0:ff615d611c5c | 249 | pinMode(Datapin,INPUT);*/ |
Peeraya | 0:ff615d611c5c | 250 | |
Peeraya | 0:ff615d611c5c | 251 | //while(digitalRead(Datapin)) |
Peeraya | 0:ff615d611c5c | 252 | while(Datapin) |
Peeraya | 0:ff615d611c5c | 253 | { |
Peeraya | 0:ff615d611c5c | 254 | count1 += 1; |
Peeraya | 0:ff615d611c5c | 255 | if(200 == count1) |
Peeraya | 0:ff615d611c5c | 256 | { |
Peeraya | 0:ff615d611c5c | 257 | //pinMode(Datapin,OUTPUT); |
Peeraya | 0:ff615d611c5c | 258 | DigitalOut Datapin(D8); |
Peeraya | 0:ff615d611c5c | 259 | //digitalWrite(Datapin,LOW); |
Peeraya | 0:ff615d611c5c | 260 | Datapin=0; |
Peeraya | 0:ff615d611c5c | 261 | count1 =0; |
Peeraya | 0:ff615d611c5c | 262 | } |
Peeraya | 0:ff615d611c5c | 263 | //pinMode(Datapin,INPUT); |
Peeraya | 0:ff615d611c5c | 264 | DigitalIn Datapin(D8); |
Peeraya | 0:ff615d611c5c | 265 | } |
Peeraya | 0:ff615d611c5c | 266 | //pinMode(Datapin,OUTPUT); |
Peeraya | 0:ff615d611c5c | 267 | //DigitalOut Datapin(D8); |
Peeraya | 0:ff615d611c5c | 268 | |
Peeraya | 0:ff615d611c5c | 269 | } |
Peeraya | 0:ff615d611c5c | 270 | |
Peeraya | 0:ff615d611c5c | 271 | /********************************************************************************************************* |
Peeraya | 0:ff615d611c5c | 272 | * Function Name: start |
Peeraya | 0:ff615d611c5c | 273 | * Description: send start signal to TTSDisplay |
Peeraya | 0:ff615d611c5c | 274 | * Parameters: None |
Peeraya | 0:ff615d611c5c | 275 | * Return: None |
Peeraya | 0:ff615d611c5c | 276 | *********************************************************************************************************/ |
Peeraya | 0:ff615d611c5c | 277 | void TTSDisplay::start(void) |
Peeraya | 0:ff615d611c5c | 278 | { |
Peeraya | 0:ff615d611c5c | 279 | /*digitalWrite(Clkpin,HIGH); //send start signal to TM1637 |
Peeraya | 0:ff615d611c5c | 280 | digitalWrite(Datapin,HIGH); |
Peeraya | 0:ff615d611c5c | 281 | digitalWrite(Datapin,LOW); |
Peeraya | 0:ff615d611c5c | 282 | digitalWrite(Clkpin,LOW);*/ |
Peeraya | 0:ff615d611c5c | 283 | Clkpin=1; |
Peeraya | 0:ff615d611c5c | 284 | Datapin=1; |
Peeraya | 0:ff615d611c5c | 285 | Datapin=0; |
Peeraya | 0:ff615d611c5c | 286 | Clkpin=0; |
Peeraya | 0:ff615d611c5c | 287 | } |
Peeraya | 0:ff615d611c5c | 288 | |
Peeraya | 0:ff615d611c5c | 289 | /********************************************************************************************************* |
Peeraya | 0:ff615d611c5c | 290 | * Function Name: stop |
Peeraya | 0:ff615d611c5c | 291 | * Description: send end signal |
Peeraya | 0:ff615d611c5c | 292 | * Parameters: None |
Peeraya | 0:ff615d611c5c | 293 | * Return: None |
Peeraya | 0:ff615d611c5c | 294 | *********************************************************************************************************/ |
Peeraya | 0:ff615d611c5c | 295 | void TTSDisplay::stop(void) |
Peeraya | 0:ff615d611c5c | 296 | {/* |
Peeraya | 0:ff615d611c5c | 297 | digitalWrite(Clkpin,LOW); |
Peeraya | 0:ff615d611c5c | 298 | digitalWrite(Datapin,LOW); |
Peeraya | 0:ff615d611c5c | 299 | digitalWrite(Clkpin,HIGH); |
Peeraya | 0:ff615d611c5c | 300 | digitalWrite(Datapin,HIGH);*/ |
Peeraya | 0:ff615d611c5c | 301 | Clkpin=0; |
Peeraya | 0:ff615d611c5c | 302 | Datapin=0; |
Peeraya | 0:ff615d611c5c | 303 | Clkpin=1; |
Peeraya | 0:ff615d611c5c | 304 | Datapin=1; |
Peeraya | 0:ff615d611c5c | 305 | } |
Peeraya | 0:ff615d611c5c | 306 | |
Peeraya | 0:ff615d611c5c | 307 | /********************************************************************************************************* |
Peeraya | 0:ff615d611c5c | 308 | * Function Name: set |
Peeraya | 0:ff615d611c5c | 309 | * Description: init |
Peeraya | 0:ff615d611c5c | 310 | * Parameters: brightness - brightness |
Peeraya | 0:ff615d611c5c | 311 | * SetDta - data |
Peeraya | 0:ff615d611c5c | 312 | * SetAddr - address |
Peeraya | 0:ff615d611c5c | 313 | * Return: None |
Peeraya | 0:ff615d611c5c | 314 | *********************************************************************************************************/ |
Peeraya | 0:ff615d611c5c | 315 | void TTSDisplay::set(uchar brightness,uchar SetData,uchar SetAddr) |
Peeraya | 0:ff615d611c5c | 316 | { |
Peeraya | 0:ff615d611c5c | 317 | _brightness = brightness; |
Peeraya | 0:ff615d611c5c | 318 | Cmd_SetData = SetData; |
Peeraya | 0:ff615d611c5c | 319 | Cmd_SetAddr = SetAddr; |
Peeraya | 0:ff615d611c5c | 320 | Cmd_Dispdisplay = 0x88 + brightness; |
Peeraya | 0:ff615d611c5c | 321 | } |
Peeraya | 0:ff615d611c5c | 322 | |
Peeraya | 0:ff615d611c5c | 323 | /********************************************************************************************************* |
Peeraya | 0:ff615d611c5c | 324 | * Function Name: pointOn |
Peeraya | 0:ff615d611c5c | 325 | * Description: display : |
Peeraya | 0:ff615d611c5c | 326 | * Parameters: None |
Peeraya | 0:ff615d611c5c | 327 | * Return: None |
Peeraya | 0:ff615d611c5c | 328 | *********************************************************************************************************/ |
Peeraya | 0:ff615d611c5c | 329 | void TTSDisplay::pointOn() |
Peeraya | 0:ff615d611c5c | 330 | { |
Peeraya | 0:ff615d611c5c | 331 | _PointFlag = 1; |
Peeraya | 0:ff615d611c5c | 332 | |
Peeraya | 0:ff615d611c5c | 333 | for(int i=0; i<4; i++) |
Peeraya | 0:ff615d611c5c | 334 | { |
Peeraya | 0:ff615d611c5c | 335 | display(i, dtaDisplay[i]); |
Peeraya | 0:ff615d611c5c | 336 | } |
Peeraya | 0:ff615d611c5c | 337 | } |
Peeraya | 0:ff615d611c5c | 338 | |
Peeraya | 0:ff615d611c5c | 339 | /********************************************************************************************************* |
Peeraya | 0:ff615d611c5c | 340 | * Function Name: pointOff |
Peeraya | 0:ff615d611c5c | 341 | * Description: no : |
Peeraya | 0:ff615d611c5c | 342 | * Parameters: None |
Peeraya | 0:ff615d611c5c | 343 | * Return: None |
Peeraya | 0:ff615d611c5c | 344 | *********************************************************************************************************/ |
Peeraya | 0:ff615d611c5c | 345 | void TTSDisplay::pointOff() |
Peeraya | 0:ff615d611c5c | 346 | { |
Peeraya | 0:ff615d611c5c | 347 | _PointFlag = 0; |
Peeraya | 0:ff615d611c5c | 348 | |
Peeraya | 0:ff615d611c5c | 349 | for(int i=0; i<4; i++) |
Peeraya | 0:ff615d611c5c | 350 | { |
Peeraya | 0:ff615d611c5c | 351 | display(i, dtaDisplay[i]); |
Peeraya | 0:ff615d611c5c | 352 | } |
Peeraya | 0:ff615d611c5c | 353 | } |
Peeraya | 0:ff615d611c5c | 354 | |
Peeraya | 0:ff615d611c5c | 355 | /********************************************************************************************************* |
Peeraya | 0:ff615d611c5c | 356 | * Function Name: coding |
Peeraya | 0:ff615d611c5c | 357 | * Description: coding |
Peeraya | 0:ff615d611c5c | 358 | * Parameters: None |
Peeraya | 0:ff615d611c5c | 359 | * Return: None |
Peeraya | 0:ff615d611c5c | 360 | *********************************************************************************************************/ |
Peeraya | 0:ff615d611c5c | 361 | uchar TTSDisplay::coding(uchar DispData) |
Peeraya | 0:ff615d611c5c | 362 | { |
Peeraya | 0:ff615d611c5c | 363 | |
Peeraya | 0:ff615d611c5c | 364 | uchar PointData = _PointFlag ? 0x80 : 0x00; |
Peeraya | 0:ff615d611c5c | 365 | DispData = (0x7f == DispData) ? PointData : (TubeTab[DispData]+PointData); |
Peeraya | 0:ff615d611c5c | 366 | return DispData; |
Peeraya | 0:ff615d611c5c | 367 | } |
Peeraya | 0:ff615d611c5c | 368 | |
Peeraya | 0:ff615d611c5c | 369 | |
Peeraya | 0:ff615d611c5c | 370 | /********************************************************************************************************* |
Peeraya | 0:ff615d611c5c | 371 | END FILE |
Peeraya | 0:ff615d611c5c | 372 | *********************************************************************************************************/ |
Peeraya | 0:ff615d611c5c | 373 | |
Peeraya | 0:ff615d611c5c | 374 | |
Peeraya | 0:ff615d611c5c | 375 | //#include <Wire.h> |
Peeraya | 0:ff615d611c5c | 376 | //#include <TTSDisplay.h> |
Peeraya | 0:ff615d611c5c | 377 | |
Peeraya | 0:ff615d611c5c | 378 | |
Peeraya | 0:ff615d611c5c | 379 | //TTSDisplay disp; // instantiate an object |
Peeraya | 0:ff615d611c5c | 380 | |
Peeraya | 0:ff615d611c5c | 381 | |
Peeraya | 0:ff615d611c5c | 382 | /*void setup() |
Peeraya | 0:ff615d611c5c | 383 | { |
Peeraya | 0:ff615d611c5c | 384 | // nothing to setup |
Peeraya | 0:ff615d611c5c | 385 | }*/ |
Peeraya | 0:ff615d611c5c | 386 | |
Peeraya | 0:ff615d611c5c | 387 | int main() |
Peeraya | 0:ff615d611c5c | 388 | { |
Peeraya | 0:ff615d611c5c | 389 | TTSDisplay disp; |
Peeraya | 0:ff615d611c5c | 390 | while(1) |
Peeraya | 0:ff615d611c5c | 391 | { |
Peeraya | 0:ff615d611c5c | 392 | disp.time(11,26); // display time, 11:26 |
Peeraya | 0:ff615d611c5c | 393 | disp.pointOn(); // display : |
Peeraya | 0:ff615d611c5c | 394 | wait_ms(1000); // wait 1s |
Peeraya | 0:ff615d611c5c | 395 | } |
Peeraya | 0:ff615d611c5c | 396 | } |
Peeraya | 0:ff615d611c5c | 397 | |
Peeraya | 0:ff615d611c5c | 398 | /********************************************************************************************************* |
Peeraya | 0:ff615d611c5c | 399 | END FILE |
Peeraya | 0:ff615d611c5c | 400 | *********************************************************************************************************/ |