Bascom nie chce skonfigurować Timer2.

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

Bascom nie chce skonfigurować Timer2.

Post autor: M@ciej » 04 lis 2007, 22:14

Mam pewien problem:

Bascom nie potrafi poprawnie skonfigurować Timer2 - wykazuje błędy gdy chcę użyć "Compare2":

Kod: Zaznacz cały

$regfile = "m16def.dat"                                     'Poinformowanie, ze uzywamy Atmega16
$crystal = 12000000                                         'Generator 12 MHz

Config Timer2 = Pwm , Pwm = On , Prescale = 64 , Compare Pwm = Clear Up       'konfiguracja kanalu PWM 

Enable Timer2

Compare2=0 'TU POJAWIA SIE BLAD "Asignment error"
Udaje mi się za to skonfigurować Timer0 i użyć Compare0. ale tu znowu kolejna zagadka: Gdy chciałem skonfigurować Timer0, nie pozwolił z preskalerem 64, mim o, że napisał, iż dopuszczalne są 1,2,8,64(?)....

O co tu chodzi? Posiadam wersje Bascoma 1.11.8.1

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 04 lis 2007, 22:44

Może spróbuj w ten sposób:

Kod: Zaznacz cały

$regfile = "m16def.dat"
$crystal = 12000000

DDRD.7 = 1    'PD.7 jako wyjście

TCCR2 = &B01110100     'Pwm = On, Prescale = 64, Clear Up

OCR2 = jakaś tam wartość...
Po pwenym czasie polecenia bascom'owe zaczęły mnie dobijać i wszelkie konfiguracje przeprowadzałem wpisując (wg danych katalogowych) odpowiednie wartości do rejestrów I/O.

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

Post autor: M@ciej » 04 lis 2007, 23:06

Dzięki Ddevil :)

Teraz zadziałało i nie muszę przerabiać płytki,bo mam już wyjście PWM wydrukowane na PD.7.

ZbeeGin

Post autor: ZbeeGin » 05 lis 2007, 6:56

M@ciej pisze:O co tu chodzi? Posiadam wersje Bascoma 1.11.8.1
Jakbyś zainstalował nowszą wersję to cały taki zapis jak w Twoim programie by przeszedł.
M@ciej pisze:Enable Timer2
Zupełnie niepotrzebnie włączasz możliwość zgłaszania przerwań z licznika. I tak nie wykorzystujesz przerwań.

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

Post autor: M@ciej » 05 lis 2007, 13:40

To nie trzeba dawać "Enable Timer1" i "Enable Timer2"? przy PWM?

Jeszcze jedno: co oznaczają poszczególne bity w rozkazie TCCR2? Rozumiem, że można tą samą drogą skonfigurować takż epozostałe Timery? Gdzie można to znaleźć?
Spodobał mi się ten sposób konfiguracji i chciałbym go zrozumieć.

ZbeeGin

Post autor: ZbeeGin » 05 lis 2007, 17:59

M@ciej pisze:To nie trzeba dawać "Enable Timer1" i "Enable Timer2"? przy PWM?
Enable służy do włączania poszczególnych źródeł przerwań -> patrz help PL. Jeśli skonfigurujesz licznik i znajdzie się tam opcja Prescale to licznik rusza i pracuje w trybie ustalonym resztą bitów swojej konfiguracji. To nie jak w BASCOM 8051 gdzie trzeba było dodatkowo włączać licznik przez Start Timer0. Choć było to przydatne w niektóych sytuacjach.
M@ciej pisze:Jeszcze jedno: co oznaczają poszczególne bity w rozkazie TCCR2? Rozumiem, że można tą samą drogą skonfigurować takż epozostałe Timery? Gdzie można to znaleźć?
Wszystko możesz wyczytać w nocie katalogowej. Może to nie jest łatwe bo jest tam pewne zamieszanie z tym związane - np. te same bity mają inne znaczenie w poszczególnych trybach (czytaj: Compare vs Capture). Ale autorzy noty podzielili ją na działy i tak im było przyjemniej.

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 05 lis 2007, 18:02

M@ciej pisze:To nie trzeba dawać "Enable Timer1" i "Enable Timer2"? przy PWM?
A po co? To są przerwania dotyczące przepełnienia licznika. Ty natomiast używasz trybu PWM, a to już jest inna sprawa.
M@ciej pisze: Jeszcze jedno: co oznaczają poszczególne bity w rozkazie TCCR2? Rozumiem, że można tą samą drogą skonfigurować takż epozostałe Timery? Gdzie można to znaleźć?
Spodobał mi się ten sposób konfiguracji i chciałbym go zrozumieć.
Wszystko znajdziesz w kartach katalogowych poszczególnych układów. Np. tu:
http://www.alldatasheet.com/
http://www.datasheetcatalog.com/

ODPOWIEDZ