avatar wrote: Witam czy ktos moze mnie oswiecic w jaki sposob zapisac wartosc do rejestru Counter1 pod bascomem ?
Mam taki prosty program i za nic w siecie bascom nie che go lyknac
.............
I taki oto blad
ASSIGNMENT ERROR line 8
Procesor ma ten timer w sobie.
Jezli to wina bascoma to w jaki sposob zapisac ta wartosc z poziomu jakiejs wstawki assemblerowj ?
Nie jest to wina Bascom ani nie ma też potrzeby na wstawki assemblerowe w tak błahym i wyjatkowo "obłędnym" zastosowaniu timera AVR.
Po pierwsze; jak już wyżej ktos nadmienił mieszasz rejestr timera1 z counterm1. Chociaż jest to ten sam licznik i nawet gdyby compiler to zaakceptował, to dla śledzenia sensu i ciągłości programu należy stosować odpowiednie nazwy rejestru dla zadanej procedury. Timer dostaje impulsy z zegara taktującego processor, lub oddzielnego rezonatora kwarcowego; (zaleznie od processora i rodzaju timera), poprzez odpowiedni współczynnik/prescaler, (tu wymagana odpowiednia konfiguracja timeraX); natomiast counter może dostawać impulsy z zewnątrz bez prescalera poprzez odpowiedni port/pin.
Popatrz jeszcze raz na swój program: Stosujesz tam instrukcje 'nop', która jest właściwe instrukcja assemblerową a Bascom ją supportuje tak jak kilka innych również stosowanych w C.
Co ta instrukcja wnosi do twojego programu?
-NIC - jest to absolutna strata czasu processora - w tym wypadku zbędna (niekiedy procedury wymagają pewnego 'spowolnienia' processora lub odczekania pewnego przedziału czasu).
Dalej, jeżeli już używasz timera (nie ważne którego) w trybie 'Normal' to do poprawnej jego pracy zachodzi potrzeba za każdym razem użyc processora aby 'załadował' jego rejestr (licznik) wartością początkową od której ma liczyć czas/impulsy aż do jego pełnej pojemności (przepełnienia).
Procedurę tą umieszcza sie w przerwaniu od Ovf1, ponadto skoro deklaruje sie takie przerwanie to w nim zwykle znajduje się coś więcej - cel tego przerwania np: incrementowanie jakiejs zmiennej, stawianie flagi itp.
A co w twoim programie zawiera przerwanie?
NOP czyli nic (No OPeration).
Sprubuj zapoznać sie z takim małym calculatorem dla Timerów AVR.
Tam masz dla każdej opcji dowolnego timera 'ramowy' przykład programu z objaśnieniami.
A oto darmowy link:
http://www.planet-ian.com/start_e.htm
W categorii 'Software tools' znajdziesz: AVR Timer 1.25
Powodzenia
e marcus