Kłopot z dorobieniem funkcji do programu
Kłopot z dorobieniem funkcji do programu
.
Ostatnio zmieniony 05 mar 2013, 12:32 przez SQ8, łącznie zmieniany 1 raz.
Przyciśnięciem przycisku zwiększ zemienną X i napisz tak:
Linia nr 1. sprawdza czy odbierasz (1-odbieranie, 0-cisza)
Linia nr 2. nada zmiennej x wartość 1 jeśli miałeś wciśnięty przycisk nadawania i ktoś nadawał
Linia nr 3. zabroni nadawania jeśli ktoś nadaje i Ty też chcesz nadawać, 0=zabronione
Linia nr 4. lub
Linia nr 5. jeśli nikt nie nadaje i Ty puścisz przycisk to wyzeruje zmienną x która umożliwi nadawanie
Linia nr 6. wciąż zabrania nadawania
Linia nr 7. sprawdzi czy już nikt nie nadaje i czy wcześniej puściłeś przycisk
Jeśli mój tok myślenia jest nieprawidłowy to poprawcie mnie, ale zwykle takie rzeczy, wymyślone na poczekaniu u mnie działają jak trzeba.
Oczywiście jest to czysta teoria. Musisz sobie przetestować.
Lub podstawiając to do Twojego kodu mamy:
Kod: Zaznacz cały
1. If odbieranie > 0 and przycisk = 0 then
2. x = 1
3. nadawanie = 0 'nadawanie = 0 czyli disable
4. else
5. x = 0
6. nadawanie = 0
7. end if
8. if odbieranie = 0 and przycisk = 0 and x = 0 then nadawanie = 1
Linia nr 2. nada zmiennej x wartość 1 jeśli miałeś wciśnięty przycisk nadawania i ktoś nadawał
Linia nr 3. zabroni nadawania jeśli ktoś nadaje i Ty też chcesz nadawać, 0=zabronione
Linia nr 4. lub
Linia nr 5. jeśli nikt nie nadaje i Ty puścisz przycisk to wyzeruje zmienną x która umożliwi nadawanie
Linia nr 6. wciąż zabrania nadawania
Linia nr 7. sprawdzi czy już nikt nie nadaje i czy wcześniej puściłeś przycisk
Jeśli mój tok myślenia jest nieprawidłowy to poprawcie mnie, ale zwykle takie rzeczy, wymyślone na poczekaniu u mnie działają jak trzeba.
Oczywiście jest to czysta teoria. Musisz sobie przetestować.
Lub podstawiając to do Twojego kodu mamy:
Kod: Zaznacz cały
$regfile = "m32def.dat"
$crystal = 12000000
Config Pinc.0 = Input 'WE INFO PTT
Config Pinc.2 = Input 'WE INFO ODB
Config Portc.1 = Output 'WY PTT
przycisk alias pinc.0
nadawanie alias portc.1
odbior alias pinc.2
dim x as bit
set portc
x = 0
Do
If odbieranie > 0 and przycisk = 0 then 'jeśli ktoś nadaje a Ty trzymasz przycisk to
x = 1 'wartość zmiennej x = 1
nadawanie = 0 'nadawanie = 0 czyli disable
else 'lub wtedy
x = 0 'wyzeruj zmienną x
nadawanie = 0 'nadal nie pozwalaj na nadawanie
end if
if odbieranie = 0 and przycisk = 0 and x = 0 then nadawanie = 1 'jeśli nikt nie nadaje
' i Ty wcisnąłeś przycisk
'a zmienna x była wcześniej wyzerowana to zezwalaj na nadawanie
Loop
End
Nie ma tam że od razu mistrzu, to najprostrze rzeczy są, a i tak pewnie dało by się prościej, tylko to był mój drugi zamysł. W pierwszym wszystko miało być ogarnięte w jednym warunku.SQ8 pisze:No kolego !! Jesteś mistrzu nad mistrzami
Najważniejsze że dziala.SQ8 pisze:Twój pomysł sporo mi pomógł, tym bardziej, że już działa wszystko jak sobie chcę!
Nie ma kłopotu, jeszcze tego nie opatentowałem więc spokojnie zdążyłeś wykorzystać, ha ha.SQ8 pisze:Trochę pozwoliłem sobie przerobić kod.
Zastanawia mnie tylko jedno, czy do takiego "ogromnego" projektu potrzebna była aż atmega32?
Taki układ można by nawet na bramkach i przerzutnikach zrealizować. Zamiast sprawdzać stan przycisku PPT, sprawdzaj zbocze sygnału z tego przycisku. Sygnał zajętości pasma (np. z arw.) blokował by przerzutnik. Po zwolnieniu pasma przerzutnik zadziałał by dopiero po naciśnięciu przycisku (zmianie jego stanu), ponieważ przerzutnik reagował by na zbocze a nie na stan.
Re: Kłopot z dorobieniem funkcji do programu
Przeglądam ten temat z opóźnieniem 2 tygodni. Zapewne nic ciekawego wam nie pomogę, ale mam nadzieję że po przeczytaniu problemu (i może rozwiązania) czegoś się nauczę.
Z resztą, forum ma charakter dydaktyczny i podejrzewam że zagląda tu więcej osób uczących się na błędach innych.
Tymczasem zamiast rozwiązania trafiłem na śmieci z których nic nie wynika:
Z resztą, forum ma charakter dydaktyczny i podejrzewam że zagląda tu więcej osób uczących się na błędach innych.
Tymczasem zamiast rozwiązania trafiłem na śmieci z których nic nie wynika:
SQ8 pisze:.
SQ8 pisze:..
SQ8 pisze:.
SQ8 pisze:...
Możecie mi streścić o co tu chodzi, do czego ten temat zmierza i czy problem jest rozwiązany?SQ8 pisze:..
Zgłaszam posty do Moderatora moim zdaniem koledze SQ8 należy się ostrzeżenie za usuwanie postów.
z okręgu 8 notorycznie usuwa wszystkie swoje posty.
Czyżby się wstydził swoich wypowiedzi ???
A może używa pomysłów i podpowiedzi naszych forumowych kolegów jako swojej wiedzy na innych forach ???
Jak napisał Ertew, po paru dniach kolega który przedstawia się nie pełnym znakiem krótkofalarskimErtew pisze:Z resztą, forum ma charakter dydaktyczny i podejrzewam że zagląda tu więcej osób uczących się na błędach innych.
z okręgu 8 notorycznie usuwa wszystkie swoje posty.
Czyżby się wstydził swoich wypowiedzi ???
A może używa pomysłów i podpowiedzi naszych forumowych kolegów jako swojej wiedzy na innych forach ???