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



Teraz jest 26 maja 2026, o 08:19


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 6 lip 2013, o 14:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 60
Pomógł: 0

Witam.
Dziś postanowiłem napisać program, którego zadaniem byłoby:
- po wciśnięciu klawisza KEY_MORE rozjaśniać diody LED
- po wciśnięciu klawisza KEY_LESS ściemniać diody LED

Założenie było stosunkowo proste i takowe zadanie również wydawało mi się dość łatwe.
Postanowiłem, że skorzystam z procesora Atmega32 (na płytce testowej EvB), wybrałem TIMER2 - tryb CTC. Stwierdziłem, że timer ośmio-bitowy będzie wystarczający. Taktowanie procesora w moim przypadku to 16MHz - również wystarczające, w zupełności. Wbrew moim założeniom prawie nic nie zgrało się z moim planem - krótko mówiąc "ja sobie, diody sobie."
Diody rozjaśniają się powoli (wolniej niż założyłem) i ściemniają po pewnym czasie, nawet dość długim (ok. 1min), ale nie stopniowo lecz nagle. Szukam błędu w kodzie od godziny i nic nie mogę znaleźć, co jest zapewne wynikiem tego, że jestem początkujący. :(

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


Przepraszam za ubogie komentarze, ale program był robiony "na szybko", gdyż miał być to przedsmak zastosowania tego toku myślenia dla wysterowania przerobionego mikroserwa na silnik DC z przekładnią poprzez PWM z mostkiem H (L293D) - 600mA to wystarczająco jak na taki silnik, a specjalne wejście umożliwia sterowanie PWM silnikiem, fajna sprawa, ale co z tego jak program nie działa (po prostu ja go źle napisałem, proszę nie myśleć, że mam pretensje to uC :D).

Moja prośbę kieruję do osób, które mogłyby przejrzeć kod i stwierdzić gdzie mogłem popełnić ew. błąd.
Pozdrawiam, robert95.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lip 2013, o 14:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 maja 2012
Posty: 174
Lokalizacja: Gliwice
Pomógł: 19

Cześć,

w definicji zmień :

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


na :

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



Wejścia/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.


a pętle główną proponuje zrobić tak :

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


no i zmieniłbym to for(;;) na while(1), jakoś tak ładniej wygląda ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lip 2013, o 17:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 60
Pomógł: 0

Wystarczyło tylko zmienić definicje preprocesora dla KEY_MORE i KEY_LESS - rzeczywiście głupi błąd.. Przy sprawdzaniu warunków zawsze był prawdziwy i ot cała tajemnica, dzięki. ;)



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

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