hallo, ich bin dabei ein assembler-projekt vom atmega8 auf den atmega88 anzupassen. ich benutze das avr-studio und das ice-mk2. in den application notes von atmel steht, dass man, um die I/O register zu beschreiben einfach nur die befehle in/out durch lds/sts ersetzen soll. grund: beim atmega8 sind die adressen der register im bereich 0x00-0x31 und beim atmega88 werden sie in den sram bereich gemapped. speziell geht es hier um folgendes problem: atmega8: ldi R24,UBR ; Baud rate = 19.200 bps UBR=33 out UBRRL,R24 atmega88: ldi R24,UBR ; Baud rate = 19.200 bps UBR=33 sts UBRR0L,R24 im debugger werden die bits nicht in die register geschrieben. daher funktioniert da die uart nicht. wer weis abhilfe?
du hast recht, denkst du das ist nur ein darstellungsproblem, und das wirkliche problem, dass naemlich dei uart nicht läuft ist ein anderes?
Könnte es sein, dass man bei STS erst mal 0x20 draufsatteln muss? Immerhin liegen die per IN/OUT 0x00-0x3F adressierbaren I/O-Register im Datenadressraum im Bereich 0x20-0x5F.
das sollte eigentlich das include file machen... also es steht zumindest drin das in/out nicht funzt... also wird die adresse schon stimmen. hast du dir das app note "migration from mega8 to mega88" angeguckt? da steht das bei der initialiersierung irgendwas anders ist... ganz was anderes... im datenblatt find ich kein UBRR0L=33 für 19.2
interruptvektoren und adressoffsets werden im includefile geregelt. muss man irgenwas freischalten, um auf die erweiterten I/O Register zugreifen zu können? wenn ich mir ein c prog schreibe und das debugge wird im disassembler auf die register genauso zugegriffen, wie es auch von atmel vorgeschlagen wird. seltsamerweise funktiert es da, allerdings im richtigen assemblerprog nicht. (UBRR0L=33 für 19.2 war übrigens leider ein falscher kommentar :-))
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.