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



Teraz jest 12 lis 2024, o 17:03


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 3 sty 2013, o 17:18 
Offline
Nowy

Dołączył(a): 03 sty 2013
Posty: 14
Pomógł: 0

Witam.


Proszę o pomoc w sprawie niedziałającego przerwania w Attiny45.

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


Program działa tak jak chcę. Procesor po przytrzymaniu przycisku wchodzi w tryb "powerdown" ale już po tym nie mogę go normalnie obudzić przyciskiem.
Wydaje mi się że problem leży po stronie nieumiejętnego dogadywania się bascoma z attiny45.
Ten sam program wgrany do attiny44 działa bez zarzutu.
Może trzeba skonfigurować to przerwanie bezpośrednio na rejestrach ale jak?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2013, o 19:25 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Pier napisał(a):
Ten sam program wgrany do attiny44 działa bez zarzutu.
Może trzeba skonfigurować to przerwanie bezpośrednio na rejestrach ale jak?

To dziwne, bo attiny44 ma dwa rejestry TCCR1A i TCCR1B, a attiny45 tylko jeden TCCR1.
Czy na pewno wiesz co robi ta linia?
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Podobnie możesz ustawić INT0. domyslnie po resecie procesora jest ustawione to przerwanie na Low Level więc wystarczy tylko:
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2013, o 23:00 
Offline
Nowy

Dołączył(a): 03 sty 2013
Posty: 14
Pomógł: 0

Źle się wyraziłem co do tego drugiego kontrolera. Chodziło mi o to że przerwanie w attiny44 dobrze działało program był trochu inny.
Jutro wypróbuję czy taka konfiguracja pomoże.
A wiesz jak skonfigurować pwm w moim programie aby działał odwrotnie?
Bo teraz mam tak że gdy OCR1A =0 to urządzenie sterowane działa na full a chciałbym żeby tak było przy OCR1A=255. Nie wiem jak to się fachowo nazywa i który bit w którym rejestrze za to odpowiada.
A i jeśli Możesz to wskaż mi co to odpowiada za prescaler w tym Pwm-ie.
Pozdrawiam piotr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2013, o 23:48 
Offline
Moderator
Avatar użytkownika

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

Pier napisał(a):
A i jeśli Możesz to wskaż mi co to odpowiada za prescaler w tym Pwm-ie.


Preskaler wszędzie i w każdym trybie będzie odpowiadał za częstotliwość wykonywania się czegoś. Preskaler to dzielnik częstotliwości. Więc przy PWM'ach preskaler również bierze udział w ostatecznej częstotliwości twojego PWM'a

_________________
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  
PostNapisane: 4 sty 2013, o 09:24 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

To nie są tajne dane http://www.atmel.com/Images/doc2586.pdf od strony 86 od 97.
Poniżej wszystkie bity rejestru TCCR1, który ty ustawiasz teraz na 01110001
CTC1 PWM1A COM1A1 COM1A0 CS13 CS12 CS11 CS10
W tym momencie masz COM1A1 COM1A0 = 11, a jak chcesz mieć odwrócony sygnał to wpisujesz wartości 10 na te pozycje.
Do ustawiania preskalera służą 4 ostatnie bity CS13 CS12 CS11 CS10.
Radzę nie stosować instrukcji Bascoma typu Config tylko samemu ustawiać rejestry, bo na rejestrach można zrobić wszystko. Dodatkowo nie polecam ustawiać bitów wprost na rejestrze tylko za pośrednictwem nazw bitów wtedy łatwiej się później analizuje taki program. Przykład podałem wcześniej.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sty 2013, o 10:30 
Offline
Nowy

Dołączył(a): 03 sty 2013
Posty: 14
Pomógł: 0

No po konfiguracji którą Podałeś procesor budzi się z przerwania :D
Mirek ja wiem za co odpowiada prescaler, chodziło mi które bity są za niego odpowiedzialne.
Noty katalogowe czytam namiętnie ostatnio ale co innego czytać a co innego zrozumieć. Jakoś nie bardzo mogę to załapać.
Wielkie dzięki za odpowiedzi.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sty 2013, o 11:32 
Offline
Nowy

Dołączył(a): 03 sty 2013
Posty: 14
Pomógł: 0

Koledzy pomóżcie bo już nie wyrabiam.
Znów nie mogę opanować przerwania int0.
Program wygląda aktualnie tak:
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Problem przerwania INT0 jest taki że po pierwszym włączeniu zasilania bądź resecie procesor wybudza się z powerdown po przerwaniu INT0. Ale gdy już go wprowadzimy w powerdown poprzez przytrzymanie przycisku to wybudzić można go z tego jeszcze przez około 5s a po tym czasie procesor jest jakby martwy aż do kolejnego resetu.

To tak jakby przerwanie INT0 działało tylko 5s a później już nie.

Co może być przyczyną takiego działania?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sty 2013, o 14:53 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Zbigniew Raabe, BASCOM Collage Ćwiczenie 3 napisał(a):
Niekontrolowane przerwania mogą narobić większego bigosu, niż używanie instrukcji GOTO (zgiń, przepadnij, siło nieczysta!).
Radzę wziąć pod uwagę słowa nieśmiertelnego popularyzatora Bascoma w Polsce. Zamiast goto używaj gosub, a każdą procedurę na końcu koniecznie zakończ return i wtedy program będzie przewidywalny.

_________________
Dragonus Cracovus: Biomagia



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


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