Michael R. schrieb:
> Schreibst du deinen Bootloader denn auch an die Richtige Stelle im
> Flash? Wenn du den auf 0x00 schreibst und dann die Interrupts
> verstellst, klappt das selbstverständlich nicht... ;-)
Ehm ok, jetzt wirds doof. Ich dachte man setzt das mit den Fuse so, dass
der ISP Programmer den Bootloader direkt an die korrekte Stelle schreibt
... Kann auch nix anderes finden...
> Davon ab, gibt es meine ich ein spezielles Makro um die Interrupts
> umzustellen, damit das auch wirklich den den 4 Takten passiert.
Gefunden habe ich das hier:
1 | uint8_t regCE = MCUCR & ~((1 << IVCE) | (1 << IVSEL));
|
2 | uint8_t regSEL = MCUCR & ~((1 << IVCE) | (1 << IVSEL));
|
3 | regCE |= (1 << IVCE);
|
4 | regSEL |= (1 << IVSEL);
|
5 | MCUCR = regCE;
|
6 | MCUCR = regSEL;
|
Klappt aber leider auch nicht.
Und hier auf mikrocontroller.net im "AVR Bootloader in C - Eine ..."
wird folgendes verwendet:
1 | /* Interrupt Vektoren verbiegen */
|
2 | temp = MCUCR;
|
3 | MCUCR = temp | (1<<IVCE);
|
4 | MCUCR = temp | (1<<IVSEL);
|
Was leider auch nicht funktioniert...