PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lampe über masse und masse impuls steuern



Luppi
05.03.2007, 13:30
Hallo

Ich versuche gerade eine Lampe über Masse zu steuern.

An ausschalten funktioniert.

Auch wenn ich nur einen kurzen impuls gebe Leuchtet die lampe in die von mir vorgegeben ne zeit.

Nun möchte ich es aber so machen das wenn der impuls gegeben wird die Lampe leuchtet in der zeit die ich vorgebe. Sollte in dieser zeit ein 2ter impuls über eine andere leitung kommen dann soll die lampe länger leuchten. Wenn dieser impuls nicht kommt soll die lampe in der vorgegeben zeit ausgehen.Pind0 ist die masse schaltung.Pind1 ist der masse impuls. Komm da absolut nicht weiter.

Hoffe hab das einigermaßen verständlich ausgedrückt.

Hier mal der code.

Wäre nett wenn mir jemand helfen würde.


'************************************************* *****
'
'05.03.07 Thorsten
'
'************************************************* *****

'================================================= =====
'System-Einstellungen
'================================================= =====
'Definition für Mega 8
$regfile "m8def.dat"

'Angabe der Taktfrequenz (1Mhz)
$crystal = 1000000

'================================================= =====
'Konfigurationen Eingang
'================================================= =====
Config Portd.0 = Input
Config Portd.1 = Input
Config Portd.6 = Output

'================================================= =====
'Initialisierungen
'================================================= =====
Portd.0 = 1
Portd.1 = 1
Portd.6 = 1
'================================================= =====
'Hauptprogramm-Schleife
'================================================= =====

Do

'Was man beachten muß:
'Die PIN-Logik ist durch die Pullup-Widerstände negiert!
'Schalter ein -> 0V am Eingang
'0V am Ausgang -> LED leuchtet

'================================================= =====
'Code für Türkontakt
'================================================= =====

'Wenn .... dann...
If Pind.0 = 1 Then
'Tür zu lampe aus
Portd.6 = 0
'lampe aus
Else
' Tür auf lampe an
Portd.6 = 1
Wait 7 'warte 7 sek
Portd.6 = 0 ' lampe aus

End If
'================================================= =====
'Code für ZV
'================================================= =====

If Pind.1 = 1 Then
'ZV zu lampe aus
Portd.6 = 0
Else
' ZV auf lampe an
Portd.6 = 1
Wait 5
If Pind.0 = 1 Then
Portd.6 = 0 'lampe aus
Else
Portd.6 = 1 'lampe an
Wait 30
Portd.6 = 0 ' lampe aus
End If

End If
Loop

'Programmende (nur formal)
End

helimike0705
05.03.2007, 16:44
hallo , lasse deine zeit in einer do loop schleife laufen und setzte sie
immer wenn der zweite impuls kommt auf null
do
a=a+1
impuls 2 dann a=0
wait 1
wenn vorgegebene zeit erreicht ,dann raus aud loop
loop
p.s. ist natürlich kein bascom

Luppi
05.03.2007, 16:58
ich habs nun so gelößt das klappt so ganz gut.


If Pind.1 = 1 Then
'ZV zu lampe aus
Portd.6 = 0
Else
' ZV auf lampe an
Portd.6 = 1
Wait 14
Goto B

End If

Loop
B:
If Pind.0 = 1 Then
Portd.6 = 0 'lampe aus
Goto A
Else
Portd.6 = 1 'lampe an
Wait 30
Portd.6 = 0 ' lampe aus
Goto A
End If
'Programmende (nur formal)
End