Hallo,
habe laut dem Tutorial auf dieser Page mal alles aufgebaut.
Scheint schon zu funktionieren, aber mit fehler
Wenn ich das Programm rauf schicke mit dem Text "Test" zeigt es
"Ts" an, mit anderen Wörter das selbe problem, es werden einfach
sachen ausgelassen oder falsche zeichen angezeigt.
danke
ist möglich,
schau mal unter dem LCD tutorial nach, da bei den lcd-routines.asm sind
zeiten angegeben. wenn man die ändert gibt es aber fehlermeldungen.
danke
hi,
danke für die schnelle antwort, das problem besteht aber immer noch..
kann es an der zuleitung liegen? ich nutze ein 8poliges flachbandkabel
das ca. 50cm lang ist...
MfG
Stefan
er läuft mit 8MHz, im tutorial steht das man die zeit anpassen muss...
hab dann mal testweiße die nop's verdoppelt... weil das tut ist ja für
4MHz geschrieben... keine veränderung
achja, meist werden die ersten 3 stellen antezeigt, es kommt dann sowas
wie "Tes" oder "Tet" die ersten beiden ziffern sind aber meist
richtig.. manchmal kommen noch ein paar komplett schwarz ausgefüllte
felder....
MfG
Stefan
PS: bin kein assambler genie.. ich kenn mich eigentlich fast garnicht
damit aus.. hatte bisher nur ein 6kanal lauflicht an meinem Mega8 ;)
ich nutze yaap und habe die bits so gesetzt wie in dem tutorial.. also
ich denke er läuft jetzt mit 8MHz.. hatte blos den schaltplan von einer
anderen homepage... deswegen habe ich ein 8MHz quarz und kein 4MHz...
MfG
Stefan
ok, also prinzipiell scheint es zu funktionieren... wenn ich z.B.
"Hallo Welt" ausgeben lassen will bekomme ich "HaloWet" auf meinem
Display angezeigt ;)
ich werd mal google bemühn vielleicht find ich ja was, danke für die
hilfe
MfG
Stefan
Ich vermute, das der Controller einfach zu schnell ist... Normalerweise
fragt man im Programm die Enableleitung des LCD Displays ab, damit man
weiß, ob man schon wieder was senden darf oder noch warten muß. In
diesem Beispiel wurde die Enableleitung einfach auf Masse gelegt und
die Pausen so eingefügt.---> Wenn das LCD zu langsam oder der µC zu
schnell ist, dann kommt Halo Wet heraus, verstehst du mich?
Darum wäre es gut, den µC langsamer zu machen.
Gruß Avus
hi,
also jetz klappt es, ich hab die fusebits so eingestellt wie sie im
auslierferungszustand waren.. allerdings nutze ich ja jetzt wieder den
internen tackt von 1MHz :( naja wenigstens es funktioniert..
danke für die hilfe
MfG
Stefan
@Stefan:
Probier mal das hier:
.equ AVRTakt=4
delay5mS:
ldi r24, low(5000*AVRTakt/4)
ldi r25, high(5000*AVRTakt/4)
rjmp delayuS
delay50uS:
ldi r24, low(50*AVRTakt/4)
ldi r25, high(50*AVRTakt/4)
delayuS:
sbiw r24,1
brne delayuS
ret
Ersetze die alten delay-Routinen durch diese hier und trage in der
Konstante AVRTakt die MHz ein (4MHz = 4, 8MHz = 8 etc.).
Ist einfach und schnell auf die AVR-Frequenz abstimmbar.
Die ganzen NOP´s zwischen SBI und CBI für den Enable-Puls kannst Du
eigentlich alle weglassen da nicht mal bei 16MHz ein NOP für Enable
nötig ist.
Wenn Du willst, kannst Du in der Routine bis auf 1500/1600µS
runtergehen (1,5/1,6mS).
Gruß
Andi