...kein Problem ist so banal, als das es bei näherem hinschaeuen nicht noch größer werden könnte
...danke für den Klaps auf den Hinterkopf, teste es abends mal![]()
Hallo!
Warum einfach, wenns kompliziert auch geht.
Mal im Ernst: Einfach Cls so wies HubertG. schon geschrieben hat
MfG
Rone
...kein Problem ist so banal, als das es bei näherem hinschaeuen nicht noch größer werden könnte
...danke für den Klaps auf den Hinterkopf, teste es abends mal![]()
Hallo!
Es bleibt "dunkel", weil angeblich der Kontrastpin in H Zustand bleibt (Softwareproblem).![]()
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
Eine Gegenfrage: Wieso soll das Display nichts anzeigen ? Willst du nicht, daß man was sieht ?
gruss
Harry
Ich programmiere mit AVRCo
Hallo Harry,
aaaaaalso, ich war wohl in meiner "Problembeshreibung" nicht ganz aufrichtig
In meinem Programm läuft in der Do-Loop-Schleife eine Berechnung welche in jeder Sekunde auf dem LCD ein Ergebnis zeigt.
Meine Idee war nun nicht die ganze Zeit die Anzeige darstellen (die Berechnung soll in Hintergrund weiter laufen).
Also habe ich alle ~10 Sekunden für ~5 Sekunden den Pin C.5 auf "1" gesetzt. Mit dieser "1" wollte ich das Display steuern,
also alle 10 Sek. für 5 Sek. das LCD "befeuern".
Ich habs nicht hinbekommen, nehem ich dem Display den Pin3 (Kontrast) weg, wird es logischer Weise dunkel, gebe ich ihm Masse zurück
(und zwar nur die Masse des definierten Dispayports) funktioniert es. Masse vom Board funktioniert nicht, dann kommt das Display durcheinander
und zeigt alles schwarz???.
Habe nun mit einem Bauerntrick experimentiert und mit meiner logischen "1" ein CMOS-IC 4066 befeuert (4 digitale Schalter).
Einer dieser Schalter unterbricht die Kontrastleitung...brauch ich halt noch ein IC, schade, 'ne Softwarelösung wäre mir lieber gewesen
...trotzdem danke an alle, treffen uns beim nächsten Problem wieder![]()
![]()
gruß Kugelblitz
Hallo for_ro
ja, ja ziemlich viel Aufwand, haste recht, ich glaube ich denke zu verbogen, "einfach 5 Sek. nichts zum LCD schicken" ist wohl der Schlüssel.
Ich glaube ich denke schon zu lange darüber nach
Jetzt geh ich mal spazieren, wenn ich wiederkomme mache ich einen neuen anlauf und versuche mal 5 Sekunden nix zu schicken.
danke für den hinweis, werde später mal das Programm "verschlimmbessern"
gruß Kugelblitz
...so, war spatzieren, hat aber nix gebracht,
deshalb poste ich euch das ganze Ausmaß des Elends---
...zwischen Tiktest1 und Tiktest2 sollte nach meiner Idee das LCD DisplayCode:$regfile "2313def.dat" $crystal = 3686400 $baud = 9600 Dim Sekunden As Long Dim Tik As Integer Dim Minuten As Long Dim Stunden As Long Dim Tage As Integer Dim Starttag As Byte , Startmonat As Byte , Startjahr As Byte Dim Zieltag As Byte , Zielmonat As Byte , Zieljahr As Byte Dim Bday1 As Byte , Bmonth1 As Byte , Byear1 As Byte Dim Bday2 As Byte , Bmonth2 As Byte , Byear2 As Byte Dim Datdiff1 As Integer , Datdiff2 As Integer Dim Wert As Integer Deflcdchar 0 , 32 , 24 , 30 , 7 , 27 , 24 , 22 , 16 Deflcdchar 1 , 24 , 24 , 28 , 12 , 30 , 31 , 31 , 15 Deflcdchar 2 , 6 , 1 , 1 , 32 , 32 , 32 , 16 , 16 Deflcdchar 3 , 16 , 1 , 14 , 12 , 1 , 7 , 32 , 16 Deflcdchar 4 , 30 , 30 , 8 , 32 , 32 , 32 , 32 , 32 Deflcdchar 5 , 32 , 32 , 32 , 4 , 24 , 32 , 32 , 32 Deflcdchar 6 , 23 , 19 , 15 , 12 , 8 , 10 , 15 , 15 Deflcdchar 7 , 7 , 7 , 7 , 7 , 5 , 13 , 24 , 16 'LCD CONFIG' '----------' Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Lcdbus = 4 Enable Interrupts Config Clock = User Config Date = Ymd , Separator = . ' ANSI-Format Starttag = 08 : Startmonat = 01 : Startjahr = 12 : Datdiff1 = Sysday(starttag) Zieltag = 24 : Zielmonat = 12 : Zieljahr = 12 : Datdiff2 = Sysday(zieltag) Tage = Datdiff2 - Datdiff1 Tik = 0 Stunden = Tage * 24 Minuten = Stunden * 60 Sekunden = Minuten * 60 Config Timer1 = Timer , Prescale = 1024 'Bestimmt das Timer 1 verwendet Enable Timer1 On Timer1 Test Enable Interrupts Timer1 = 61935 Cls Do ' Schleifenanfang Cursor Off Noblink Locate 1 , 1 Lcd " nur noch " ; Sekunden Locate 2 , 1 Lcd " Sekunden bis...???" Locate 3 , 8 : Lcd Chr(0) ; Chr(2) ; Chr(4) ; Chr(6) Locate 4 , 8 : Lcd Chr(1) ; Chr(3) ; Chr(5) ; Chr(7) Waitms 50 If Tik = 25 Then Gosub Tiktest1 'Ausgang C.5 ein [15] If Tik = 35 Then Gosub Tiktest2 'Ausgang C.5 aus [25] 'Differenz von 10 entspricht ~ 10Sek eingeschaltet Loop End Test: Incr Tik Decr Sekunden Timer1 = 61935 ' Timer soll ab 61935 hochzählen Return Tiktest1: Portb.5 = 1 Return Tiktest2: Tik = 0 Portb.5 = 0 Return '
das Ergebnis anzeigen...
mfg
Kugelblitz
Geändert von radbruch (08.01.2012 um 14:50 Uhr) Grund: Code-Tags eingefügt
P.S.
wenn es nicht üblich ist Prog-teile auf diese Art zu posten, bitte bescheid sagen,
hänge ich das Prog das nächste mal an
Kugelblitz
Das ist schon so OK.
Ich kann nur kein BASCOM. In C würde ich das so machen, wenn du den Port auf 1 setzt also Ausgabe dann ein Flag setzen.
Vor der LCD-Ausgabe ein if in dem du das Flag abfragst. Wenn Flag dann LCD Ausgabe, wenn kein Flag dann nicht.
Ich hoffe das war einigermassen Verständlich.
Lesezeichen