Nem tudok számolni?

Papp Zoltán zombi at c2.hu
Fri Jan 19 15:14:09 CET 2007


Friedrich Gábor írta:
> Üdv!
> Az alábbi Bascom kódnak számolásom szerint a PD6 kimenetet
> 7372800/(256*64)-gyel kellene billentenie,
> ehelyett kb. 1Hz-el billeg.
> Hol a hiba?
> Köszi
> Fidó
>
>
>
> $crystal = 7372800
> $regfile = "Attiny2313.dat"
>
> Dim Szamlalo As Byte
> Szamlalo = 64
>
> Config Timer0 = Timer , Prescale = 256
> On Timer0 Megszakitas
>
> Enable Interrupts
> Enable Timer0
>
> Config Portd.6 = Output
>
> Do
> Loop
>
> Megszakitas:
> Decr Szamlalo
> If Szamlalo = 0 Then
>    Szamlalo = 64
>    Toggle Portd.6
>    End If
> Return
>
> End
>
> -----------------------------------------
>           elektro[-flame|-etc]
>

Mert a Timer0 megszakítása akkor keletkezik, ha túlcsordult, azaz
elszámolt 256-ig. Így valójában 256(prescale)*256(timer0
overflow)*64(szamlalo) ciklusonként jön egy portláb váltás, ami kb.569
msec-enként következik be, tehát a villogás két portváltás lesz, azaz
kb.1,138sec lesz a villogás frekije.
Vedd ki a 256-os prescalet, és jó lesz, vagy ha tud ez a proc 64-es
prescalet, akkor tedd be azt, és felejtsd el a "Szamlalo" változót, és
akkor a megszaításod eleve jó lesz.

Üdv

-- 
Papp Zoltán
OneWay Electronics


--------------------------------- Hirdetés ---------------------------------

Mi a C2? http://mail.c2.hu




More information about the Elektro mailing list