Abfrage Eingänge in C

Gast #2544467
Hallo
Habe ein Atmega 32 und möchte ein Eingang am PortA Pin 2 abfragen.
An PortA Pin0 ist eine Led angeschlossen.
Beim tasten des Taster soll die Led leuchten. Wäre erfreut über ein 
Lösungsvorschlag
Hier mein Programm


int main(void)
{

DDRA = 0x01 << PA0;  //PortA Pin 0 wird als Ausgang gesetzt
DDRA &= ~(1 << DDA2);  //PortA Pin 2 wird als Einagng gesetzt
PORTA |= (1<<PA2) ;

    while(1)
    {
  ;

  if (PA2 == 1)
  {
PORTA |= 1<<PA0;
  }

  else
  {
PORTA &= ~(1<<PA0);
  }
Gast
werner1 schrieb:
> Beim tasten des Taster soll die Led leuchten. Wäre erfreut über ein
> Lösungsvorschlag

Probier einfach, dein Programmablauf im Simulator laufen zu lassen. Dann 
kannst du bei jedem Schritt verfolgen, was in den Registern passiert.
werner1 schrieb:
>   if (PA2 == 1)

"PA2" ist nur eine vordefinierte Konstante und enthält den Wert 2. Der 
Vergleich ist also immer false. Was Du erreichen willst, bekommst Du z. 
B. so:
1
if (!(PINA&(1<<PA2)))

Dabei bin ich davon ausgegangen, dass der erwähnte Taster beim Betätigen 
den Eingang gegen GND zieht, also dass am Portpin beim Betätigen "0" 
gelesen wird, und dass die LED ebenfalls zwischen Portpin und GND liegt 
(und hoffentlich mit einem passenden Vorwiderstand).

Übrigens fehlen noch zwei schließende geschweifte Klammern am Ende.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.