-         

Ergebnis 1 bis 2 von 2

Thema: Atmel Tiny- Taster Problem

  1. #1

    Atmel Tiny- Taster Problem

    Anzeige

    hallo zusammen,
    hab n kleines problem, ich möchte einen taster auf einem board einlesen (funk AVR von pollin) und damit eine led leuchten lassen.

    bestückt ist es mit einem atmel tiny 2313, und ich programmiere es aus dem AVR studio (win avr)

    das programm sieht in etwa so aus:

    #define TAST PORTB1

    #define LED2 PIND5
    #define LED1 PIND6

    #define LED2NR 5
    #define LED1NR 6


    int main (void)
    {
    DDRD = 0xFF; // D als ausg.


    PORTD = (0<<PD6) | (0<<PD5) | (1<<PD4) | (1<<PD3) | (1<<PD2) | (1<<PD1) | (1<<PD0);

    DDRB = 0x00; // alle Pins von Port B als Eingang
    PORTB = 0xFF; // alle bits des ports auf log 0

    while(1)
    {
    PORTD |= (true << LED1NR);
    PORTD |= (TAST << LED2NR);
    }

    return 0;
    }

    jetzt müsste doch led nummer eins dauerhaft leuchten und led nummer 2 bei gedrücktem taster oder?

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die Schreibweise (true << LED1NR); ist nicht sehr glücklich. True ist nicht so einheitlich definiert, außer das true nicht 0 ist. Besser (1 << LED1NR) schreiben.

    Bei der taste funktioniert es dann vermutlich nicht:
    PORTB1 wird kaum als (PORTB & 1) definiert sein.

    Selbst dann kann die Taste die LED nur anschalten. Einmal an geht sie nicht mehr aus. Wegen der Pullup-widerstände ist die Logik dann vermutlich auch noch invertiert - ein gedrückte Taste wird eine 0, sonst 1.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •