Problem mit "case-Struktur"

Gast #178181
Hallo!
Habe ein Problem mit den Case-Anweisungen. Und zwar läuft das unten
stehende Programm nicht. Aber ich weiss nicht warum. Der case 0x00 wird
anscheinend abgehandelt(da die LEDS richtig leuchten). Aber wenn ich z.B
Taster0 (PINA0) betätige tut sich nichts.
Kann mir vielleicht jemand helfen?
µC = AtMega32
Compiler = AVR-GCC

MFG
Thomas

int main (void)
{
DDRA = 0x00;
DDRC = 0xFF;

for(;;)
{
inp(PINA) = Temp2;
switch (Temp2)
  {
  case 0x00:
  PORTC = 0xF0;
  break;

  case 0x01:
  PORTC = 0x01;
  break;

  case 0x02:
  PORTC = 0x04;
  break;
  }
}
}
Gast #178182
inp(PINA) = Temp2;

Du versuchst hier Temp2 an inp(PinA) zu übergeben.
Mach es mal anders herum. Übergib die Eingänge an Temp2.

Temp2 = inp(PINA);

Gruß Elektrikser
Gast #178183
Eins vorweg: inp solltest du nicht mehr verwenden, du kannst PINA wie
eine normale Variable behandeln.


Außerdem macht:
inp(PINA) = Temp2;
ziemlich wenig Sinn. Du weist hier PINA den Wert von Temp2 zu (Temp2
ist aus mir unerfindlichen global oder gar nicht deklariert).
Du willst wahrscheinlich:
Temp2 = PINA;
switch(Temp2) { /* cases... */ }

Noch besser wäre aber das hier:
switch(PINA) { /* cases... */ }

Wie gesagt, PINA ist wie eine normale Variable zu behandeln.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 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.