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.
@Kugelblitz: Möchtest Du mit Portb.5 den Kontrast ein/aus schalten? Ich kann nicht finden, wo Portb.5 als Output konfiguriert ist.
Gruß
Searcher
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Wegzu einigen meiner Konstruktionen
...moin, moin Hubert,
jou, verständlich war das, an meinem Quellcode kannste sehen ich kann werde Bascom vernüftig noch C oder C++ oder Assembler,
habe ein gefährliches halbwissen
Aber die Idee ist gut, werde die Befehlslage in Bascom prüfen ob sich etwas findes was in diese Richtung geht, danke für den Tipp
gruß Kugelblitz
@ Searcher
mhmmm??? stimmt, habe PortB.5 nicht explizit als Output gekennzeichnet!!!!
Habe aber in meiner Versuchanordnung 'ne LED an Port B.5, die ist immer schön "angegangen",
gehe also davon aus der Portbefehl funzt...
kann ich anhand Deines Programms nicht erklären. Der Port ist nach Reset des AVR als Input initialisiert - also hochohmig.
Würd es auf jeden Fall nochmal mit CONFIG PORTB.5 = OUTPUT versuchen, wenn Schalten der Kontrastleitung noch aktuell ist.
Insgesamt würd ich auch versuchen die Anzeige über die lcd Kommandos zu unterdrücken. Hab selber keins und kann dazu nichts sagen.
PS: PORTB.5 = 1 , wenn der Port ein Eingang ist, schaltet den Pullup Widerstand ein, 0 wieder aus.
Gruß
Searcher
Geändert von Searcher (08.01.2012 um 20:04 Uhr)
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Wegzu einigen meiner Konstruktionen
Lesezeichen