www.mikrocontroller.net

Forum: Compiler & IDEs Problem mit "case-Struktur"


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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;
  }
}
}

Autor: Elektrikser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antworten.
Gruß Thomas

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.