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



Teraz jest 28 mar 2024, o 21:17


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 28 cze 2017, o 22:14 
Offline
Nowy

Dołączył(a): 04 lis 2016
Posty: 2
Pomógł: 0

Witam,
siedzę już nad tym 2 dzień i nie mogę dopatrzeć się co robię źle, dodatkowo nie wiem już czy to problem z programem czy sprzętem na stykówce :/
Założenie mam takie żeby procek po kilku sekundach bezczynności przeszedł w stan uśpienia, a po wciśnięciu przycisku się wybudził.
A działa tak, że dopóki wciskam przycisk to key_press reaguje wydłużając czas do uśpienia, ale jak już się uśpi to się nie budzi, chyba że trzymam przycisk wciśnięty, procek uśnie i dopiero po uśpieniu go puszczę, wtedy się budzi O_o

Funkcja key_press jest tylko testowa, żebym widział co się wykonuje.

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


Do portu PB0 i 3 są podłączone LEDy anodami.

Obrazek

ps. mam problem z dodaniem pliku .sch z eagla że rozszerzenie niedozwolone, a obrazka nie mogę dodać bo nie mam wtyczki flash :/ (linuxowy firefox).
Da się to jakoś obejść? :p



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2017, o 08:02 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Czegoś tu nie rozumiem. Ustawiasz pull-up na pinie procka, spoko. Ale na schemacie który załączyłeś Twój PIN PB4 jest cały czas na niskim potencjale bo go tam ściąga rezystor 220 Om... W dodatku zamiast przyciskiem ściągać PIN do masy przyciskiem, ty dajesz go do plusa... Nakombinowałeś kolego ;)

Zrób tak, C2 zmień na maks 100nF, R5 daj 1k-4.7k i podłącz go bezpośrednio do do plus 5V a R1 daj kilkadziesiąt omów maks 50, i przez przycisk go podaj na masę... żeby zobrazować wrzucam schemat:

Obrazek

Teraz Twój kod mógłby pewnie zadziałać (chociaż nie wiem bo za bardzo go nie analizowałem) ALE masz w nim coś takiego:

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


I wtym momencie Twó debouncing leci na łeb na szyje bo pętla zapiernicza jak dzika i jak nawet wciśniesz przycisk i sprzętowe próbujesz eliminowac drgania styków to i tak szpilki mogą się pojawić. dlatego zmień to na:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


wtedy Ci się flaga wyzeruje po pewnym czasie w momencie przepełnienia i to zagra.

------------------------ [ Dodano po: 9 minutach ]

Jeszcze jedna sprawa, pewny jesteś że PCINTem wybudzisz procka ;) ?

Obrazek


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2017, o 10:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

Z tego co mi się przypomina to wybudzanie może odbywać się tylko stanem niskim, a zgodnie ze schematem stanu takiego raczej nie będzie czyli wszystko działa tak jak powinno - nieprawidłowo...

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2017, o 10:37 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

SylwekK napisał(a):
Z tego co mi się przypomina to wybudzanie może odbywać się tylko stanem niskim, a zgodnie ze schematem stanu takiego raczej nie będzie czyli wszystko działa tak jak powinno - nieprawidłowo...


Z trybu Power Down da się wybudzić procka przerwaniem od zmiany stanu PINu czyli PCIntem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2017, o 11:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

Być może. Mnie nigdy się nie udało czymś innym niż minus na pin :)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2017, o 11:31 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

http://www.avrfreaks.net/forum/waking-d ... only-pcint



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2017, o 14:13 
Offline
Nowy

Dołączył(a): 04 lis 2016
Posty: 2
Pomógł: 0

Dzięki za pomoc jak wrócę do domu to siadam do tego i będę próbował, bo w końcu musi zadziałać ;)

EDIT:
Okej, po przełożeniu przycisku na stronę masy, na stykówce wszystko działa elegancko ;)
Okazuje się że pcint`ami można obudzić attiny13a, też nie byłem pewny ale w nocie stoi INT0 "AND" pin change, to mi zasugerowało że i jednym i drugim można ;)
Mój projekt dalej nie działa tak jak chciałem, bo miałem złe założenia, ale to już kwestia na inny wątek :)
Dzięki za pomoc :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2017, o 19:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Można jednym i drugim tylko INT0 może wybudzić TYLKO stanem masy (choć nota mówi "For INT0, only level interrupt." czyli można by przypuszczać że dodatnim poziomem też ale niestety poziomu dodatniego nie da się ustawić, a można tylko ustawić "Any logical change on INT0 generates an interrupt request." ale na tym ustawieniu attiny się nie wybudza), natomiast PCINT wybudza dowolną zmianą logiczną.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2017, o 19:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

Ano właśnie, bo ja zawsze na INT0 budziłem procki dlatego tylko masa działała :)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2017, o 19:23 
Offline
Moderator
Avatar użytkownika

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

Dlatego wszystkie nowsze procki posiadające PCINT są już chociażby z tego względu dużo lepsze ;) zatem nie warto inwestować w ATmega8 tylko w ATmega88 ;) i podobne - byle posiadały PCINT ;)

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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