Attiny26 i PWM w Bascom

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Attiny26 i PWM w Bascom

Post autor: M@ciej » 11 sty 2010, 13:15

Witam.

Chcę skonfigurować PWM na OC1A w Bascomie pod Attiny26. Pisząc kod:

Kod: Zaznacz cały

$regfile = "Attiny26.dat"
$crystal = 1000000

 Config Portb.1 = Output 
 Reset Portb.1

Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down 

pwm1a = 64 'zgłasza błąd Assigment Error
Compare1a = 64 'zgłasza błąd Assigment Error
OCR1a = 64 'nie zgłasza błędu, ale PWM nie działa i na wyjściu jest stale 5V

Do
Loop
End
Nie dość, że czepia się do konfiguracji (jak wywale ", PWM=8") to kompiluje kod, to jeszcze nie da się ustawić wypełnienia. Mam najnowszą wersję Bascoma 1.11.9.8 .

We wszystkich przykładach jest podany sposób konfiguracji i sterowania PWM a mi nie działa.
Ostatnio zmieniony 11 sty 2010, 21:07 przez M@ciej, łącznie zmieniany 1 raz.

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 11 sty 2010, 19:09

Bo Bascom beznadziejnie obsługuje procesory rodziny TINY nie mówiąc wprost wcale. Wynika to między innymi z tego że sama rodzina Tiny to jeden wielki bajzel, i poszczególne procesory nie są zgodne z sobą konstrukcją Timerów. Jedyne wyjście to wziąść sobie notę katalogową, i ręcznie sterować timerami, wpisując odpowiednie dane do rejestrów sterujących. Jeżeli mówisz o przykładach z Helpa Bascoma, nie wiem czy je wszystkie kiedyś ktoś wypróbował czy w ogóle działają, szczególnie dla procesorów Tiny. Zresztą jak dobrze pamiętam nawet w samym Helpie jest napisane, że Bascom nie wspiera w pełni procesorów Tiny. I nie należy się sugerować tym że dany proc można wybrać w opcjach kompilatora.
Przynajmniej ja miałem problemy z każdym Tiny jaki programowałem w Bascom, jakoś tam się wykaraskiwałem potem z tego, studiując noty, ale nie jest to najprzyjemniejsze programowanie.

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 11 sty 2010, 21:06

Tak myślałem. Podobne problemy miałem kiedyś z Attiny13. Przykłady o które mi chodziło znajduję wszędzie w necie a także w książce M. Wiązani. Tylko że te przykłady są pod Atmegi (Atmega8, Atmega16). Jak się wpisze w definicji

$Regfile="m8def.dat"

to wszystko śmiga, natomiast prosta zmiana dyrektywy na:

$regfile="At26def.dat" wywraca program do góry nogami.

Tak więc albo pokombinuję z Attiny26 i pogmeram w rejestrach, albo zmienię procka na Atmega8 - są w podobnej cenie.

W każdym razie dzięki za info :)

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 11 sty 2010, 23:20

ja programuję z bascoma attiny 2313 i nie mam najmniejszego problemu z żadnym timerem. wszystko działa jak należy. może dla mniejszego tiny byłby problem. nie wiem.

ODPOWIEDZ