Jarek
Guest
Thu Oct 27, 2005 8:16 pm
Witam mam taki sobie programik do obsługi zdalnego sterowania na pasmo 433
Mhz. Jest to program do modułu nadajnika pod uC 89C2051P
Mam do tego programu pytanie:
Program sprawdza czy przycisk jeden został wciśnięty... itd... to
ustawia daną i leci do "wyślij"
i tam jest coś takiego Acc = Dana
a po paru linijkach If Acc.0 = 1
Czy ktoś mi może powiedzieć co to jest to Acc??
P.S. Przepraszam z góry że wkleiłem cały program...
Dim Dana As Byte , Wskaznik As Byte
Dana = 0
Call Wyslij
Do
If P3.0 = 0 Then
Set P3.0
Dana = 1 'jazda do tylu
Call Wyslij
Waitms 200
End If
If P3.1 = 0 Then
Set P3.1
Dana = 2 'przod
Call Wyslij
Waitms 20
End If
If P3.2 = 0 Then
Set P3.2
Dana = 3 'przod
Call Wyslij
Waitms 20
End If
If P3.3 = 0 Then
Set P3.3
Dana = 4
Call Wyslij
Waitms 20
End If
If P3.1 = 0 Then
If P3.2 = 0 Then
Set P3.1
Set P3.2
Dana = 5 'przod obu
silnikow
Call Wyslij
Waitms 20
End If
End If
If P3.0 = 0 Then
If P3.3 = 0 Then
Set P3.0
Set P3.3
Dana = 6 'tyl odbu
silnikow
Call Wyslij
Waitms 20
End If
End If
If P3.0 = 0 Then
If P3.1 = 0 Then
Set P3.0
Set P3.1
Waitms 20
End If
End If
If P3.0 = 0 Then
If P3.2 = 0 Then
Set P3.0
Set P3.2
Dana = 7
Call Wyslij
Waitms 20
End If
End If
If P3.3 = 0 Then
If P3.1 = 0 Then
Set P3.3
Set P3.1
Dana = 8
Call Wyslij
Waitms 20
End If
End If
If P3.3 = 0 Then
If P3.2 = 0 Then
Set P3.3
Set P3.2
Waitms 20
End If
End If
If P3.4 = 0 Then
Set P3.4
Incr Wskaznik
If Wskaznik = 1 Then
Dana = 10
Wskaznik = 0
Call Wyslij
End If
If Wskaznik = 0 Then
Dana = 11
Wskaznik = 1
Call Wyslij
Waitms 20
End If
If Wskaznik = 2 Then
Wskaznik = 0
Dana = 11
Call Wyslij
End If
End If
Loop
Sub Wyslij
Acc = Dana
If Acc.0 = 1 Then
Set P1.7
End If
If Acc.0 = 0 Then
Reset P1.7
End If
If Acc.1 = 1 Then
Set P1.6
End If
If Acc.1 = 0 Then
Reset P1.6
End If
If Acc.2 = 1 Then
Set P1.5
End If
If Acc.2 = 0 Then
Reset P1.5
End If
If Acc.3 = 1 Then
Set P1.4
End If
If Acc.3 = 0 Then
Reset P1.4
End If
End Sub
Jarek
Guest
Thu Oct 27, 2005 8:34 pm
Użytkownik "BartekK" <sibi@drut.org> napisał w wiadomości
news:djrdp7$srf$1@atlantis.news.tpi.pl...
Quote:
Jarek napisał(a):
i tam jest coś takiego Acc = Dana
a po paru linijkach If Acc.0 = 1
Czy ktoś mi może powiedzieć co to jest to Acc??
acc = akumulator procesora
hmm mądre

