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



Teraz jest 11 lut 2025, o 08:55


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
 Tytuł: Miganie ledami
PostNapisane: 3 sty 2019, o 23:40 
Offline
Nowy

Dołączył(a): 03 sty 2019
Posty: 2
Lokalizacja: Gdańsk
Pomógł: 0

Witam, poprosił bym o pomoc w zakresie bardzo podstawowym, poniżej udało się wszystko podłączyć i zaprogramować układ Atmega 8A-PU ale nie mogę sobie poradzić w którym miejscu wstawić niwelację drgań styków (oczywiście chciałbym zrezygnować z funkcji delay).

Z góry dziękuję.

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sty 2019, o 07:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lis 2012
Posty: 298
Pomógł: 13

A to czytałeś?
http://mirekk36.blogspot.com/2012/10/dr ... ak-to.html

Jak jesteś niecierpliwy, to gotowiec obsługi drgań w drugiej części.
A jak dalej nie będziesz wiedział, to pisz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sty 2019, o 12:01 
Offline
Użytkownik

Dołączył(a): 05 lis 2013
Posty: 353
Lokalizacja: Kraków
Pomógł: 6

Też jestem początkujący, ale może coś doradzę.
Moje uwagi do kodu

1. Po co Ci i=0; w linii 35 i 42?
2. Zmienną i z 25 linii wyrzuciłbym do 36 i 43 linii i dał for( uint8_t i=0; i<9; i++ )
nigdzie więcej tego nie używasz
3.co do drgań styków to najprościej na początku while(1) dałbym sprawdzenie przycisku
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

wcześniej oczywiście trzeba zadeklarować time_btn np uint8_t
i byłoby to czytelniej i wywalić to z funkcji i w ogóle wywalić funkcję. Sprawdź to czy to zadziała bo piszę na kolanie.
Ale możesz też skoczyć do linka co podał zoom i zrobić wypasioną funkcję do obsługi drgań styków.
Ja tutaj dałem czas 50 ale możesz dać większy czas lub mniejszy - dobierzesz w zależności od prędkości procesora.
Teoretycznie takie zapytanie powinno się wykonać jeśli naciśniesz przycisk oraz zmienna time_btn równa się zero żeby uprościć to możesz napisać & !time_btn zamiast (time_btn ==0) ale tak jest czytelniej.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2019, o 00:02 
Offline
Nowy

Dołączył(a): 03 sty 2019
Posty: 2
Lokalizacja: Gdańsk
Pomógł: 0

Dzięki za pomoc, program został przepisany od Mirrek36 z youtube, obecnie po wprowadzeniu i zadeklarowaniu btn, program działa, lecz po wciśnięciu przycisku, zatrzymuje się w miejscu tzn. pierwsza dioda świeci stale. Czy coś źle wpisałem?

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  
PostNapisane: 6 sty 2019, o 20:23 
Offline
Użytkownik

Dołączył(a): 05 lis 2013
Posty: 353
Lokalizacja: Kraków
Pomógł: 6

W funkcji mk_delay_ms masz obsługę przycisku oraz w funkcji while masz drugi raz powtórzoną - po co? Napisałem Ci że jak do while wrzucasz obsługę przycisku to trzeba wywalić z funkcji lub wywalić całą funkcję bo teraz nie jest potrzebna



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

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