Mike EI2I
/
LCDRGBBacklight
Gestion de la couleur du rétroéclairage de l'écran LCD avec un potentiomètre
main.cpp@0:b4bc4c1ec1e8, 2015-03-25 (annotated)
- Committer:
- Kemix
- Date:
- Wed Mar 25 08:17:50 2015 +0000
- Revision:
- 0:b4bc4c1ec1e8
Debut du code
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Kemix | 0:b4bc4c1ec1e8 | 1 | #include "mbed.h" |
Kemix | 0:b4bc4c1ec1e8 | 2 | |
Kemix | 0:b4bc4c1ec1e8 | 3 | I2C link(I2C_SDA, I2C_SCL); |
Kemix | 0:b4bc4c1ec1e8 | 4 | const int addr = 0x7C; |
Kemix | 0:b4bc4c1ec1e8 | 5 | |
Kemix | 0:b4bc4c1ec1e8 | 6 | void Init(void){ |
Kemix | 0:b4bc4c1ec1e8 | 7 | char cmd[2]; |
Kemix | 0:b4bc4c1ec1e8 | 8 | cmd[0] = 0x80; |
Kemix | 0:b4bc4c1ec1e8 | 9 | cmd[1] = 0x3C; |
Kemix | 0:b4bc4c1ec1e8 | 10 | link.write(addr,cmd,2); |
Kemix | 0:b4bc4c1ec1e8 | 11 | wait_us(100); |
Kemix | 0:b4bc4c1ec1e8 | 12 | |
Kemix | 0:b4bc4c1ec1e8 | 13 | cmd[1] = 0x0F; |
Kemix | 0:b4bc4c1ec1e8 | 14 | link.write(addr,cmd,2); |
Kemix | 0:b4bc4c1ec1e8 | 15 | wait_us(100); |
Kemix | 0:b4bc4c1ec1e8 | 16 | |
Kemix | 0:b4bc4c1ec1e8 | 17 | cmd[1] = 0x01; |
Kemix | 0:b4bc4c1ec1e8 | 18 | link.write(addr,cmd,2); |
Kemix | 0:b4bc4c1ec1e8 | 19 | wait_ms(2); |
Kemix | 0:b4bc4c1ec1e8 | 20 | |
Kemix | 0:b4bc4c1ec1e8 | 21 | cmd[1] = 0x06; |
Kemix | 0:b4bc4c1ec1e8 | 22 | link.write(addr,cmd,2); |
Kemix | 0:b4bc4c1ec1e8 | 23 | wait_us(100); |
Kemix | 0:b4bc4c1ec1e8 | 24 | } |
Kemix | 0:b4bc4c1ec1e8 | 25 | |
Kemix | 0:b4bc4c1ec1e8 | 26 | void initRGB(void){ |
Kemix | 0:b4bc4c1ec1e8 | 27 | char cmd[2]; |
Kemix | 0:b4bc4c1ec1e8 | 28 | |
Kemix | 0:b4bc4c1ec1e8 | 29 | cmd[0] = 0x00; |
Kemix | 0:b4bc4c1ec1e8 | 30 | cmd[1] = 0x00; |
Kemix | 0:b4bc4c1ec1e8 | 31 | link.write(0xC4,cmd,2); |
Kemix | 0:b4bc4c1ec1e8 | 32 | wait_us(100); |
Kemix | 0:b4bc4c1ec1e8 | 33 | |
Kemix | 0:b4bc4c1ec1e8 | 34 | cmd[0] = 0x01; |
Kemix | 0:b4bc4c1ec1e8 | 35 | cmd[1] = 0x00; |
Kemix | 0:b4bc4c1ec1e8 | 36 | link.write(0xC4,cmd,2); |
Kemix | 0:b4bc4c1ec1e8 | 37 | wait_us(100); |
Kemix | 0:b4bc4c1ec1e8 | 38 | |
Kemix | 0:b4bc4c1ec1e8 | 39 | cmd[0] = 0x08; |
Kemix | 0:b4bc4c1ec1e8 | 40 | cmd[1] = 0xAA; |
Kemix | 0:b4bc4c1ec1e8 | 41 | link.write(0xC4,cmd,2); |
Kemix | 0:b4bc4c1ec1e8 | 42 | wait_us(100); |
Kemix | 0:b4bc4c1ec1e8 | 43 | } |
Kemix | 0:b4bc4c1ec1e8 | 44 | |
Kemix | 0:b4bc4c1ec1e8 | 45 | void setup(char R,char G, char B){ |
Kemix | 0:b4bc4c1ec1e8 | 46 | char cmd[2]; |
Kemix | 0:b4bc4c1ec1e8 | 47 | |
Kemix | 0:b4bc4c1ec1e8 | 48 | cmd[0] = 0x02; |
Kemix | 0:b4bc4c1ec1e8 | 49 | cmd[1] = B; |
Kemix | 0:b4bc4c1ec1e8 | 50 | link.write(0xC4,cmd,2); |
Kemix | 0:b4bc4c1ec1e8 | 51 | wait_us(100); |
Kemix | 0:b4bc4c1ec1e8 | 52 | |
Kemix | 0:b4bc4c1ec1e8 | 53 | cmd[0] = 0x03; |
Kemix | 0:b4bc4c1ec1e8 | 54 | cmd[1] = G; |
Kemix | 0:b4bc4c1ec1e8 | 55 | link.write(0xC4,cmd,2); |
Kemix | 0:b4bc4c1ec1e8 | 56 | wait_us(100); |
Kemix | 0:b4bc4c1ec1e8 | 57 | |
Kemix | 0:b4bc4c1ec1e8 | 58 | cmd[0] = 0x04; |
Kemix | 0:b4bc4c1ec1e8 | 59 | cmd[1] = R; |
Kemix | 0:b4bc4c1ec1e8 | 60 | link.write(0xC4,cmd,2); |
Kemix | 0:b4bc4c1ec1e8 | 61 | wait_us(100); |
Kemix | 0:b4bc4c1ec1e8 | 62 | } |
Kemix | 0:b4bc4c1ec1e8 | 63 | |
Kemix | 0:b4bc4c1ec1e8 | 64 | |
Kemix | 0:b4bc4c1ec1e8 | 65 | int main(void){ |
Kemix | 0:b4bc4c1ec1e8 | 66 | AnalogIn Pot(A0); |
Kemix | 0:b4bc4c1ec1e8 | 67 | |
Kemix | 0:b4bc4c1ec1e8 | 68 | char data[12]; |
Kemix | 0:b4bc4c1ec1e8 | 69 | char R,G,B; |
Kemix | 0:b4bc4c1ec1e8 | 70 | |
Kemix | 0:b4bc4c1ec1e8 | 71 | Init(); |
Kemix | 0:b4bc4c1ec1e8 | 72 | initRGB(); |
Kemix | 0:b4bc4c1ec1e8 | 73 | |
Kemix | 0:b4bc4c1ec1e8 | 74 | data[0] = 0x40; |
Kemix | 0:b4bc4c1ec1e8 | 75 | data[1] = 'H'; |
Kemix | 0:b4bc4c1ec1e8 | 76 | data[2] = 'e'; |
Kemix | 0:b4bc4c1ec1e8 | 77 | data[3] = 'l'; |
Kemix | 0:b4bc4c1ec1e8 | 78 | data[4] = 'l'; |
Kemix | 0:b4bc4c1ec1e8 | 79 | data[5] = 'o'; |
Kemix | 0:b4bc4c1ec1e8 | 80 | data[6] = ' '; |
Kemix | 0:b4bc4c1ec1e8 | 81 | data[7] = 'W'; |
Kemix | 0:b4bc4c1ec1e8 | 82 | data[8] = 'o'; |
Kemix | 0:b4bc4c1ec1e8 | 83 | data[9] = 'r'; |
Kemix | 0:b4bc4c1ec1e8 | 84 | data[10] = 'l'; |
Kemix | 0:b4bc4c1ec1e8 | 85 | data[11] = 'd'; |
Kemix | 0:b4bc4c1ec1e8 | 86 | |
Kemix | 0:b4bc4c1ec1e8 | 87 | link.write(addr,data,12); |
Kemix | 0:b4bc4c1ec1e8 | 88 | |
Kemix | 0:b4bc4c1ec1e8 | 89 | while(1){ |
Kemix | 0:b4bc4c1ec1e8 | 90 | if( (Pot>0.2f) & (Pot<=0.4f)){ |
Kemix | 0:b4bc4c1ec1e8 | 91 | R = 0xFF; |
Kemix | 0:b4bc4c1ec1e8 | 92 | G = 0x00; |
Kemix | 0:b4bc4c1ec1e8 | 93 | B = 0x00; |
Kemix | 0:b4bc4c1ec1e8 | 94 | }else if( (Pot>0.4f) & (Pot<=0.6f) ){ |
Kemix | 0:b4bc4c1ec1e8 | 95 | R = 0x00; |
Kemix | 0:b4bc4c1ec1e8 | 96 | G = 0xFF; |
Kemix | 0:b4bc4c1ec1e8 | 97 | B= 0x00; |
Kemix | 0:b4bc4c1ec1e8 | 98 | }else if( (Pot>0.6f) ){ |
Kemix | 0:b4bc4c1ec1e8 | 99 | R = 0x00; |
Kemix | 0:b4bc4c1ec1e8 | 100 | G = 0x00; |
Kemix | 0:b4bc4c1ec1e8 | 101 | B = 0xFF; |
Kemix | 0:b4bc4c1ec1e8 | 102 | }else{ |
Kemix | 0:b4bc4c1ec1e8 | 103 | R = 0x00; |
Kemix | 0:b4bc4c1ec1e8 | 104 | G = 0x00; |
Kemix | 0:b4bc4c1ec1e8 | 105 | B = 0x00; |
Kemix | 0:b4bc4c1ec1e8 | 106 | } |
Kemix | 0:b4bc4c1ec1e8 | 107 | setup(R,G,B); |
Kemix | 0:b4bc4c1ec1e8 | 108 | } |
Kemix | 0:b4bc4c1ec1e8 | 109 | } |