logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Symulacja Timer1 w Bascom na ATtiny2313 - brak przerwań, Timer0 działa

remzibi 28 Kwi 2006 15:38 1248 4
REKLAMA
  • #1 2570968
    remzibi
    Poziom 24  
    Posty: 1393
    Pomógł: 34
    Ocena: 887
    Witam , mam kawalek kodu i zauwazylem , ze w symulatorze programu nie wykonuje mi przerwania na timer1 , timer0 dziala bardzo dobrze i symulator go symuluje .
    Oto programik

    $regfile = "attiny2313.dat"
    $crystal = 8000000

    Config Portb = Output
    Config Portd = &B1111000

    Dim Adres As Word , Adh As Byte , Adl As Byte , T1pom As Byte
    Dim I As Byte , T As Byte
    Dim Danal As Byte , Danah As Byte
    Dim T1 As Word

    Config Timer0 = Timer , Prescale = 1
    On Timer0 Tim0

    Config Timer1 = Timer , Prescale = 8
    On Timer1 Tim1

    Config Int0 = Falling
    Enable Int0

    Enable Timer1
    Enable Timer0
    Enable Interrupts

    I = 1
    T = 1

    Start Timer1

    Do
    Loop

    End 'end program

    Tim1:
    Incr T1pom
    Return

    Tim0:
    Incr I
    Return

    W zmiennych w symulatorze przy przepelnieniu timer0 jest wykonywana etykieta tim0 i I jest zwiekszana , natomiast przy przepelnieniu timer1 strzalka jakby idzie na poczatek ale nie ma skoku do etykiety tim1 i t1pom nie jest zwiekszana - (caly czas zero) .
    Poniewaz szukam bledu w programie - nie wiem czy to wina symulatora - czy program zeczywiscie w procu sie tak wykonuje i dlaczego .
    Dodam , ze inne programiki na inne procki rozpatrywalem teoretycznie i dzialaly , nawet nie musialem sie mocno posilkowac symulatorem .
    Przy wyzwoleniu recznym OVF1 skok nastepuje - co jest grane ?
    bascom ver 1.11.8.1

    Jest to bug w bascomie - tak wynika z lektury forum bascoma .
    W procu dziala prawidlowo .
  • REKLAMA
  • #2 2581031
    petione
    Poziom 17  
    Posty: 335
    Pomógł: 18
    Ocena: 23
    Niestety Bascom jest niedorobiony. Ilez to ja niekiedy spedzilem czasu bo cos mi nie chodzilo. Co wersja to inny blad. W jednej wersji nie chodzily mi np. timery na Atmega 16, prescaler blednie sie ustawial itp. Warto jest podgladnac rejestry i sprawdzic czy aby Bascom nie wpisal tam glupot. Jesli wpisal glupoty a to najczesciej jest przyczyna probowac wpisac samemu poprawne wartosci.
    Innymi rodzajami bledow sa wlasnie takie jak Ty opisales.
    Moze kiedys zrobia Bascoma tak jak nalezy bo idea takiego kompilatora naprawde jest dobra.
  • REKLAMA
  • #3 2584305
    cyberdar
    Poziom 31  
    Posty: 1465
    Pomógł: 161
    Ocena: 73
    Witam

    Przyznam szczerze, że właściwie nie miałem problemów z timerami w Bascomie (większych) jednak w zamieszczonym programie nie podoba mi się sposób deklaracji zmiennych. Dlaczego tego nie porozbijać na osobne linijki ? W dodatku pomieszane typy zmiennych...

    --
    pozdrawiam
  • REKLAMA
  • #4 2584353
    jacobsek
    Poziom 22  
    Posty: 419
    Pomógł: 61
    Ocena: 24
    Rozbicie na osobne linijki to tylko poprawi przejrzystość,podobnie jak pogrupowanie zgodnie z typami ale nie będzie to miało to wpływu na działanie tajmerów.
    Pozdrawiam.
  • #5 2585135
    remzibi
    Poziom 24  
    Posty: 1393
    Pomógł: 34
    Ocena: 887
    Jak wspomnialem - symulacje timerow na jednych procach chodza dobrze a na innych zle - i jest to niestety wada bascoma . Na tiny2313 chodzi zle timer1 .
REKLAMA