Tastercode ATMega8, AVR

Gast #3761030
Lesenswert?

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
Gast #3761048
Lesenswert?

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
#3761077
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren