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
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.
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
Sorry, selektive Wahrnehmung. Was hängt denn am Port B dran (alle Pins bitte)? Und wie verhält es sich.
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?
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.
Warum funktiniert es im Simulator: Weil undefinierte Pins dort nicht wirklich undefiniert sind.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.