Hallo, habe mit jetzt mal Gedanken gemacht zu der PWM steuerung mittels PT 100 auf dem ATMega 32 und dieses Programm geschrieben bin mir aber nicht Sicher, kann es imm moment aber auch nicht Testen also kann das so gehn. Oder was muss ich ändern?? Wenn müsste der Fehler im auslesen des ADCH Register sein aber wenn es so net geht wie dann??? Wäre Dankbar über hilfe. noch mal das programm aus dem Anhang:
1 | *
|
2 | * PWM_Programm.c |
3 | *
|
4 | * Created: 15.01.2014 19:55:46 |
5 | * Author: Steve Uffelmann |
6 | */
|
7 | |
8 | |
9 | #include <avr/io.h> |
10 | #include <avr/interrupt.h> |
11 | #define F_CPU 8000000UL
|
12 | #include <util/delay.h> |
13 | |
14 | |
15 | int main(void) |
16 | {
|
17 | // Ein/Ausgänge konfigurieren
|
18 | DDRD |= (1<<PD7); //Ausgänge |
19 | |
20 | |
21 | //PWM konfigurieren
|
22 | TCCR2 |= (1<<WGM21); // |
23 | TCCR2 |= (1<<WGM20); // Timer Einstellung Fast PWM, 8-bit |
24 | TCCR2 |= (1<<CS22); // Vorteiler 256 |
25 | TCCR2 |= (1<<COM21); // Nicht invertierender PWM-Modus |
26 | OCR2 = 0; // Startwert Ausgang |
27 | // ADC konfigurieren
|
28 | ADMUX |= (1<<ADLAR); // Datenrichtung |
29 | ADCSRA |= (1<<ADEN); // ADC Einschalten |
30 | ADCSRA |= (1<<ADSC); // Starten Freimessen |
31 | ADCSRA |= (1<<ADATE); // Freimessen erlauben |
32 | ADCSRA |= (1<<ADPS2); // |
33 | ADCSRA |= (1<<ADPS1); // Takt Vorteiler 64 |
34 | ADCSRA |= (1<<ADPS0); // |
35 | |
36 | while(1) |
37 | {
|
38 | //Taster Frequenz höher
|
39 | |
40 | if (ADCH) |
41 | {
|
42 | if (ADCH > 11001101) |
43 | if (ADCH < 11010011) |
44 | OCR2 = 64; |
45 | |
46 | _delay_ms(20); // 20ms Pause |
47 | }
|
48 | |
49 | if (ADCH) |
50 | {
|
51 | if (ADCH > 11010011) |
52 | if (ADCH < 11011000) |
53 | OCR2 = 128; |
54 | |
55 | _delay_ms(20); // 20ms Pause |
56 | }
|
57 | |
58 | if (ADCH) |
59 | {
|
60 | if (ADCH > 11011000) |
61 | if (ADCH < 11011101) |
62 | OCR2 = 191; |
63 | |
64 | _delay_ms(20); // 20ms Pause |
65 | }
|
66 | |
67 | if (ADCH) |
68 | {
|
69 | if (ADCH > 11011101) |
70 | OCR2 = 255; |
71 | |
72 | _delay_ms(20); // 20ms Pause |
73 | }
|
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | }
|
81 | }
|