Hallo, ich habe ein Problem mit dem Bootloader von Peter Fleury ( http://www.jump.to/fleury ) in Verbindung mit dem ATmega2561. Angepasst hab ich ihn im Makefile und in der stk500boot.c Der Bootloader lässt sich problemlos über die ISP-Schnittstelle flashen. Wenn ich jetzt ein Programm über den Bootloader aufspiele läuft dieses auch, allerdings nur bis zum ausschalten. Wenn ich wieder Strom auf die Schaltung gebe funktioniert das Programm nicht mehr, der Bootloader ist noch drauf. Die Fuses sind wie folgt gesetzt (gerade eben frisch per ISP ausgelesen): lfuse: 0xFF hfuse: 0xDC efuse: 0xFF Wo rann könnte das liegen oder hat vielleicht jemand das selbe Problem? Vielen Dank für die Hilfe und Gruß André
Was hat es damit auf sich und hast du das in deiner Beschaltung berücksichtigt?
1 | .....
|
2 | /*
|
3 | * Pin "PROG_PIN" on port "PROG_PORT" has to be pulled high
|
4 | * (active low) to start the bootloader
|
5 | * uncomment #define REMOVE_PROG_PIN_PULLUP if using an external pullup
|
6 | */
|
7 | #define PROG_PORT PORTD
|
8 | #define PROG_DDR DDRD
|
9 | #define PROG_IN PIND
|
10 | #define PROG_PIN PIND2
|
11 | |
12 | ....
|
13 | |
14 | int main(void) |
15 | {
|
16 | ....
|
17 | |
18 | /*
|
19 | * Branch to bootloader or application code ?
|
20 | */
|
21 | if(PROG_IN & (1<<PROG_PIN)) |
22 | {
|
23 | ....
|
ein Pin, den man extern nicht beschaltet, ist nicht automatisch Low.
Hallo, Karl Heinz Buchegger schrieb: > Was hat es damit auf sich und hast du das in deiner Beschaltung > berücksichtigt? Ja, das funktioniert, er geht in den Bootloader wenn der Taster beim Start gedrückt wird und tut das nicht, wenn der Taster nicht gedrückt wird. Ach und was ich vergessen hatte zu erwähnen, ich habe den Code für den Taster und die LED auf Active High geändert, Standard war Active Low. Der angepasste Teil funktioniert allerdings, daran liegt das Problem meiner Meinung nach nicht. Gruß André
André M. schrieb: > Ach und was ich vergessen hatte zu erwähnen, ich habe den Code für den > Taster und die LED auf Active High geändert, Standard war Active Low. D.h. du hast Code gepostet, den du so gar nicht geflasht hast. Daaankee. Und tschüss. (Trotzdem: Ein Pin an dem nichts angeschlossen ist, zb weil ein Taster offen ist, hat ohne Pullup oder Pulldown keinen definierten Pegel. Sicher ist es auch nur Zufall, dass in dem von dir geposteten Code der interne Pullup abgeschaltet ist)
Hi Karl Heinz, erstmal danke für deine Hilfe, aber: Karl Heinz Buchegger schrieb: > André M. schrieb: >> Ach und was ich vergessen hatte zu erwähnen, ich habe den Code für den >> Taster und die LED auf Active High geändert, Standard war Active Low. > > D.h. du hast Code gepostet, den du so gar nicht geflasht hast. > > Daaankee. Und tschüss. NEIN! Das stimmt so nicht! Der Code den ich angehängt hab, ist der den ich geflasht hab. Ich hatte nur vergessen das zu erwähnen. > (Trotzdem: Ein Pin an dem nichts angeschlossen ist, zb weil ein Taster > offen ist, hat ohne Pullup oder Pulldown keinen definierten Pegel. > Sicher ist es auch nur Zufall, dass in dem von dir geposteten Code der > interne Pullup abgeschaltet ist) An dem Pin ist natürlich ein externer Pulldown und wie gesagt, der Teil des Programms tut auch. Das eigentliche Problem ist, das der uC das Programm nach Aus- und Einschalten nicht mehr startet/nicht mehr findet/nicht mehr ausführt. (oder was auch immer da passiert) Gruß André
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.