A tiny45 esete a megszakítással...

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
glbtech
DrótVégénSzéndarab
Hozzászólások: 29
Csatlakozott: 2007. február 13. kedd, 7:00

A tiny45 esete a megszakítással...

Hozzászólás Szerző: glbtech »

Tiny45-öt programozgatok, szervót vezérlek vele, amihez ugyebár az interruptokat engedélyezni kell. Az ADC-ről olvasom be a poti állását, és annak megfelelően vezérlem a szervót. Eddig ez prímán működik. De szeretném a poti pillanatnyi állását soros porton küldeni a PC felé. Na ez az ami nem megy, a megszakítások miatt megzavarodik az átvitel. Van valami mód ennek a megoldására ? Ha a soros portos átvitel idejére letiltom az interruptokat ( disable interrupts.....enable interrupts ), akkor meg a szervó nem működik jól, mert nem kapja időben a szeretett impulzusait. HELP ! :D A tiny2313-al a hardveres portttal hibátlanul működik ez, de abban meg nincsen AD. :?

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

Open "comb.1:9600,8,n,1" For Output As #1

Open "comb.0:9600,8,n,1" For Input As #2

Config Servos = 1 , Servo1 = Portb.3 , Reload = 10 Timer = Timer0

Config Pinb.3 = Output

Enable Interrupts

Config Adc = Single , Prescaler = Auto
Start Adc

Dim W As Word
Dim T As Word
Dim Channel As Byte

Channel = 2

Do

W = 10 * Getadc(channel)
T = W / 89
T = T + 30

Servo(1) = T

'Print #1 , "servo value " ; W

Loop

End
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Hülye tipp:
Nem lehet hogy a szervo és a SW UART is a TIMER0-t használja?
Az adatlap szerint 2db 8bites timer van Timer0 és Timer1. A szervót én kipróbálnám Timer1-re rakva...
Viszont lehet hogy a két timer egyidejű bekövetkezése esete forog fenn. Azaz a csak 1szintű INT van és így a megszakítások sorbaállítódnak...
Avatar
glbtech
DrótVégénSzéndarab
Hozzászólások: 29
Csatlakozott: 2007. február 13. kedd, 7:00

Hozzászólás Szerző: glbtech »

Azt hiszem a timerek állítgatását próbáltam, de még megnézem holnap. A kollégám azt mondta ( ő picben utazik ) hogy ez nem fog működni, az sw uart nem bírja ha megszakítják, mert mikor méregeti a bitidőket akkor közben megszakítják, és nem fog stimmelni a dolog, asszem így monta, többet nem tudok elmondani kérem kapcsojjaki. :D Köszi a segítésget !
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Mondjuk ebben is van valami. 16x túlmintavételezéssel dolgozik a Bascom SW uartja.
Kis chip ami UART+ADt tud, az ~M8/48/88/168-as. Méretre több lábú, alapterületre ~T45 méretű. TQFP tok...
Válasz küldése