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



Teraz jest 1 kwi 2026, o 23:00


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 5 mar 2015, o 04:18 
Offline
Nowy

Dołączył(a): 05 mar 2015
Posty: 13
Pomógł: 0

Witam,

Mam problem z przykładem z książki z przerwaniami. Chodzi o multipleksowanie LED.
Napisałem program po swojemu - nie działa. Grzebałem ile się da - i nic. W końcu przepisałem prawie żywcem program z książki i dalej nic.
Zaraz roz***lę to wszystko.

Używam Atmega328p, plusy mam podpięte pod rejestr C, a katody pod rejestr D.
Kod programu d_led.c:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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


Jak widać poza samym ustawianiem bitów dla poszczególnej liczby nic się ten kod nie różni od tego z książki. (No, poza procesorem).
Siedzę nad tym głupim przerwaniem już całą noc.
Na samym początku obsługi przerwania wystawiam stan wysoki na PB0 - tam podpiąłem diodę i chciałem sprawdzić, czy program w ogóle wchodzi do obsługi przerwania. No i nie wchodzi.

Proszę o pomoc. Dlaczego to nie działa?

Pozdrawiam.



Ostatnio edytowano 5 mar 2015, o 11:25 przez trolodk, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 mar 2015, o 08:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 maja 2014
Posty: 317
Pomógł: 19

Tak na szybko to chyba masz błąd w pliku d_led.c

Zamiast:
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.


Pozdrawiam! j23

P.S. Jak możesz to zaznacz ten kod jeszcze raz (edytuj) i wybierz z listing kodu: SYNTAX wybierz -> język C, co by Kolegi Jaglarz'a z rana nie wnerwiać ;)

_________________
"O sygnałach bez całek" Czesław Frąc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 mar 2015, o 11:28 
Offline
Nowy

Dołączył(a): 05 mar 2015
Posty: 13
Pomógł: 0

j23 napisał(a):
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.



Faktycznie, powinno być 1. Niestety nic to nie zmieniło. Co do negacji zmiennej licznik to nie w moim przypadku, bo nie użyłem tranzystorów.
Poza tym na samym początku w obsłudze przerwania jest zapalenie diody, która się nie zapala. Czyli jeśli dobrze rozumiem, to program nawet nie wchodzi w obsługę przerwania.

Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 mar 2015, o 11:50 
Offline
Użytkownik
Avatar użytkownika

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

trolodk napisał(a):
Czyli jeśli dobrze rozumiem, to program nawet nie wchodzi w obsługę przerwania.
Tak, bo timerek nie tyka :)
Masz:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

A bity CS0...CS02 dotyczące prescalera są w rejestrze?? No jakim?? :)
Rzuć okiem do datasheet od twojego uC, popraw nazwę rejestru, a timerek0 ruszy.


Autor postu otrzymał pochwałę

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 mar 2015, o 12:10 
Offline
Nowy

Dołączył(a): 05 mar 2015
Posty: 13
Pomógł: 0

Faktycznie, Jezu jakie to był głupi błąd... -.-' a przeglądałem to wczoraj, widocznie o tej godzinie już nie myślałem.
Dzięki za pomoc, już wszystko śmiga.

Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 mar 2015, o 13:45 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

trolodk napisał(a):
Faktycznie, Jezu jakie to był głupi błąd..

Dlatego po raz pierwszy i ostatni widzę na tym forum tego typu wpis

trolodk napisał(a):
Zaraz ro*****ę to wszystko.

proszę żeby kolega sobie to zapamiętał, tym razem ujdzie to na sucho ponieważ jest kolega jak widzę nowym użytkownikiem

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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