Forum: Mikrocontroller und Digitale Elektronik ATMega8535 als Display Ansteuerung


von Alexander Siep (Gast)


Angehängte Dateien:

Lesenswert?

HAllo ,

ich versuche nun schon einige zeit ein EA_DIP204 von Electronic
Assembly zum laufen zu bringen. Bei dem im Anhang bei gefügten Programm
handelt es sich lediglich um Die Initialisierung des Displays, da es
nämlich hier schon hebt. Meiner Meinung nach ist das Programm Korrekt
aber ich messe am Display Mit angeschlossener Betriebsspannung sowie
angeschlossener Kontrastspannung und Hintergrundbeleuchtung an den
Daten und Steuer Pins jeweils ungefähr 3V. Diese tatsache ist für mich
sehr iritierend. Könnte mir hierzu jemand Hilfestellung leisten.

Ich habe bereits probiert das Display mit einer Treiberstufe bestehend
aus IRLU3410 zu betreiben hat aber auch keine auswirkungen auf die
Funktion gebracht

Danke im Vorraus

von Conlost (Gast)


Lesenswert?

Hallo,

du springst mit einem RJMP in deine Unterprogramme und
beendest dieses mit einem RETI, ändere das mal um in RET.

Es grüsst,
Arno

von Alexander Siep (Gast)


Lesenswert?

Hallo Arno,

aber wenn ich die Reti in Ret ändere wird nur der erste Interrupt
des Timers ausgeführt und danach passiert nichts mehr da er den
Intterrupt ja nie verlassen hat. Oder Stehe ich nur auf dem Schaluch ?

von Conlost (Gast)


Lesenswert?

Hallo,

ja du hast Recht, da hatte ich etwas übersehen.

Ich habe festgestellt, das nicht zum Timer_0
Interrupt gesprungen wurde, sondern zum Timer_1
Interrupt.
Warum weiß ich leider auch nicht, ich habe mal
etwas geändert und in der Simulation lief es dann.
Ich habe den Ausschnitt mal hier rein kopiert.
Es würde mich nur mal interessieren, warum da falsch
gesprungen wurde, vielleicht weiß ja jemand anderer
warum das so war.

.org $0000
rjmp RESET_MC

; ***** INTERRUPT VECTORS ***********************
.org $0009    ; Timer/Counter0 Overflow
rjmp Timer0    ; Timer/Counter0 Overflow

Reset_MC:
    ldi Temp0, Low(RAMEND)  ; Load Low Ramend in Temp0
    out SPL, Temp0    ; Set Low Stack Pointer with Temp0
    ldi Temp0, High(RAMEND)  ; Load High Ramend in Temp0
    out SPH, Temp0    ; Set High Stack Pointer with Temp0

    ser Temp0    ; Set Register TEmp0
    out DDRC, Temp0    ; PortC configurated as Output
    ldi Temp0, (1<<DDD7)|(1<<DDD6)|(1<<DDD5); Load Config. for PortD
    out DDRD, Temp0    ; PortD5,6,7 configurated as Outputs

    ldi CHK, 0
    ldi T0, T0_Start  ; Load Startvalue of Timer1 in "T0"
    ldi Temp0, 0b00000000  ;
    out PortC, Temp0  ; Switch all Data Ports of Display to Low Level (
Inverted )
    ldi Temp0, (1<<RS)|(0<<RW)|(0<<E);
    out PortD, Temp0  ; Initalise Command POrts of Display




;Init_T0

    ldi Temp0, 0b00000010
    out TIMSK, Temp0  ; Timer0 Overflow Interrupt enable
    ldi T0CNT, LoopsT0  ; Load Loops Value in "T0CNT"
    ldi Temp0, 0b000000101  ; LOad Prescaler Config.
    out TCCR0, Temp0  ; Set Prescaler Configuration in TIMER1  ( 
CLK/1024
)
    out TCNT0, T0    ; Set Start VAlue of T0 and Start T0
sei

Main:
    rjmp Main

von Alexander Siep (Gast)


Lesenswert?

Hi
In der Simulation lief es bei mir auch es läuft auf dem Mikrocontroller
auch aber auf dem Display wird mein Cursor nicht angezeigt.

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
Noch kein Account? Hier anmelden.