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



Teraz jest 24 sty 2025, o 18:54


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 28 mar 2013, o 11:01 
Offline
Użytkownik

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

założyłem nowy wątek, chociaż to kontynuacja moich problemów z przerwaniami
tu chciałbym rozprawić się osobno z przerwaniami PCINTx
oto cały kod na którym chciałbym to opanować:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

po włączeniu PB0 do masy zapala się dioda na LED_PIN_1,
a ja bym chciał, żeby włączała się tylko na ustawiony czas
w pętli for lub po zdjęciu masy z PB0 zapalała się LED_PIN_2

po zdjęciu masy z PB0 LED_PIN_1 nie gaśnie a LED_PIN_2
nie zapala się

pomożecie? ;)



Ostatnio edytowano 28 mar 2013, o 18:58 przez wireless, łącznie edytowano 8 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 mar 2013, o 12:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2012
Posty: 598
Lokalizacja: Warszawa
Pomógł: 13

To zaprzęgnij do pracy timer programowy który będzie ci zliczał czas do zera, dodatkowy plus to oszczędność pamięci, pozbędziesz się z programu unsigned long oraz wstrzymywania programu do czasu wykonania sie tej OOOoogromnej pętli



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 mar 2013, o 12:05 
Offline
Moderator
Avatar użytkownika

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

pewnie że pomożemy ;) .... ja za chwilę też postaram się coś posprawdzać - ale tak na gorąco - skąd takie pomysły żeby w GCC pisać coś właśnie aż takiego?

unsigned long ? ;)

toż masz wyraźne piękne typy: uint16_t, uint32_t lub uint64_t

druga sprawa to też oczywiście nie ma wpływu na to czy ci to działa czy nie ale dlaczego takie dziwne pętle opóźniające zamiast po prostu

_delay_ms( coś_tam );

??? ;)

_________________
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: 28 mar 2013, o 12:18 
Offline
Użytkownik

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

Malutki_27 napisał(a):
To zaprzęgnij do pracy timer programowy który będzie ci zliczał czas do zera, dodatkowy plus to oszczędność pamięci, pozbędziesz się z programu unsigned long oraz wstrzymywania programu do czasu wykonania sie tej OOOoogromnej pętli

ta pętla to tylko do zrozumienia przerwań zewnętrznych PCINT0 i zastosowania do włączania i wyłączania wykorzystując zbocza,
PCINT0, dlatego, że układ docelowy będzie usypiany w POWERDOWN

poprawiłem na _delay_ms( 1000 ); - porządek musi być! :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 mar 2013, o 16:12 
Offline
Użytkownik

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

flaga_PCINT0 = 0; powinno być
a ja miałem
flaga_PCINT0 == 0; :oops: :oops: :oops: :oops: :evil: :evil: :evil: :evil:

teraz po zwarciu PB0 do masy włącza się LED1 na 1 s gaśnie i to jest ok
ale po zabraniu masy włącza się LED1 znowu a powinien LED2



Ostatnio edytowano 28 mar 2013, o 16:18 przez wireless, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 mar 2013, o 16:17 
Offline
Moderator
Avatar użytkownika

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

wireless napisał(a):
flaga_PCINT0 = 0; powinno być
a ja miałem
flaga_PCINT0 == 0; :oops: :oops: :oops: :oops: :evil: :evil: :evil: :evil:


hyhyhy no to są fajne uroki naszego hobby ;) ...

------------------------ [ Dodano po: kilkunastu sekundach ]

ale za to przybyło ci 10pkt doświadczenia w tej grze ;)

_________________
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: 28 mar 2013, o 16:21 
Offline
Użytkownik

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

mirekk36 napisał(a):
wireless napisał(a):
flaga_PCINT0 = 0; powinno być
a ja miałem
flaga_PCINT0 == 0; :oops: :oops: :oops: :oops: :evil: :evil: :evil: :evil:


hyhyhy no to są fajne uroki naszego hobby ;) ...

------------------------ [ Dodano po: kilkunastu sekundach ]

ale za to przybyło ci 10pkt doświadczenia w tej grze ;)

a ile trzeba mieć, żeby być zadowolonym? ;)
życia nie wystarczy :)

teraz po zwarciu PB0 do masy włącza się LED1 na 1 s i gaśnie i to jest ok
ale po zabraniu masy włącza się LED1 znowu a powinien LED2

