Hallo,
nachdem ich mit Hilfe der Artikel aus dem Forum mein DOGM 163
erfolgreich initialisiert habe ( in Assambler, an 5V,Hardware-SPI,
ATMEGA16) verzweifel ich seit einem Tag an der Textausgabe, obwohl das
doch kein Problem sein dürfte. Ich greife da ebenfalls auf Routinen hier
aus dem Forum zurück.
Ich poste mal den Code, lass aber die Init weg weil die geht ja. ( Ich
sehe einen blinkenden Cursor vor mir)
Obwohl ich versuche ein Zeichen zu senden sehe ich weiter hin nur den
blinkenden Cursor. Könnte es sein das ich vergesse eine Freigabe zu
setzen?
1 | ; bis hierher geht die funktionierende Initialisierung
|
2 |
|
3 | Loop:
|
4 | rcall delay50ms
|
5 |
|
6 | ldi r24,0b00000000 ; Adresse
|
7 | ldi r25,0x53 ; Zeichen
|
8 | rcall wrddram
|
9 | rjmp Loop
|
10 |
|
11 | ;--------------------------------------------------------------------------------------
|
12 | ; Write DDRAM - Schreiben auf DDRAM Adresse
|
13 | ; in : r25 = Datenbyte
|
14 | ; r24 = Adresse (7bit)
|
15 | ; changed : -
|
16 | wrddram:
|
17 | ori r24,$80 ; Bit 7 setzen ( Befehl Adresse schreiben)
|
18 | rcall wrcmd ; zur LCD
|
19 | mov r24,r25 ; Daten
|
20 | rcall wrdat ; zur LCD
|
21 | ret
|
22 | ;--------------------------------------------------------------------------------------
|
23 | ; Write Command - Kommandos schreiben
|
24 | ; in: r24 Kommando
|
25 | wrcmd:
|
26 | cbi PortB,RS ; RS = 0 -> Kommando/Adresse schreiben
|
27 | rcall spi_out
|
28 | rcall delay50us
|
29 | ret
|
30 | ;--------------------------------------------------------------------------------------
|
31 | ; Write Data - Daten schreiben
|
32 | ; in : r24 Datenbyte
|
33 |
|
34 | wrdat:
|
35 | sbi PortB,RS ; RS = 1 -> Daten schreiben
|
36 | rcall spi_out
|
37 | rcall delay50us
|
38 | ret
|
39 |
|
40 | ;--------------------------------------------------------------------------------------
|
41 | ; Byte über SPI ausgeben
|
42 | ; in: r24 Datenbyte
|
43 | ; changed: -
|
44 | spi_out:
|
45 | push r24
|
46 | out SPDR,r24 ; start transmission of data
|
47 | spi_out10:
|
48 | in r24,SPSR ; Wait for transmission complete
|
49 | sbrs r24,SPIF
|
50 | rjmp spi_out10
|
51 | pop r24
|
52 | ret
|