Ich habe hier ein RGB Fader Programm für den Atmega8 gefunden. Ich möchte nun per Taster den Fader ein und ausschalten können. Ich probiere das schon seit Tagen. Geht das auch ohne ISR, Timern, SEI usw. ? Wie gesagt.. ich bin Anfänger... und suche eine einfache Lösung. Es gibt zwar viele Programmbeispiele füe den Atmega8, allerdings mit so vielen Funktionen (RC5, eeprom, HSV) usw. das ich da nicht mehr durchblicke. Grüße Chris
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Lesen_aus_Registern annahme du hast einen schalter an PB.4 mach halt so schleife
1 | while(1) |
2 | {
|
3 | if(PINB&(1<<4)) |
4 | {
|
5 | for(i=0;i<255;i++) |
6 | {
|
7 | B_PWM=i; |
8 | R_PWM=(254-i); |
9 | my_delay(); |
10 | }
|
11 | for(i=0;i<255;i++) |
12 | {
|
13 | G_PWM=i; |
14 | B_PWM=(254-i); |
15 | my_delay(); |
16 | }
|
17 | for(i=0;i<255;i++) |
18 | {
|
19 | R_PWM=i; |
20 | G_PWM=(254-i); |
21 | my_delay(); |
22 | }
|
23 | }
|
24 | }
|
Ich bekomme es nicht hin. Wenn ich NICHTS drücke ist der Fader an und die LED aus. Wenn ich den Taster gedrückt halte, geht der Fader bis zur blauen LED, bleibt dort mit der Farbe stehen, und die LED geht an. ??? seltsam sowas Wer kann mir weiter helfen? Sicher das man da keinen Interrupt braucht? Was bedeutet eigentlich die 4 in if(PINB&(1<<4)) In den Link habe ich was von einem Interrupt gelesen? Grüße Chris
Chris Nixda schrieb: ... > Was bedeutet eigentlich die 4 in > if(PINB&(1<<4)) ... Das da oben fragt ab, ob an PortB das 4. Bit TRUE ist. Dies wird dadurch realisiert, daß eine 1 4-mal nach links geschoben wird. Notwendig ist dies deshalb, weil an PortB Pin4 der Schalter vermutlich angeschlossen sein sollte... Viele Grüße, Wizz
Wenn ich richtig verstanden habe ist if(PINB&(1<<4)) und if(PINB&(1<<PB4)) das gleiche? Grüße Chris
Chris Nixda schrieb: > Wenn ich richtig verstanden habe ist > > > if(PINB&(1<<4)) > > und > > if(PINB&(1<<PB4)) > > das gleiche? Hallo, ja, denn Du inkludierst das Header-File io.h ("#include <avr/io.h>"). Das wiederum definiert sowas hier: #define PB4 4 Grüße, Wizz
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.