1 | //++++++++++++ hardware-funktion 1: ++++++++++++++++++++
|
2 | void lcdset(lcdbyte){
|
3 | #if use_lcd4bit
|
4 | if gbi(lcdbyte,2){sbi(PORT(RS_Port),(RS_Pin));}else{cbi(PORT(RS_Port),(RS_Pin));}
|
5 | lcdbyte &= 0xf0;
|
6 | cbi(PORT(db4_Port),db4_Pin);
|
7 | PORT(db4_Port)|=(gbi(lcdbyte,4))<<db4_Pin;
|
8 | cbi(PORT(db5_Port),db5_Pin);
|
9 | PORT(db5_Port)|=(gbi(lcdbyte,5))<<db5_Pin;
|
10 | cbi(PORT(db6_Port),db6_Pin);
|
11 | PORT(db6_Port)|=(gbi(lcdbyte,6))<<db6_Pin;
|
12 | cbi(PORT(db7_Port),db7_Pin);
|
13 | PORT(db7_Port)|=(gbi(lcdbyte,7))<<db7_Pin;
|
14 | #endif
|
15 |
|
16 | #if use_mcp23s17_lcd
|
17 | //mcp23s17A_send(0x12,lcdbyte);
|
18 | hwSpiA(0x12,lcdbyte);
|
19 | #endif
|
20 |
|
21 | #if use_twilcd64x || use_twilcd64
|
22 | i2c_start_wait(64);
|
23 | i2c_write(lcdbyte); //
|
24 | i2c_stop();
|
25 | #endif
|
26 |
|
27 | #if use_twilcd72x
|
28 | set_mcp23017_outAB(lcdbyte , 0);
|
29 | #endif
|
30 |
|
31 | #if use_lcd74hc
|
32 | send74hc16bitlcd(lcdbyte & 12,lcdbyte & 0xf0);
|
33 | #endif
|
34 | }//------- void lcdset(lcdbyte) ------------------
|
35 |
|
36 |
|
37 | //++++++++++++ hardware-funktion 2: ++++++++++++++++++++
|
38 | void lcdsetE(lcdbyte){
|
39 | #if use_lcd4bit
|
40 | lcdset(lcdbyte);
|
41 | sbi(PORT(En_Port),(En_Pin));
|
42 | cbi(PORT(En_Port),(En_Pin));
|
43 | #endif
|
44 |
|
45 | #if use_twilcd64
|
46 | i2c_start_wait(varADR_SLAVE_LCD);
|
47 | i2c_write(lcdbyte); //
|
48 | i2c_write(lcdbyte+WERTpinE); //
|
49 | i2c_write(lcdbyte); //
|
50 | i2c_stop();
|
51 | #endif
|
52 |
|
53 | #if use_mcp23s17_lcd
|
54 | /*mcp23s17A_send(0x12,lcdbyte);
|
55 | mcp23s17A_send(0x12,lcdbyte+WERTpinE);
|
56 | mcp23s17A_send(0x12,lcdbyte);*/
|
57 | hwSpiA(0x12,lcdbyte);
|
58 | hwSpiA(0x12,lcdbyte+WERTpinE);
|
59 | hwSpiA(0x12,lcdbyte);
|
60 | #endif
|
61 |
|
62 | #if use_twilcd72
|
63 | //uint8_t mcp23017_72_A,mcp23017_72_B;
|
64 | //lcdbyte d7-d6-d5-d4-en-rs-//-//
|
65 | mcp23017_72_A= (mcp23017_72_A & 0b00000011) + (lcdbyte & 0b11111100);
|
66 | //mcp23017_72_B= (mcp23017_72_B & 0b00111111) + (((lcdbyte & 0b00000100)<<5));
|
67 | set_mcp23017_outAB(mcp23017_72_A, mcp23017_72_B);
|
68 | set_mcp23017_outAB((mcp23017_72_A + WERTpinE), mcp23017_72_B );
|
69 | set_mcp23017_outAB(mcp23017_72_A, mcp23017_72_B);
|
70 | #endif
|
71 |
|
72 | #if use_twilcd72x
|
73 | set_mcp23017_outAB(lcdbyte , 0);
|
74 | set_mcp23017_outAB(lcdbyte + 8, 0);
|
75 | set_mcp23017_outAB(lcdbyte , 0);
|
76 | #endif
|
77 |
|
78 | #if use_twilcd64x
|
79 | i2c_start_wait(varADR_SLAVE_LCD);
|
80 | i2c_write(lcdbyte); //
|
81 | i2c_write(lcdbyte+WERTpinE); //
|
82 | i2c_write(lcdbyte); //
|
83 | i2c_stop();
|
84 | #endif
|
85 |
|
86 | #if use_lcd74hc
|
87 | send74hc16bitlcd(lcdbyte &4,lcdbyte & 0xf0);
|
88 | send74hc16bitlcd((lcdbyte &4) + 8,lcdbyte & 0xf0);
|
89 | send74hc16bitlcd(lcdbyte &4,lcdbyte & 0xf0);
|
90 | #endif
|
91 | }//------------- lcdsetE(lcdbyte) -----------------------
|
92 | //------------ hardware-funktion 2: --------------------
|