Ich bin grade komplett planlos. Mein ADUC7026 springt aus der Schleife aund nimmt wieder den Wert (6500) von vor der Schleife an. Hat jemand ne Ahnung?
1 | #include<ioaduc7026.h> |
2 | |
3 | void waittime(int); |
4 | long value; |
5 | |
6 | int main(void) |
7 | {
|
8 | |
9 | |
10 | |
11 | GP3CON = 0x12222211; // PWM auf P3.0 and P3.1 ermöglichen |
12 | |
13 | PWMCON = 0x0001; // PWM generell ermöglichen |
14 | PWMDAT0 = 20000; // Periodendauer |
15 | PWMDAT1 = 0x00; // Totzeit 0 (muss gesetzt werden) |
16 | PWMDAT2 = 0x00; // Pulsbreite |
17 | PWMCFG = 0x00; // Chop auf 0 |
18 | PWMEN = 0x000; // 0 bis 50% auf port P3.0 ausgeben |
19 | PWMCH0 = 6500; // 100% high |
20 | while (1) |
21 | {
|
22 | |
23 | |
24 | ADCCP = 0; // select ADC0# |
25 | ADCCON = 0x10A3; // turn on ADC, and start conversation: |
26 | while (!ADCSTA); // wait for the end |
27 | value = ADCDAT ; |
28 | value = value / 50000; |
29 | PWMCH0 = value; |
30 | }
|
Lukas