Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Dziwne zachowanie Timera w Bascom

alexiel 18 Feb 2004 09:40 1451 8
  • #1
    alexiel
    Level 15  
    Witam wszystkich
    Czy może mi ktoś takie dziwne zachowanie timera.
    konfiguracja
    config timer0=timer ,gate=internal , mode=0
    czyli licznik 16bitowy z programowym ładowaniem początkowej wartości
    wpisuje wartość 10000 bo chce mieć przerwanie około 10ms przy Xtal 12Mhz
    czyli robie tak
    Load timer0 , 10000


    po czym wrzucam go do avsima i co widze TL0=F0 i TH0=F0
    czy może mi ktoś wyjaśnic cosie z tym dzieje
    byłbym wdzięczny bo wprzeciwnym przypadku albo nie rozumiem Bascoma albo ten program coś kopie.
    Kamery 3D Time of Flight - zastosowania w przemyśle. Darmowe szkolenie 16.12.2021r. g. 10.00 Zarejestruj się
  • #2
    alexiel
    Level 15  
    Pomyliłem się powinno być
    Config timer0 = timer , gate = internal , mode = 1
  • #3
    slawko_k
    Level 34  
    no to moze olej komene load i po porstu
    tl0=&H10
    th0=&H27
  • #4
    radek.kaba
    Level 15  
    Jeżeli chodzi o sumulatory Bascoma AVR i 8051 to nie nalęży im za bardzo wierzyć w podawane czasy,
    jężeli przerwanie miało być wywołane np. co 10ms, Bascom mówi 15 to należy go olać i wierzyć we własne obliczenia (o ile są poprawne).
  • #5
    szymtro
    Level 30  
    komenda load działa tylko w trybie 2(8 bitów z rzeładowaniem hardare'owym). przekazywanie zmiennych większych jak bajt działa tylko z timer2(89c52 i podobne). Tak więc jeżeli spróbujesz załadować 10000 w osiem bitów to mogą być różne efekty. Jeżeli już musisz stosować licznik 16 bitowy(tryb 1) to na początku przerwania tajmera dodaj ładowanie liczników na nowo, np:

    przerwanie_tajmera0:
    tl0=99:th0=FE
  • #6
    W.K
    Level 15  
    W Bascomie AVR jest taka ciekawostka: Load timer1 ,100 - działa błędnie
    Load timer1,zmienna - działa prawidłowo!
    dla timer0 jest odwrotnie(ze zmienną nie działa)
    Np. w symulatorze Bascom AVR:

    Dim X As Word
    Config Timer1 = Timer , Prescale = 8
    Load Timer1 , 100 ' timer1 = 156
    X = 100
    Load Timer1 , X ' timer1 = 65436
    nop
    nop
  • #7
    alexiel
    Level 15  
    Dzieki wszystkim za zainteresowanie. Poszperałem wczoraj wieczorem i znalazłem że w mode=1 wartość ładuje się instrukcją 'counter [0,1]=wartość lub jak koledzy napisali np. tl0=&h5f th0=&h45, a load działa tylko w mode=2.


    Mam nowe pytanie przy kofiguracji takiej:

    Config timer0=counter , gate=internal , mode=1
    powinien zliczać impulsy podawane na pin P3.4 czyli T0 a on oczywiście po podanie niskiego poziomu na to wejście uruchamia licznik i zlicz dopuki jest stan niski na tym pinie a może inaczej zliczać ilość impulsów zewnętrznych może macie jakieś pomysły w tej materii....
  • #8
    slawko_k
    Level 34  
    config timer0 ................ edge=falling ..............
  • #9
    alexiel
    Level 15  
    Mógłbyś napisać całą konfiguracje tego timera
    będe wdzięczny.
pcbway logo