PacMan
Guest
Tue Nov 28, 2006 11:02 am
Witam, czy taki programik zadziala na 89c2051? Chodzi o prosty programik
zapalajacy i gaszacy diodke ewentualnie wl/wyl jakies urzadzenie.
P1 = &B11111111
P1 = 0
P3 = &B11111100
P3 = 0
Do
If P3.0 = 1 Then
If P1.0 = 0 Then P1.0 = 1 Else P1.0 = 0
End If
Loop
End
Prosze o wszelkie uwagi.
Dzieki
Pozdrawiam
JJJK
Guest
Tue Nov 28, 2006 12:56 pm
PacMan <kamilgrodz@TNIJ.poczta.onet.pl> napisał(a):
Quote:
Witam, czy taki programik zadziala na 89c2051? Chodzi o prosty programik
zapalajacy i gaszacy diodke ewentualnie wl/wyl jakies urzadzenie.
P1 = &B11111111
P1 = 0
P3 = &B11111100
P3 = 0
Do
If P3.0 = 1 Then
If P1.0 = 0 Then P1.0 = 1 Else P1.0 = 0
End If
Loop
End
Prosze o wszelkie uwagi.
Dzieki
Pozdrawiam
Tak jak napisał Piotr brak opóźnienia - chyba, że ma szybko mrygać
Ale brakuje też jednego end if.
Pewnie dlatego, że napisałeś ten kod nieczytelnie.
Napisz to lepiej w takiej formie:
P1 = &B11111111
P1 = 0
P3 = &B11111100
P3 = 0
Do
waitms 250 '>>>>> przykładowe opóźnienie
If P3.0 = 1 Then
If P1.0 = 0 Then
P1.0 = 1
Else
P1.0 = 0
EndIf '>>>>> brakujący EndIf
End If
Loop
End
---
JJJK
PacMan
Guest
Tue Nov 28, 2006 1:24 pm
Quote:
Tak jak napisał Piotr brak opóźnienia - chyba, że ma szybko mrygać
Ale brakuje też jednego end if.
Pewnie dlatego, że napisałeś ten kod nieczytelnie.
Napisz to lepiej w takiej formie:
P1 = &B11111111
P1 = 0
P3 = &B11111100
P3 = 0
Do
waitms 250 '>>>>> przykładowe opóźnienie
If P3.0 = 1 Then
If P1.0 = 0 Then
P1.0 = 1
Else
P1.0 = 0
EndIf '>>>>> brakujący EndIf
End If
Loop
End
---
JJJK
przepraszam, moj blad w opisie - chodzilo mi o to aby ta diodke zapalac i
gasic jednym przyciskiem podlaczonym do portu P3.0, tzn raz wcisne przycisk
i diodka sie zapali, drugi raz przycisne - diodka zgasnie.
Darek
Guest
Tue Nov 28, 2006 2:15 pm
Quote:
Do
waitms 250 '>>>>> przykładowe opóźnienie
If P3.0 = 1 Then
If P1.0 = 0 Then
P1.0 = 1
Else
P1.0 = 0
EndIf '>>>>> brakujący EndIf
End If
Loop
End
W momencie załączenia przycisku powstają odbicia
na przełączniku, co powoduje zinterpretowanie
przez uC wielu załączeń. Coś takiego bardzo ładnie można
odfiltrować również pętlą opóźniającą, może nie koniecznie 250ms
a powiedzmy 20ms.
Pozdrawiam
Darek
JJJK
Guest
Tue Nov 28, 2006 2:35 pm
PacMan <kamilgrodz@TNIJ.poczta.onet.pl> napisał(a):
Quote:
Tak jak napisał Piotr brak opóźnienia - chyba, że ma szybko mrygać
Ale brakuje też jednego end if.
Pewnie dlatego, że napisałeś ten kod nieczytelnie.
Napisz to lepiej w takiej formie:
P1 = &B11111111
P1 = 0
P3 = &B11111100
P3 = 0
Do
waitms 250 '>>>>> przykładowe opóźnienie
If P3.0 = 1 Then
If P1.0 = 0 Then
P1.0 = 1
Else
P1.0 = 0
EndIf '>>>>> brakujący EndIf
End If
Loop
End
---
JJJK
przepraszam, moj blad w opisie - chodzilo mi o to aby ta diodke zapalac i
gasic jednym przyciskiem podlaczonym do portu P3.0, tzn raz wcisne
przycisk i diodka sie zapali, drugi raz przycisne - diodka zgasnie.
no to użyj poleceń debounce i toggle
JJJK
AlexY
Guest
Wed Nov 29, 2006 10:58 pm
Użytkownik Robgold napisał:
Quote:
Jesli uzywasz jakiegos portu jako wejscie to rob dla Px.x =0 bo porty maja wtedy pullup do Vcc
port ktory ma byc wejsciem musi miec stan wysoki
--
AlexY
http://yisse.neostrada.pl/spam.txt
http://ldhp715.immt.pwr.wroc.pl/~sapi/sieci/netykieta/
pawelo
Guest
Wed Nov 29, 2006 11:27 pm
witam moje propozycje :
1)
Led1 Alias P1.0
S1 Alias P1.1
Do
Debounce S1 , 0 , Pr1
Loop
Pr1:
P1.0 = Not P1.0
Return
2)
Led2 Alias P1.2
S2 Alias P1.3
Set Led2
If S2 = 0 Then
Waitms 25
If S1 = 0 Then
Led2 = Not Led2
Bitwait S2 , Set
End If
End If
Użytkownik "PacMan" <kamilgrodz@TNIJ.poczta.onet.pl> napisał w wiadomości
news:ekh1g2$m30$1@news.onet.pl...
Quote:
Witam, czy taki programik zadziala na 89c2051? Chodzi o prosty programik
zapalajacy i gaszacy diodke ewentualnie wl/wyl jakies urzadzenie.
P1 = &B11111111
P1 = 0
P3 = &B11111100
P3 = 0
Do
If P3.0 = 1 Then
If P1.0 = 0 Then P1.0 = 1 Else P1.0 = 0
End If
Loop
End
Prosze o wszelkie uwagi.
Dzieki
Pozdrawiam
PacMan
Guest
Thu Nov 30, 2006 7:32 am
Quote:
Jesli uzywasz jakiegos portu jako wejscie to rob dla Px.x =0 bo porty maja
wtedy pullup do Vcc
Nie jestem tylko pewny czy w Bascomie dla 51 jest polecenie toggle,
napewno jest w AVR
Jesli nie zadziala to wstaw zamiast toggle
P1.0= not P1.0 w ten sposob P1.0 zawsze zmieni stan na przeciwny.
wlasnie nie ma polecenia toggle w bascomie 51...
Robgold
Guest
Thu Nov 30, 2006 1:25 pm
Użytkownik "AlexY" <alexy@irc.-cut_this-.pl> napisał w wiadomości news:ekkvqe$m4q$1@atlantis.news.tpi.pl...
Quote:
Użytkownik Robgold napisał:
Jesli uzywasz jakiegos portu jako wejscie to rob dla Px.x =0 bo porty maja wtedy pullup do Vcc
port ktory ma byc wejsciem musi miec stan wysoki
Wlasnie to mu napisalem
Sprawdza sie stan dla Px.x=0
AlexY
Guest
Thu Nov 30, 2006 11:16 pm
Użytkownik Robgold napisał:
Quote:
Jesli uzywasz jakiegos portu jako wejscie to rob dla Px.x =0 bo porty maja wtedy pullup do Vcc
port ktory ma byc wejsciem musi miec stan wysoki
Wlasnie to mu napisalem
Sprawdza sie stan dla Px.x=0
zatem nie rozumiem tego zapisu
po mojemu jest to
clr px.x
:)
--
AlexY
http://yisse.neostrada.pl/spam.txt
http://ldhp715.immt.pwr.wroc.pl/~sapi/sieci/netykieta/