mikrocontroller.net

Forum: Compiler & IDEs Keine Funktion des Programms auf Kontroller.


Autor: Bruno Pierucki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Testprogramm für das myAVR Board mit dem ATmega8
geschrieben. Wenn ich das Programm mit Hilfe von AVRStudio debugge,
dann funktioniert das Programm auch, laut Simulation. Nachdem ich das
Programm allerdings mit YAAP auf den Kontroller übertragen habe,
funktioniert gar nichts mehr.

int main()
{
  DDRB = 0x00;
  DDRC = 0xFF;
  for(;;)
  {
    switch(PINB)
    {
      case 0x01:  PORTC = 0x01;
          break;
      case 0x02: PORTC = 0x02;
                 break;
      default:   PORTC = 0x00;
    }

  }
  return 0;
}

Bin für jede Hilfe dankbar.

BP

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Controller ist kein PC. Beim PC endet das Programm mit "return",
aber was soll der Controller denn dann machen? Üblicherweise hat man in
main() eine Endlosschleife.

Autor: Bruno Pierucki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ist ja die Endlosschleife mit for(;;)
Das return hab ich nur testweise darein geschrieben gehabt. Hatte bei
der Simulation keine Probleme. Und ohne return am Ende hatte das
Programm auch nicht funktioniert.

BP

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Programm ist soweit i.O.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, selektive Wahrnehmung.

Was hängt denn am Port B dran (alle Pins bitte)? Und wie verhält es
sich.

Autor: Bruno Pierucki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe an Port B fünf Taster angeschlossen. Alle haben
Pulldownwiderstände. Also die internen sind abgeschaltet. die
restlichen sind frei. Die sind quasi undefiniert. Aber das sollte doch
eigentlich egal sein oder?
Wie soll sich was verhalten? Das Programm im AVRStudio oder auf dem
Kontroller oder?

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na also, dachte ich es mir doch.

Was steht denn im Programm:
   wenn alle 8 Pins auf 0 sind ausser PB0 => 01 ausgeben
   wenn alls 8 Pins auf 0 sind ausser PB1 => 02 ausgeben
   in allen anderen Fällen => 00 ausgeben
Mit 3 undefinieren Eingängen stehen die Chancen schlecht, dass die alle
3 0 sind.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum funktiniert es im Simulator: Weil undefinierte Pins dort nicht
wirklich undefiniert sind.

Autor: Fritz Ganter (fritzg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach

switch(PINB & 0x1f)

dann sollte es tun.

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.