Hallo, ich bin ein richtiger Anfänger mit Atmel Studio. Ich schreibe zurzeit ein kleines Programm, wo sich LED's auf Knopfdruck einschalten sollen. Die Lampen gehen Problemlos ein und aus, nur weiß ich den Code für den Taster nicht. Dieser liegt auf PB0. Könnt ihr mir einen einfachen Code zeigen, wie der Taster ein Licht anmacht, wenn man ihn drückt? Es wäre vorteilhaft wenn dieser schon auf den PORT PB0 ausgelegt wäre. Vielen Dank im Vorraus
Das hat mir leider kein Stück weiter geholfen :( if (!(PINB & (1<<PB0))) { PORTB |= (1<<PB0); _delay_ms(2000); PORTC &= ~ (1<<PC2); } else { turnLedOn(BIT_6,1); turnLedOn(BIT_7,1); } habe es jetzt so, wenn ich den Taster drücke, gehen die LED's für 2 sekunden aus
Olaf H. schrieb: > Das hat mir leider kein Stück weiter geholfen :( Das von dir gepostete ist ja auch kein vollständiged Programm
1 | #include <avr/io.h> |
2 | |
3 | int main() |
4 | {
|
5 | DDRC |= ( 1 << PC2 ); // an PC2 hängt die Lampe. Daher den Pin |
6 | // auf Ausgang stellen
|
7 | |
8 | PORTB |= ( 1 << PB0 ); // An PB0 hängt ein Taster, der nach GND schaltet |
9 | // daher an diesem Pin den Pullup einschalten
|
10 | |
11 | while( 1 ) { |
12 | |
13 | if( !( PINB & (1 << PB0) ) ) |
14 | PORTC |= ( 1 << PC2 ); |
15 | else
|
16 | PORTC &= ~( 1 << PC2 ); |
17 | }
|
18 | }
|
das ist einfach nur eine Zusammensetzung aus den Elementen der Bitoperationen und dem Wissen, was man im DDR Register machen muss um einen Pin auf Ausggang zu kriegen, bzw. Taster an den µC angeschlossen werden AVR-GCC-Tutorial Ob deine Lampe an geht, wenn du den Taster drückst, oder aus, kann ich nicht sagen, weil ich nicht weiß, ob dazu der Ausgangspin auf 1 gehen muss oder auf 0. Aber im Falle des Falles die Logik umdrehen, wirst du ja wohl noch alleine hinkriegen.
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.