Servo > PWM

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
Ubul
DrótVégénSzéndarab
Hozzászólások: 48
Csatlakozott: 2006. január 6. péntek, 7:00

Servo > PWM

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

Sziasztok!

Egy modell szervó jellel vezérelt PWM vezérlést szeretnék csinálni.
Magyarán szólva, motorszabályzót modellrepülőhöz.

Az INT0 lábra jönne a vezérlés ami 20ms ként ismétlődő 1ms és 2ms közti négyszög jel lenne. A kimenet a PB1 láb lenne, PWM üzemmódban.

Amikor 1ms os az INT0 lábra érkező négyszögjel, akkor kellene
0% os kitöltési tényezőt varázsolni a kimenetre. Ha 2ms os az INT0 lábra
érkező négyszögjel, akkor lenne 100% a négyszögjel.

Tulajdonképpen egy 20ms ként ismétlődő négyszögjel hosszát
szeretném mérni.

Kép

http://www.klaus-leidinger.de/mp/RC-Ele ... .html#oben

Ez a teljes kapcsolás amit módosítva megépítek. Kár hogy csak Assembly
kódba mellékelik a programot.

Köszi: Peti
Robert-

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

Négyszögjel hosszmérése: nézd meg az INT fejezet Timer részt....
Avatar
DOGMAN
Chipgyilok
Hozzászólások: 293
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00

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

Tegnap sikerült, de mivel nincs itt a kód nálam, csak a logikája:

Kód: Egész kijelölése

timer0-t definiálom a legkisebb osztóval, (1)
Mega8, 8Mhz-en: 0.033 msec egy ütem

dim szamlalo as integer
szamlalo = 0

dim eltolas as integer
eltolas = 45   ' ez kb 1.5 msec-nyi ütem


timer0 start
enable interrupts

config portb.4 output

do
' ide mehet valami eljaras amivel az "eltolas" valtozot
' modositom mindket iranyba
loop

timer0on:
  incr szamlalo 
  ' elkezdek szamolni kb 15 msec-et, a 454*0.033 ütem
  if szamlalo = 454 then
     portb.4=1
  end if

  ' elszamolok a 15 msec utan meg "eltolas"-nyi idot és nullázom a portot
  if szamlalo = 454 + eltolas then
     portb.4=0
     valtozo=0
  end if
return

ezzel az ütemezéssel kb 30 lépésre tudom bontani a szervó kormánymozgását, természetesen a processzor frekvencia növelésével a felbontás tovább finomítható
Válasz küldése