Gast
#679867
Ich hab diese in einem Beispiel gefunden und kann damit nichts anfangen. Vermute was mit Pointer auf Pointer!? *((unsigned char *)0x3FE2) = 0x06; *((void (**)(void))0x3FE3) = isrOC2; Vielen Dank!
|
Anzeige
|
Wer versteht die Anweisung.
Gast
#679867
Ich hab diese in einem Beispiel gefunden und kann damit nichts anfangen. Vermute was mit Pointer auf Pointer!? *((unsigned char *)0x3FE2) = 0x06; *((void (**)(void))0x3FE3) = isrOC2; Vielen Dank!
Gast
#679882
Normalerweise hätte ich geschrieben: Mach deine Hausaufgaben selber. Aber: Ich habe den Code per Google doch tatsächlich in einem ganz anderen Zusammenhang gefunden, deswegen gibt's hier die Lösung des Rätsels ;-) *((unsigned char *)0x3FE2) = 0x06; An die Byte-Adresse 0x3fe2 wird der Wert 0x06 geschrieben. *((void (**)(void))0x3FE3) = isrOC2; An die Adresse 0x3fe3 wird die Adresse der Funktion isrOC2, die keine Argumente entgegen nimmt und keinen Rückgabewert liefert, geschrieben.
Gast
#679886
Zusatz: Beide Anweisungen zusammen schreiben den Maschinenbefehl
jmp isrOC2
für 68HC12-kompatible Mikrocontroller an die Speicheradresse 0x3fe2.
Da wird wohl so eine Art Interrupt-Sprungtabelle aufgebaut.
Gast
#679895
Ach, jetzt verstehe ich, warum du der HC12Dirk bist :-) Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|