i żeby było śmieszniej to PB0 ma stan HIGH na starcie i po zwarciu do masy powinna się zapalać LED2, chyba



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 mar 2013, o 16:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2012
Posty: 598
Lokalizacja: Warszawa
Pomógł: 13

A ja proponuję poczytać to http://mirekk36.blogspot.com/2012/01/av ... stawy.html

I przerobić przerwanie ;)


A co to za wynalazek ?

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 mar 2013, o 16:56 
Offline
Użytkownik

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

Malutki_27 napisał(a):
A ja proponuję poczytać to http://mirekk36.blogspot.com/2012/01/av ... stawy.html

I przerobić przerwanie ;)


A co to za wynalazek ?

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

to wynalazek z sieci :oops: , ale niestety zgodny z zapisem Mirka i zmiana na

DDRB &= ~(1 << PB0);
// PB0 (PCINT0 pin) is now an input

PORTB |= (1 << PB0);
// PB0 is now an input with pull-up enabled

nic nie zmienia
... a przerwania przerabiam właśnie ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 mar 2013, o 18:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2012
Posty: 598
Lokalizacja: Warszawa
Pomógł: 13

A to przepraszam bo ja akurat z takim zapisem portu jak DDB0 spotykam się pierwszy raz ;)

Natomiast w przerwaniu czytasz z PORTB a powinieneś z PINB



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 mar 2013, o 18:56 
Offline
Użytkownik

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

Malutki_27 napisał(a):
A to przepraszam bo ja akurat z takim zapisem portu jak DDB0 spotykam się pierwszy raz ;)

Natomiast w przerwaniu czytasz z PORTB a powinieneś z PINB

nic to nie zmienia druga dioda się nie włącza po odłączeniu od masy, ale poprawiłem na:
if(!(PINB & (1 << PB0)))

------------------------ [ Dodano po: 45 minutach ]

wszystko działa, winne były drgania styków (ręki),
jak użyłem switcha do podawania masy to zadziałało



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 mar 2013, o 20:31 
Offline
Moderator
Avatar użytkownika

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

wireless napisał(a):
wszystko działa, winne były drgania styków (ręki),
jak użyłem switcha do podawania masy to zadziałało


o tym pisałem już sporo wcześniej i chciałbym zwrócić może twoją uwagę na fakt jeszcze raz - (choć może się mylę - sam to przetestujesz) .... że w trakcie wysychania cieczy - może dochodzić do dużej ilości takiego właśnie zjawiska - ala drgań styków .... piszę ala bo wiesz o co mi chodzi - w pewnym momencie będą stany nieustalone zarówno dla zbocza narastającego jak i opadającego ...

no ale ja nie mam układu pod ręką a ty masz - więc łatwiej będzie ci pewnie sobie na to odpowiedzieć już w praktyce

_________________
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: 28 mar 2013, o 23:54 
Offline
Użytkownik

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

mirekk36 napisał(a):
o tym pisałem już sporo wcześniej i chciałbym zwrócić może twoją uwagę na fakt jeszcze raz - (choć może się mylę - sam to przetestujesz) .... że w trakcie wysychania cieczy - może dochodzić do dużej ilości takiego właśnie zjawiska - ala drgań styków .... piszę ala bo wiesz o co mi chodzi - w pewnym momencie będą stany nieustalone zarówno dla zbocza narastającego jak i opadającego ...

taki prosty układ, a tyle niuansów...
może powinienem iść w kierunku wykorzystania ADC, ale z tego co pamiętam to w trybie POWERDOWN jest on wyłączony i to by dyskwalifikowało ten pomysł



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2013, o 00:06 
Offline
Moderator
Avatar użytkownika

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

nie nie - spokojnie porób próby z tym co masz i opisz jak to się zachowuje ale nie przy klikaniu klawisza tylko zalaniu płynem i suszeniu ... to się coś dalej pomyśli ;)

_________________
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: 29 mar 2013, o 10:19 
Offline
Użytkownik

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

mirekk36 napisał(a):
nie nie - spokojnie porób próby z tym co masz i opisz jak to się zachowuje ale nie przy klikaniu klawisza tylko zalaniu płynem i suszeniu ... to się coś dalej pomyśli ;)

coś czuję, że szykują mi się SuperŚwięta z SuperDebounce :)
prorocze słowa: ;)
"Będzie to taki protoplasta funkcji SuperDebounce z książki, tyle że tym razem przedstawiony jest jego rozwój od samego zarodka, poprzez jajko aż do końcowej postaci "
jajko! :lol: :lol: :lol:



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: 15 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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