Hallo,
ich habe versucht den unteren Teil der noch für den 4433 geschrieben
ist für den Mega 8 zu verwenden, hierzu habe ich die Uart Programmteile
und die out Befehle ausgetauscht aber irgendwie komme ich da nicht
weiter. Igendwas muss hinter High und Low stehen ? Wäre super wenn
jemand mir Helfen könnte vielleicht wäre das auch gleichzeitig eine
Verbesserung fürs Tutorial Speicher.
Vielen Dank
Gruß
Jürgen
.include "m8def.inc"
.def temp = r16
.def address = r17
.def data = r18
.equ CLOCK = 4000000
.equ BAUD = 9600
.equ UBRRVAL = CLOCK/(BAUD*16)-1
; Stackpointer initialisieren
ldi temp, LOW(RAMEND)
out SPL, temp
ldi temp, HIGH(RAMEND)
out SPH, temp
; Baudrate einstellen
ldi temp, LOW(UBRRVAL)
out UBRRL, temp
ldi temp, HIGH(UBRRVAL)
out UBRRH, temp
; Frame-Format: 8 Bit
ldi temp, (1<<URSEL)|(3<<UCSZ0)
out UCSRC, temp
sbi UCSRB,TXEN ; TX aktivieren
ldi address, text1 ; ersten String senden
rcall eep_print
ldi address, text2 ; zweiten String senden
rcall eep_print
ldi data, 10 ; die Bytes 10 und 13 senden
rcall sendbyte ; (Zeilenumbruch im
Terminal)
ldi data, 13
rcall sendbyte
loop: rjmp loop
eep_print:
; out EEAR, address ; EEPROM-Adresse
ldi address, HIGH ; Adresse laden
out EEARH, address
ldi address, LOW
out EEARL, address
sbi EECR, EERE ; Lesevorgang starten
in data, EEDR ; gelesenes Byte nach
"data"
tst data ; auf 0 (Stringende testen)
breq eep_print_end ; falls 0, Funktion beenden
rcall sendbyte ; ansonsten Byte senden...
inc address ; ... Adresse um 1
erhöhen...
rjmp eep_print ; ... und zum Anfang der
Funktion
eep_print_end:
ret
; sendbyte: sendet das Byte aus "data" über das UART
sendbyte:
sbis UCSRA, UDRE ; warten bis das UART bereit
ist
rjmp sendbyte
out UDR, data
ret
.eseg
text1:
.db "Strings funktionieren auch ", 0
text2:
.db "im EEPROM", 0
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.