Hey Leute ich hätte da ein Problem und zwar möchte ich mit einem ATmega32 RGBs über pwm ansteuern. Einen Kanal dimmen ist kein Problem. Nur wenn ich versuche den einen Kanal dunkler und gleichzeitig den anderen heller zu machen funktioniert das nicht. Sondern zuerst läuft der eine Kanal durch also hell => dunkel => hell und dann der andere. Wie kann ich die zwei zuständigen Timer synchronisieren?
:
Verschoben durch User
@ Stefan H. (stefan_h81) >hell und dann der andere. Wie kann ich die zwei zuständigen Timer >synchronisieren? Indem man einfach nur EINEN Timer nimmt.
der code schaut momentan so aus:
1 | #define F_CPU 16000000UL
|
2 | #include <asf.h> |
3 | #include <util/delay.h> |
4 | |
5 | int main (void) |
6 | {
|
7 | // Insert system clock initialization code here (sysclk_init()).
|
8 | |
9 | board_init(); |
10 | |
11 | DDRB |= (1<<PB3); |
12 | DDRD |= (1<<PD7); |
13 | |
14 | |
15 | TCCR0|=(1<<WGM00)|(1<<WGM01)|(1<<COM01)|(1<<CS00)|(1<<CS02); |
16 | TCCR2|=(1<<WGM20)|(1<<WGM21)|(1<<COM21)|(1<<CS20)|(1<<CS22); |
17 | int i=0; |
18 | OCR0=10; |
19 | OCR2=10; |
20 | while (1) |
21 | {
|
22 | for (;i<255;i++) |
23 | {
|
24 | _delay_ms(10); |
25 | OCR0 = i; |
26 | OCR2 = 255-i; |
27 | |
28 | }
|
29 | |
30 | for (;i>=5;i--) |
31 | {
|
32 | _delay_ms(10); |
33 | OCR0 = i; |
34 | OCR2 = 255-i; |
35 | |
36 | }
|
37 | |
38 | |
39 | }
|
40 | return 0; |
41 | }
|
@ Stefan H. (stefan_h81) >der code schaut momentan so aus: Schön. Dass dabei die beiden Prozesse des Fading nacheinander ausgeführt werden, sieht man ja. Wenn es PARALLEL sein soll, muss man es etwas abändern. Wie das geht steht im Artikel Multitasking.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.