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



Teraz jest 23 mar 2026, o 04:30


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 27 paź 2015, o 11:27 
Offline
Nowy

Dołączył(a): 27 paź 2015
Posty: 6
Pomógł: 0

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


Panowie/Panie bardzo prosty przykład na zrozumienie Timerów sprzętowych dostępnych w atmega8a.

Opis problemu:
Po załadowaniu programu diody podpięte do PORT B zaczynają świecić po 1 sekundzie - warunek if(a==200) jednak po upływie kolejnej sekundy if(a==400) diody nie gasną.
Proszę pomóżcie początkującemu :)

Pozdrawiam



Ostatnio edytowano 27 paź 2015, o 11:35 przez mateusz1364, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2015, o 11:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 448
Lokalizacja: DKL
Pomógł: 53

Popraw kolego wstawiony kod, użyj do tego znacznika syntax=c bo tego się nie da przeczytać.

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2015, o 11:35 
Offline
Nowy

Dołączył(a): 27 paź 2015
Posty: 6
Pomógł: 0

Składnia poprawiona.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2015, o 11:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 mar 2014
Posty: 334
Lokalizacja: Rybnik
Pomógł: 55

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

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


Autor postu otrzymał pochwałę

_________________
Amatorska stacje meteorologiczna



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2015, o 11:43 
Offline
Użytkownik

Dołączył(a): 10 lip 2015
Posty: 334
Pomógł: 32

Zmienna "a" nie powinna mieć specyfikatora volatile?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2015, o 11:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 448
Lokalizacja: DKL
Pomógł: 53

Dawno już się nie bawiłem AVR-ami, ale wydaje mi się że tu masz błąd logiczny:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Skoro już działasz na całym porcie bez przesunięć bitowych dla poszczególnych pinów, to operacja logiczna OR w twoim przypadku chyba nie zadziała właściwie. Wg. mnie zobacz tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2015, o 11:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 mar 2014
Posty: 334
Lokalizacja: Rybnik
Pomógł: 55

HomoChemicus napisał(a):
Zmienna "a" nie powinna mieć specyfikatora volatile?


Nie zmienna "a", tylko zmienna "b".

_________________
Amatorska stacje meteorologiczna



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2015, o 11:55 
Offline
Użytkownik

Dołączył(a): 10 lip 2015
Posty: 334
Pomógł: 32

No tak, myślałem o b, a napisałem a. ;-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2015, o 12:07 
Offline
Nowy

Dołączył(a): 27 paź 2015
Posty: 6
Pomógł: 0

Tak macie rację teraz program działa.
Mam jeszcze jedno pytanie: co zrobić kiedy mam tylko 2 piny obsługujące przerwania zew. a chce użyć 3 przycisków jako wywołanie przerwań. Czy jest jakiś sposób oprócz wymiany mikrokontrolera?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2015, o 12:31 
Offline
Użytkownik

Dołączył(a): 19 sty 2014
Posty: 83
Pomógł: 2

Tak naprawdę wystarczy jedno przerwanie w którym ustawisz flagę a w pętli głównej sprawdzisz który jest przyciśnięty. Nie zapomnij o drganiach styków.


Autor postu otrzymał pochwałę


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ł: Google [Bot] 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