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



Teraz jest 9 mar 2025, o 23:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 24 ] 
Autor Wiadomość
PostNapisane: 30 maja 2017, o 21:36 
Offline
Użytkownik

Dołączył(a): 10 gru 2016
Posty: 34
Pomógł: 1

Cześć, chciałem zrobić najłatwiejszy program z wykorzystaniem przerwania INT1 ( ATmega16 ), który po naciśnięciu przycisku inkrementuje w przerwaniu zmienną, która decyduje o zapalanych diodach. Zrobiłem debouncer.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Diody zapalają się w niekontrolowany sposób.



Ostatnio edytowano 30 maja 2017, o 22:27 przez RybaSG, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2017, o 21:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 lip 2012
Posty: 157
Pomógł: 8

Program działa poprawnie ale zapomniałeś o eliminacji "drgań styków" http://mirekk36.blogspot.com/2012/10/dr ... ak-to.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2017, o 22:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

też przejrzałem kod i do takiego wniosku doszedłem jak kolega.
przynajmniej kondka daj pomiędzy INT1 a masę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2017, o 22:02 
Offline
Użytkownik

Dołączył(a): 10 gru 2016
Posty: 34
Pomógł: 1

Zrobiłem debouncer w postaci filtru RC.

Obrazek



Ostatnio edytowano 30 maja 2017, o 22:33 przez RybaSG, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2017, o 22:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

A..... chyba widzę.
popraw połączenia przy klawiszu. klawisz to są dwie odzielne pary styków.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 07:08 
Offline
Użytkownik

Dołączył(a): 10 gru 2016
Posty: 34
Pomógł: 1

Wydaje mi się, że przycisk jest podłączony ok, do lewej pary styków jest podciągnięcie zewnętrzne do zasilania. Po naciśnięciu przycisku drgania powinny być filtrowane, napięcie przechodzi przez filtr i przez niebieski kabelek leci do pinu INT1, który powinien zareagować na zbocze narastające, widać, że reaguje, ale diody wariują.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 07:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Rozumiem że masy stykowki i ardu są połączone.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 07:46 
Offline
Użytkownik

Dołączył(a): 10 gru 2016
Posty: 34
Pomógł: 1

Nie robię tego na ardu tylko ATmega16, zdjęcie tylko gotowe wziąłem gdzie było użyte arduino :DD masy są połączone oczywiście :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 07:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Lepsze byłoby zdjęcie oryginału.
Pozbył bum się tego R3. Bo tworzy się dzielnik napięcia z rezystorem od zasilania.
Właściwie to po co on tu. ?
Wejście pidciagasz pyll-upem programowo do vcc
, a klawiszem zwierasz do masy.



Ostatnio edytowano 31 maja 2017, o 08:31 przez Daro69, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 08:30 
Offline
Użytkownik

Dołączył(a): 10 gru 2016
Posty: 34
Pomógł: 1

Coś jest nie tak z kodem, zrobiłem taki kod prosty :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

I źle działa. Dioda świeci się cały czas.
PA3 zwarłem z PINem INT1



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 08:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Tu chyba machneło się PORT z DDR'em.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 08:39 
Offline
Użytkownik

Dołączył(a): 10 gru 2016
Posty: 34
Pomógł: 1

To znaczy?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 08:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Ok. Jest ok.
Wieczorem mogę pomóc bo teraz jestem w pracy a z doskoku przez telefon mogę coś tylko namieszać.
Dobrze by było gdyby udało się wrzucić tu fotkę twojej płytki .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 13:33 
Offline
Użytkownik

Dołączył(a): 10 gru 2016
Posty: 34
Pomógł: 1

Nie mam czym zrobić tą fotkę, bo nowy telefon jest w drodze. Ogólnie coś jest nie tak z przerwaniem i INT1, bo podłączyłem bezpośrednio PA3 pod diodę i normalnie sobie migała.
Napięcie filtruję, masy połączone, nie wiem co może być nie tak.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 17:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Hejka,
Zrób mały test.
Zaznaczam !!!!! TYLKO DO TESTÓW !!! :)
żeby potem ktoś nie pisał że Daro pakuje delaye do przerwania. ;)
dopisz do swojej obsługi przerwania w pierwszym kodzie - no właśnie. _delay_ms(500); :shock: :shock:
Poważnie. :) i wyciągnij wnioski. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 17:28 
Offline
Użytkownik

Dołączył(a): 10 gru 2016
Posty: 34
Pomógł: 1

Delay w przerwaniu działa. Nie potrafię zrozumieć dlaczego nie działa w pętli głównej ;P



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 18:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

czy mam rozumieć że zaczęło mrugać ?

------------------------ [ Dodano po: 4 minutach ]

Przeczytaj to co kolega k_mirek napisał w poście :
post190030.html#p190030
;).
delay w przerwaniu powoduje że odczytana jest tylko jedena zmiana na klawiszu.
bez tego delaya wciskając klawisz tzw "drgania styków" powodują że przerwanie jest wykonywane wielokrotnie przy jednym naciśnięciu klawisza. ;)



Ostatnio edytowano 31 maja 2017, o 18:22 przez Daro69, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 18:21 
Offline
Użytkownik

Dołączył(a): 10 gru 2016
Posty: 34
Pomógł: 1

Nie w tym jest problem. Uproszczony schemat jaki zrobiłem to : generowanie na jednym pinie sygnału ( PA3 ) w pętli głównej co 500ms, wpinałem to pod przerwanie, a w przerwaniu było miganie diodą <- ten układ nie działał, a pomogło dopiero to co powiedziałeś, jak wrzuciłem delay w przerwanie. Drgania styków nie są teraz problemem, bo nie używam switcha :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 19:43 
Offline
Użytkownik

Dołączył(a): 10 gru 2016
Posty: 34
Pomógł: 1

Podłączyłem pin, który ma generować ten sygnał do oscyloskopu i nic na nim nie ma ( PA3), natomiast na pinie, który ma zapalać diodę w przerwaniu daje 12.5kHz...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 19:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

mam... :)
linijka 24 poierwszego kodu - przyjrzyj się.
MCUCR |= (1<ISC10) ; // reakcja na zbocze opadające "<<"
:)

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

chodzi o operator przesunięcia bitowego ;)

------------------------ [ Dodano po: 1 minucie ]

była reakcja na stan niski.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 19:48 
Offline
Użytkownik

Dołączył(a): 10 gru 2016
Posty: 34
Pomógł: 1

Hahhaha... dziękuję Ci bardzo ;) taka totalna pierdoła, a tyle straconego czasu, dzięki jeszcze raz !



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 19:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Powiem szczersze że przekopiowałem Twój kod i mało włosów z głowy nie wyrwałem ,
Bo też u mnie źle działało.
No w sumie musiało nie działać. :)
A czytałem ten kod kilka razy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 19:52 
Offline
Użytkownik

Dołączył(a): 10 gru 2016
Posty: 34
Pomógł: 1

Nie dziwne, też mnie nerwy ponosiły już na to haha ;) wszędzie błędów szukałem, ale nie tego typu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2017, o 20:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Nawet bez kondka, na gołym przycisku na zestawie ATB rzadko przeskakuje więcej niż jeden. ;)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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