a może jakieś linki co do tego bo wiecie ucze się na gotowych
programach i początki cieżkie są niestety :/
Albo jakieś wytłumaczenie jak to działa... kiedy jest logiczne 0 a kiedy 1
BartekK
Guest
Thu Oct 27, 2005 8:36 pm
Jarek napisał(a):
Quote:
i tam jest coś takiego Acc = Dana
a po paru linijkach If Acc.0 = 1
Czy ktoś mi może powiedzieć co to jest to Acc??
acc = akumulator procesora
--
| Bartlomiej Kuzniewski
| sibi@drut.org GG:23319 tel +48 696455098
|
http://www.allegro.pl/show_user_auctions.php?uid=338173
Pawel \"O'Pajak\"
Guest
Thu Oct 27, 2005 8:38 pm
Powitanko,
Quote:
i tam jest coś takiego Acc = Dana
a po paru linijkach If Acc.0 = 1
Czy ktoś mi może powiedzieć co to jest to Acc??
Acc to po bascomowemu akumulator (assemblerowej nazwy "A" nie skuma)
Dana musi byc zadeklarowana jako byte
Acc.0 oznacza najmlodszy bit akumulatora.
Pozdroofka,
Pawel Chorzempa
--
"-Tato, po czym poznać małą szkodliwość społeczną?
-Po wielkiej szkodzie prywatnej" (kopyrajt: S. Mrożek)
******* >>> !!! UWAGA: ODPOWIADAM TYLKO NA MAILE ->:
> pavel(ten_smieszny_znaczek)klub.chip.pl <<<<*******
Jarek
Guest
Fri Oct 28, 2005 5:30 am
Użytkownik "Pawel "O'Pajak"" <opajak@gazeta.pl> napisał w wiadomości
news:djrds9$cc4$1@inews.gazeta.pl...
Quote:
Powitanko,
i tam jest coś takiego Acc = Dana
a po paru linijkach If Acc.0 = 1
Czy ktoś mi może powiedzieć co to jest to Acc??
Acc to po bascomowemu akumulator (assemblerowej nazwy "A" nie skuma)
Dana musi byc zadeklarowana jako byte
Acc.0 oznacza najmlodszy bit akumulatora.
No dobrze to teraz mam tam w kodzie w pewnym przypadku dana = 2 i później
Acc = dana i program sprawdza pokolei 4 bity Acc to kiedy będzie 1 a kiedy
0?? Może mi ktoś to wytłumaczyć??
Pawel \"O'Pajak\"
Guest
Fri Oct 28, 2005 8:44 am
Powitanko,
Quote:
No dobrze to teraz mam tam w kodzie w pewnym przypadku dana = 2
i później
Acc = dana i
Czyli w akumulatorze bedzie zapisane 00000010 (=2)
Inaczej mowiac Acc.0=0, Acc.1=1, Acc.2=0, Acc.3=0 itd
program sprawdza pokolei 4 bity Acc to kiedy będzie 1 a kiedy
Quote:
0?? Może mi ktoś to wytłumaczyć??
4 najmlodsze czy najstarsze? (leci od Acc.0 do Acc.3, czy od Acc.4 do
Acc.7).
Pozdroofka,
Pawel Chorzempa
--
"-Tato, po czym poznać małą szkodliwość społeczną?
-Po wielkiej szkodzie prywatnej" (kopyrajt: S. Mrożek)
******* >>> !!! UWAGA: ODPOWIADAM TYLKO NA MAILE ->:
> pavel(ten_smieszny_znaczek)klub.chip.pl <<<<*******
Jarek
Guest
Fri Oct 28, 2005 2:16 pm
Dziękuje wszystkim za pomoc skumałem już program odbiornika i nadajnika
czas poszukać coś innego
Jarek
Guest
Sat Oct 29, 2005 8:14 pm
Napisałem program który po naciśnięciu danego przycisku wykonuje daną
sekwencje świecenia diod. Skonfigurowałem tak porty, funkcje:
Config Portb = &B11111111
Portb = &B00000000
Config Portd = &B0000000
Portd.0 = 1
Portd.1 = 1
Portd.2 = 1
Portd.3 = 1
Declare Sub Sekwencja1
Declare Sub Sekwencja2
Declare Sub Sekwencja3
Declare Sub Sekwencja4
If Pind.0 = 0 Then
Set Portd.0
Call Sekwencja1
End If
Cały czas Pind.0 pomimo że podciągnąłem go do jedynki pokazuje logiczne 0.
Używam symulatora bascom-avr demo. Czy ktoś mi może powiedzieć co robie
źle??
OldBoy
Guest
Sun Oct 30, 2005 11:10 am
Użytkownik "Jarek" <jarek54129@poczta.fm> napisał w wiadomości
news:dk0ldm$3qr$1@news.dialog.net.pl...
Quote:
Napisałem program który po naciśnięciu danego przycisku wykonuje daną
sekwencje świecenia diod. Skonfigurowałem tak porty, funkcje:
Config Portb = &B11111111
Portb = &B00000000
Config Portd = &B0000000
Portd.0 = 1
Portd.1 = 1
Portd.2 = 1
Portd.3 = 1
Declare Sub Sekwencja1
Declare Sub Sekwencja2
Declare Sub Sekwencja3
Declare Sub Sekwencja4
Sprawdz to:
Ddrd.0=0
Portd.0=1
If Pind.0 = 0 Then
Quote:
Set Portd.0 - a to po co?
Call Sekwencja1
End If
---
JK
Jarek
Guest
Sun Oct 30, 2005 2:00 pm
Użytkownik "OldBoy" <janusz.karas@wp.pl> napisał w wiadomości
news:dk267f$p6k$1@atlantis.news.tpi.pl...
Quote:
Set Portd.0 - a to po co?
Jak widać w popszednim programie też to jest... chyba po to(z mojego
logicznego rozumowania) żeby portD.0 po naciśnięciu przycisku nie został z
logicznym zerem a zmienił napewno wartość na 1
Piotrek Sz.
Guest
Sun Oct 30, 2005 4:22 pm
Jarek <jarek54129@poczta.fm> napisał(a):
...
Quote:
Cały czas Pind.0 pomimo że podciągnąłem go do jedynki pokazuje logiczne 0.
Używam symulatora bascom-avr demo. Czy ktoś mi może powiedzieć co robie
źle??
Żaden ze znanych mi symulatorów uC AVR(Bascoma , AVRStudio,...) nie zmienia
stanu pinów ustawionych jako wejście.Bascom nie zmienia nawet stanu pinów
ustawionych jako wyjście.Poziomy logiczne na pinach (zielone) ustawia
"symulant"

czyli Ty.
Prosty test:
...
Set Ddrd.0 'wyjście
Set Portd.0 'ustaw stan wysoki
If Pind.0 = 1 Then 'powinien wynosić "1" ...
Set Portd.1 '... to jednak się nie wykona
End If
...
Piotrek
--
Wysłano z serwisu Usenet w portalu Gazeta.pl ->
http://www.gazeta.pl/usenet/