hallo leute, als neuling in sachen atmel habe ich folgendes problem: mein proggi (geschrieben und erfolgreich getestet in AVR Studio 4) will nicht auf meinem butterfly laufen. das getestete proggi bekomme ich offensichtlich wunderbar auf den flash (seriell, so wie überall beschrieben). vorgehensweise: - projekt öffnen - butterfly (externe versorgung - definitiv absolut stabil) bootloaderreset (pins ganz unten rechts kurz kurzschliessen) - joystick drücken - AVRProg starten - hexfile wählen und flash starten (funzt wunderbar, testweise hab' ich das geflashte wieder erfolgreich runtergelesen) - exit aus AVRProg - joystick nach oben drücken - KEINE REAKTION des µC wäre euch dankbar für eure hilfe so long kalle
schade, ich dachte man kann helfen. nichts für ungut leute... so long kalle
Du hast eine Endlosschleife reingeflasht (while(1==1){};) und schaust von aussen drauf.Keine Reaktion,aber du kannst die Schleife prima zurücklesen... Wenn du Hilfe erwartest,gib uns bitte etwas mehr,raten mag hier keiner gerne. 1.WAS hast du reingeflasht? 2.WAS soll das Programm machen 3.WIE merkst du,das der Controller nicht arbeitet? Ein Fehlerhaftes Programm hängt sich unter Umständen einfach auf,ohne das man so einfach sagen kann,woran es liegt.Zumindest der Quellcode wär hilfreich.
Man koennte ... aber da flashen des "proggi" offensichtlich funktioniert hat und die genannten Schritte im Prinzip so korrekt sind, liegt es wohl an der selbstgeschriebenen Software und darueber fehlt saemtliche Information, anhand der man zumindest einen Hinweise geben koennte. Nichts fuer ungut, aber die Anzahl und Qualitaet von Antworten ist meistens davon abhaengig wie gut die Frage gestellt wurde. Vielleicht erstmal mit einem funktionierenden Beispielcode fuer den/das BF starten und ein wenig daran veraendern. Erfolgreiche Simulation ist noch kein sicherer Hinweis darauf, dass es in "echter" Hardware auch funktionieren wird. Einstellungen des Bootloaders beruecksichtigt?
wollte niemanden angreifen, also entschuldigung wenns so angekommen ist. ja, ne endlosschleife ist drin ( while(true) ). es werden 3Bytes auf den SPI ausgegeben (primärer zweck des proggis). zum debuggen muss der /SS eingang (PortB Pin 0) auf high gesetzt werden sonst fungiert das SPI als slave. ferner blinkt eine debug-LED...leider nur in der simulation. code ist angehängt - bei der gelegenheit wäre es schön, wenn mir jemand sagen könnte, wie man in C einzelne PortBits schreibt/ließt...ich vermisse assambler, aber wat mut, dat mut ; ) so long kalle
hallo martin, ähm, welche einstellung des bootloaders? mein butterfly zeigt nichts mehr an....also kein menü oder sonstwas....wie gesagt, bin halt noch neu auf der atmel-schiene... so long kalle
so, ich habe nun ein proggi zum laufen bekommen (einfach nur toggle des PB0). also scheint das problem in der init der SPI zu liegen...kann mir jemand sagen wo der fehler liegt? so long kalle
Ersetze mal: while(SPSR != 0x80); mit: while ( !( SPSR & _BV (SPIF) ) ); Deine while Schleife läuft ständig wenn auch nur ein anderes Bit im Register SPSR zusätzlich gesetzt ist, aus welchem Grund auch immer. Das: SPSR = (0<<SPIF); ist nicht zwingend Notwendig.
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.