Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 13 lip 2026, o 10:16


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 2 sie 2013, o 10:35 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
do pinu PB0 (PCINT0) i do masy mam podłączony kabelek, który mogę zwierać i rozwierać, PB0 podciągnięty jest do HIGH,
i to działa jak robię zwarcie i rozwarcie bez pośpiechu, flagi są odpowiednio ustawione

ale jak robię zwarcie przecinając oba kabelki to flaga na zwarcie jest ustawiona, a po przecięciu flaga na rozwarcie już nie

z czego to wynika i jak sobie z tym poradzić?
atmega88 - 8 MHz



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sie 2013, o 10:44 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27462
Lokalizacja: Szczecin
Pomógł: 1045

Ja na razie tak z doskoku bo nie mam jeszcze swojego kompa i do PDF'a jak zajrzeć ale...

ale ja bym może nie bawił się w te dwie flagi w przerwaniu - tylko ustawiał flagę że ono wystąpiło a stan pinu PB0 badał już w pętli głównej nawet wtedy z lekkim opóźnieniem na wypadek jakichś drgań styków. I dopiero wtedy rozstrzygał sobie czy miało miejsce zbocze opadające czy narastające. To taki na szybko jak mówię pomysł - musiałbyś go sobie sprawdzić.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sie 2013, o 11:04 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

jeśli dobrze rozumiem to w momencie cięcia występuje przerwanie (zwarcie do masy), ale po przecięciu przerwania nie ma
bo nastąpiło za szybko po pierwszym?

to, że po przecięciu stan PINB0 będzie już na rozwarcie to pewne, ale stwierdzenie tego w pętli głównej już będzie dla mnie
chyba bezwartościowe, ponieważ ja potrzebuję kontrolować moment zwarcia i rozwarcia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sie 2013, o 11:10 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27462
Lokalizacja: Szczecin
Pomógł: 1045

Cytuj:
to, że po przecięciu stan PINB0 będzie już na rozwarcie to pewne, ale stwierdzenie tego w pętli głównej już będzie dla mnie
chyba bezwartościowe, ponieważ ja potrzebuję kontrolować moment zwarcia i rozwarcia


Ja nie wiem jak z drganiami styków u ciebie przy tych zwarciach i rozwarciach. Jeśli do tego używać przerwania które reaguje na dowolne zbocze - to łatwo sobie wyobrazić, że czy przy zwarciu czy przy rozwarciu - w wyniku "drgań styków" przerwanie może być wywołane wielokrotnie i ciężko sprawdzić co było czym tylko na podstawie zaistnienia przerwania.

Za to jeśli pamiętać w RAM zawsze ostatni stan logiczny na pinie i wspomóc się leciutkim opóźnieniem (eliminującym czas drgania styków) to spokojnie można dojść i to bez zbędnej zwłoki , czy mamy do czynienia ze zwarciem czy rozwarciem.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sie 2013, o 11:23 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

wireless napisał(a):
Za to jeśli pamiętać w RAM zawsze ostatni stan logiczny na pinie i wspomóc się leciutkim opóźnieniem (eliminującym czas drgania styków) to spokojnie można dojść i to bez zbędnej zwłoki , czy mamy do czynienia ze zwarciem czy rozwarciem.
to może któryś z kolegów poświęci mi trochę czasu i pokaże jak taką "rybę" usmażyć ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sie 2013, o 13:04 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27462
Lokalizacja: Szczecin
Pomógł: 1045

no poczekaj, bierzesz sobie jakieś zmienne

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


przy starcie wczytujesz stan

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


i dalej w pętli głównej jak dostaniesz flagę

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sie 2013, o 16:45 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

trochę to trwało, kod trzeba było trochę poprawić, bo nie podobał się do końca Eclipsowi ;)
ale to mało ważne, w końcu zadziałał tak samo

no i zacząłem myśleć (lepiej późno niż wcale), to nie miało szans zadziałania
ponieważ w zależności od stanu PCINT0 nadajnik rfm22 miał wysłać odpowiedni sygnał,
okazało się, że odstęp między dwoma sygnałami musi być większy niż 500ms, 1s działa
pewnie
teraz muszę rozgryzać rfm22 bo to chyba niemożliwe, żeby to musiało trwać tak długo

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO