Hallo, Ich baue gerade ein Projekt vom Sciptkiller nach und habe den quelltext erhalten nun frage ich mich wie ich die taster mit den Dioden verbinden soll. Habe was im Quelltext gefunden. Vielleicht hat jemand von euch ne ahnung wie ich das schalten soll. http://scriptkiller.de/avr_mikrocontroller_netzteil.php
1 | /* button-press handling */
|
2 | void uiButtonCode(unsigned char code) { |
3 | |
4 | switch(code) { |
5 | |
6 | /* U++ */
|
7 | case 0x01: { |
8 | ui_last_modified=LAST_U; |
9 | ui_mode=UI_MODE_UI; |
10 | if(ui_voltage!=0xFF) |
11 | uiSetVoltage(++ui_voltage); |
12 | }; break; |
13 | |
14 | /* U-- */
|
15 | case 0x02: { |
16 | ui_last_modified=LAST_U; |
17 | ui_mode=UI_MODE_UI; |
18 | if(ui_voltage >= 1) |
19 | uiSetVoltage(--ui_voltage); |
20 | }; break; |
21 | |
22 | /* I++ */
|
23 | case 0x03: { |
24 | ui_last_modified=LAST_I; |
25 | ui_mode=UI_MODE_UI; |
26 | if(ui_current != 0xFF) |
27 | uiSetCurrent(++ui_current); |
28 | }; break; |
29 | |
30 | /* I-- */
|
31 | case 0x04: { |
32 | ui_last_modified=LAST_I; |
33 | ui_mode=UI_MODE_UI; |
34 | if(ui_current >= 1) |
35 | uiSetCurrent(--ui_current); |
36 | }; break; |
37 | |
38 | /* UP */
|
39 | case 0x05: { |
40 | #define SOLDER_STEP 10
|
41 | #define U_FAST_STEP 16
|
42 | #define I_FAST_STEP 32
|
43 | |
44 | /* SOLDER+=STEP */
|
45 | if(ui_mode == UI_MODE_SOLDER) { |
46 | if(ui_solder + SOLDER_STEP > 100) { |
47 | uiSetSolder(100); |
48 | }
|
49 | else { |
50 | uiSetSolder(ui_solder+SOLDER_STEP); |
51 | }
|
52 | }
|
53 | /* U+=STEP / I+=STEP */
|
54 | else if(ui_mode == UI_MODE_UI) { |
55 | if(ui_last_modified == LAST_U) { |
56 | if(ui_voltage + U_FAST_STEP > 0xFF) { |
57 | uiSetVoltage(0xFF); |
58 | }
|
59 | else { |
60 | uiSetVoltage(ui_voltage+U_FAST_STEP); |
61 | }
|
62 | }
|
63 | else if(ui_last_modified == LAST_I) { |
64 | if(ui_current + I_FAST_STEP > 0xFF) { |
65 | uiSetCurrent(0xFF); |
66 | }
|
67 | else { |
68 | uiSetCurrent(ui_current+I_FAST_STEP); |
69 | }
|
70 | }
|
71 | }
|
72 | |
73 | }; break; |
74 | |
75 | /* DOWN */
|
76 | case 0x06: { |
77 | /* SOLDER-=STEP */
|
78 | if(ui_mode == UI_MODE_SOLDER) { |
79 | if(ui_solder - SOLDER_STEP < 0) { |
80 | uiSetSolder(0); |
81 | }
|
82 | else { |
83 | uiSetSolder(ui_solder-SOLDER_STEP); |
84 | }
|
85 | }
|
86 | /* U-=STEP / I-=STEP */
|
87 | else if(ui_mode == UI_MODE_UI) { |
88 | |
89 | if(ui_last_modified == LAST_U) { |
90 | if(ui_voltage - U_FAST_STEP < 0) { |
91 | uiSetVoltage(0x00); |
92 | }
|
93 | else { |
94 | uiSetVoltage(ui_voltage-U_FAST_STEP); |
95 | }
|
96 | }
|
97 | else if(ui_last_modified == LAST_I) { |
98 | if(ui_current - I_FAST_STEP < 0) { |
99 | uiSetCurrent(0x00); |
100 | }
|
101 | else { |
102 | uiSetCurrent(ui_current-I_FAST_STEP); |
103 | }
|
104 | }
|
105 | |
106 | |
107 | }
|
108 | |
109 | }; break; |
110 | |
111 | /* MODE */
|
112 | case 0x07: { |
113 | uiSwitchMode(); |
114 | }; break; |
115 | |
116 | /* STANDBY */
|
117 | case 0x08: { |
118 | uiToggleStandby(); |
119 | }; break; |
120 | |
121 | }
|
122 | |
123 | }
|