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



Teraz jest 21 cze 2026, o 06:43


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 31 mar 2014, o 07:36 
Offline
Użytkownik

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

Witajcie.

Napisałem program do urządzenia do samochodu, żeby po krótkim naciśnięciu manetki kierunkowskazów dorobił jeden długi sygnał (komputer BSI to przerobi na 3 błyśnięcia kierunkami)
Nie mogę nigdzie znaleźć błędu w programie - a błąd polega na tym, że po krótkim wyzwoleniu kierunku zapalamy wyjście i zaczyna odliczać czas (powiedzmy w sekundach) t1 od 0 do 6 do wyłączenia. Jeśli jednak w czasie kiedy t1 jest od 0 do 6 naciśniemy manetkę kierunku i przetrzymamy aż t1 dojdzie do 7 to robi się echo i mimo, że jest warunek, który ma ignorować ponowne naciśnięcia manetki to tego nie robi
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


i takie jeszcze pytanie bardziej z ciekawości, bo tutaj nie potrzebuje dokładnego czasu - jak ustawić, żeby mieć dokładnie co 1sek impuls.
F=9,6MHz

Teoretycznie ustawiając Prescaler na 64 a OCR0A na 150 powinienem mieć impuls sekundowy, a niestety tak nie jest
9600000 / 64 / 150 = 1000Hz
i teraz przy uint16_t = 1000 powinien być impuls sekundowy. a tak naprawdę poniższy program ustawiony jest na około 90 impulsów na minutę a zmienne są 8 bitowe.


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: 31 mar 2014, o 08:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 600
Pomógł: 47

Tak strzelam.
ale może spróbuj tak:
if( (!key_lock1) && (!(PINB & KEY_PIN1 )) && (t1 > 6) )

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2014, o 22:58 
Offline
Użytkownik

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

No niestety to nic nie daje.

Zmieniłem teraz sposób obsługi przycisków i działa, ale pojawia się nowe pytanie.

Dlaczego po naciśnięciu na raz klawisza KEY1 i KEY2 na ułamek sekundy załączają się wyjścia?

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


Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2014, o 22:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Zapewne dzieje się tak bo funkcja key_press() nie ma zabezpieczenia przed jednoczesnym wciśnięciem kilku klawiszy naraz.
Jeśli wciśniesz oba naraz to najpierw wykona się
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i włączy pierwszą diodę, potem wykona się
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i włączy drugą diodę.
A chwilę po tym wykona się
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

i wyłączy obydwie diody.
Żeby się o tym przekonać wstaw dla testu dwa opóźnienia w ten sposób
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W ten sposób powinno być widać jak najpierw włącza się jedna dioda, potem druga a następnie obydwie gasną.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2014, o 08:10 
Offline
Użytkownik

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

dlatego dałem ten warunek przed wywołaniem tamtych funkcji.
Ale nieważne - BSI samochodu nie widzi tego mignięcia.

Mam teraz inny problem, ale opiszę w osobnym wątku



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 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