-
Wait 5 ist ganz schlecht. Das hält das Programm 5 Sekunden lang an.
Ich rufe in meinen Programmen im sectic solche Aufgaben. sectic wird bei Bascom sekündlich angesprungen, wenn in der config dcf77 oder config clock angegeben.
Code:
dim Lichtzeit as byte
Licht alias portb.5
.
.
.
do
if messung >300 then
lichtzeit=5
set licht
end if
loop
end
sectic:
if lichtzeit>0 then
decr lichtzeit
end if
if lichtzeit=0 then reset licht
return
...
Die Sekunden bekommst du weg, indem du hinter dem lcd date$ noch ein
einsetzt
-
jo das mit dem date habe ich schon hinbekommen. nur wie schreibe ich nun ein programm welches das datum ausgibt?
-
habs mal so mit sectic rein gemacht allerdings passiert da nichts. das licht schaltet zwar ein aber geht sofort wieder aus. also bleibt keine 5 sekunden eingeschaltet.
-
den ganzen code mal posten...
-
so hier der code.
vermute allerdings dass es mit dem set befehl was zu tun hat da ich eine 0 zum einschalten des lichts brauche und set macht ja ne 1. habe aber auch schon versucht set und reset zu tauschen hat aber nix gebracht.
Code:
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 ,
Db7 = Portb.4 , E = Portc.4 , Rs = Portc.5
Config Lcd = 16 * 2
Config Lcdbus = 4
Cursor Off
Config Portb.0 = Output
Config Portb.5 = Output
Config Portb.1 = Output
Config Pind.0 = Input
Config Pind.1 = Input
Config Pind.2 = Input
Config Pind.3 = Input
Config Pinc.0 = Input
Const Adc_multi = 0.00244140625
Config Adc = Single , Prescaler = Auto
Start Adc
Portd.0 = 1
Portd.1 = 1
Portd.2 = 1
Portd.3 = 1
Enable Interrupts
Config Clock = Soft
Config Date = Mdy , Separator = /
Declare Sub Stunde
Declare Sub Minute
Declare Sub Stundew
Declare Sub Minutew
Declare Sub Onoff
Declare Sub Licht
Declare Sub Stellenmenue
Dim Stellenstunde As Byte
Dim Stellenminute As Byte
Dim Konfiguration As Byte
Dim Anaus As Byte
Dim Messung As Word
dim Lichtzeit as byte
Licht alias portb.5
Cls
Time$ = "00:00:00"
Date$ = "01/01/00"
Do
If Konfiguration = 1 Then
Locate 1 , 1
If Stellenstunde < 10 Then Lcd "0"
Lcd Stellenstunde ; ":"
If Stellenminute < 10 Then Lcd "0"
Lcd Stellenminute
End If
Locate 2 , 9
Lcd Date$
Debounce Pind.0 , 0 , Stellenmenue , Sub
If Konfiguration = 0 Or Konfiguration = 2 Or Konfiguration = 3 Then
Locate 1 , 1
Lcd Time$
End If
If Konfiguration = 1 Then 'Wecker
stellen
Debounce Pind.1 , 0 , Stundew , Sub
Debounce Pind.2 , 0 , Minutew , Sub
End If
If Konfiguration = 2 Then 'Uhr stellen
Debounce Pind.1 , 0 , Stunde , Sub
Debounce Pind.2 , 0 , Minute , Sub
End If
Debounce Pind.3 , 0 , Onoff , Sub
If Konfiguration = 0 And Anaus = 0 Then 'Wecker
an/aus
Locate 2 , 1
Lcd "aus "
End If
If Konfiguration = 0 And Anaus = 1 Then
Locate 2 , 1
Lcd "an "
End If
If Stellenstunde = _hour And Stellenminute = _min And Anaus = 1 Then
Portb.1 = 1
Else
Portb.1 = 0
End If
Messung = Getadc (0)
If _hour > 20 or _hour < 8 then
Portb.5 = 1
If Messung > 300 then
lichtzeit = 5
set licht
end if
else
Portb.5 = 0
End If
Loop
'Stellenmenü 'Menü zum
einstellen Wecker/Uhr/Datum
Stellenmenue:
Incr Konfiguration
If Konfiguration = 4 Then Konfiguration = 0
If Konfiguration = 1 Then
Locate 2 , 1
Lcd "Wecker"
End If
If Konfiguration = 2 Then
Locate 2 , 1
Lcd "Uhr "
End If
If Konfiguration = 3 Then
Locate 2 , 1
Lcd "Datum "
End If
Return
'Stunde 'Hier wird
die Stunde der Uhr hochgezählt
Stunde:
Incr _hour
If _hour > 23 Then
_hour = 00
End If
Return
'Minute 'Hier wird
die Minute der Uhr hochgezählt
Minute:
Incr _min
If _min > 59 Then
_min = 00
End If
Return
'MinuteW 'Hier wird
die Minute des Weckers hochgezählt
Minutew:
Incr Stellenminute
If Stellenminute > 59 Then
Stellenminute = 0
End If
Return
'Stundew 'Hier wird
die Stunde des Weckers hochgezählt
Stundew:
Incr Stellenstunde
If Stellenstunde > 23 Then
Stellenstunde = 0
End If
Return
'onoff 'Hier wird
der Wecker ein- und ausgeschaltet
Onoff:
Incr Anaus
If Anaus = 2 Then Anaus = 0
Return
sectic:
if lichtzeit>0 then
decr lichtzeit
end if
if lichtzeit=0 then reset licht
return
-
Hallo!
In einem anderen Forum wurde Dir ja schon geraten,
daß Du Dich eventuell um ein anderes Hobby umschauen sollst.
Du läßt Dir jedes kleines Problemchen von anderen lösen.
Ist selber nachdenken so schwer?
Und vorallem der alte Spruch "Lesen bildet" gilt auch noch heute. Wenn Du in die Bascom Help unter "Config Clock" schaust
und natürlich auch liest was denn da steht, wirds vielleicht
ein wenig heller werden mit Sectic.
MfG
Rone
-
was denkst du wohl warum ich dort nix mehr poste? weil solche leute wie du ankommen und einem das ganze madig machen.
wenn du nix konstruktives dazu beitragen kannst bitte ich dich im anderen forum in meinen post zu schreiben der is ja dort zugemüllt genug. einmal mehr müll abladen is dort egal.
ich hab zick mal gesagt dass ich anfänger bin. aber irgendwie blickt das keiner. woher soll ich bitte wissen wie man ein programm struckturell aufbaut und wo man welche befehle nimmt? du bist wieder so einer der die weisheit mit dem löffel gegessen hat.
-
nun, es gibt nen Grund warum im µC-net keiner mehr gepostet hat.
Irgendwann haben's die Forenmitglieder leid einem die Arbeit zu machen. Dort wie auch hier im Forum wird es sehr gerne gesehen wenn sich die Leute erstmal Gedanken machen und bei Problemen dann fragen.
Meist wird dann Hilfe zur Selbsthilfe gegeben.
Die Taktik mit "sag mir wie's geht" geht dort wie hier nicht auf.
Wer mir den Cde mal anschaun, vielleicht fällt mir ja was dazu ein.
-
ja dass ist mir auch klar. aber hier rennen leute rumm die meinen ich hätte wirklich gar nix gemacht dabei habe ich ja nur mit kleinigkeiten probleme und dass halt nur weil ich sie zum ersten mal mache. zb dass mit dem adc oder so.
-
config clock = soft, gosub = sectic
Du schaltest das Licht aber bei der nächsten Gelegenheit wieder ab. Da muss natürlich abgefangen werden, ob die Lichtzeit noch läuft.