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



Teraz jest 30 mar 2026, o 20:00


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 16 mar 2013, o 16:54 
Offline
Nowy

Dołączył(a): 16 mar 2013
Posty: 19
Pomógł: 0

Witam po raz pierwszy na forum.
Mam jakiś dziwny problem z PWM na procesorze Atmega16, a mianowicie pwm w ogóle nie działa z przerwaniem ISR( TIMER2_COMP_vect ) tak jak by przerwanie nigdy się nie dokonywało natomiast z ISR( INT2_vect ) które wpisałem na początku przez pomyłkę działa, jednak program się nie wykonuje.

Program

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




Fusy:
low C4
high D9

Schemat:
Obrazek

Proszę o pomoc w znalezieniu problemu, z góry dziękuje.
Pozdrawiam


Kody wstawiamy przy pomocy [syntax=c] - Zielony J.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 mar 2013, o 17:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 lut 2013
Posty: 223
Zbananowany użytkownik

Pomógł: 21

Według mnie nie będziesz mieć tu przerwania od COMP (compare - porównanie), a od OVF (overflow - przepełnienie). Ale CTCków nigdy nie przerabiałem - sprawdź to jednak mimo to.

I nie pisz tak:
while(1)
{

pwm1 = 250;
pwm2 = 5;

}

A tak:

pwm1=250;
pwm2=5;
while(1);

Przy czym zmienne te pracują jako stałe więc powinny być raczej definicja preprocesora.

_________________
Nie pisz komentarzy - dobry kod komentuje się sam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 mar 2013, o 17:20 
Offline
Nowy

Dołączył(a): 16 mar 2013
Posty: 19
Pomógł: 0

Dzięki za odpowiedź.
Zrobiłem tak jak pisałeś, niestety dalej to samo.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 mar 2013, o 19:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 gru 2012
Posty: 72
Pomógł: 6

Jaki obaw że nie działa?

------------------------ [ Dodano po: 14 minutach ]

U mnie działa ten kod jak lala.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 mar 2013, o 19:49 
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

Radzę odpiąć AREF do VCC, bo jak zaczniesz się bawić przetwornikiem to możesz sobie narobić kłopotu.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 mar 2013, o 20:22 
Offline
Nowy

Dołączył(a): 16 mar 2013
Posty: 19
Pomógł: 0

Dziękuje za zainteresowanie

tom1988p napisał(a):
Jaki obaw że nie działa?

------------------------ [ Dodano po: 14 minutach ]

U mnie działa ten kod jak lala.


Zupełnie żadnej reakcji diod. Uruchamiałeś program na fusach które podałem? Jeśli nie to na jakich?
Wszystko mam polutowane na płytce dokładnie sprawdziłem powinno być OK.

------------------------ [ Dodano po: 4 minutach ]

Dziwne jest to że z przerwaniem ISR( INT2_vect ) PWM zaczyna działać jednak program staje(to chyba normalne). Może uszkodziłem w jakiś sposób procka?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 mar 2013, o 20:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 gru 2012
Posty: 72
Pomógł: 6

Kolego sympatyczny a w jaki sposób on się zatrzymuje? Jak on nic innego nie robi jak stałe pwm generuje...
Uruchomiłem go na M16 kwarc 11,0592, fusy low FF high D9



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 mar 2013, o 21:12 
Offline
Nowy

Dołączył(a): 16 mar 2013
Posty: 19
Pomógł: 0

Pętla główna przestaję się wykonywać. Na kwarcu to samo.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 mar 2013, o 21:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 gru 2012
Posty: 72
Pomógł: 6

No bo co w tej pętli ma się wykonywać? Ustawia ciągle pwm1 i pwm2 na te same wartości co w poprzednim przebiegu.
Proszę o to troszeczkę zmodyfikowany kod twój, zmień w definicjach ustawienia.
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: 16 mar 2013, o 21:36 
Offline
Nowy

Dołączył(a): 16 mar 2013
Posty: 19
Pomógł: 0

Dzięki za kod! Nie wiem co jest grane ale winą jest widocznie źle skonfigurowane środowisko eclipse, po zaprogramowaniu w winavr wszystko śmiga jak należy. Muszę obejrzeć jeszcze raz poradnik o konfiguracji Mirka.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 mar 2013, o 21:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 gru 2012
Posty: 72
Pomógł: 6

Chwila. Może po prostu masz zaznaczony w eclipse inny projekt niż ten nad którym siedzisz. Tu piszesz jeden a wgrywasz inny. To ból eclips'a.
WinAVR ma przewagę że wgrywa ten wsad z którego jest aktywna karta z kodem który aktualnie piszemy.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 mar 2013, o 12:31 
Offline
Nowy

Dołączył(a): 16 mar 2013
Posty: 19
Pomógł: 0

Coś było nie tak z projektem, zrobiłem nowy, skopiowałem main.c, zbuildowałem i działa.
Dziękuje za pomoc.
Pozdrawiam



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

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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO