Frekvencia előállítása

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Találtam 1 * 8 csatornás PWM példa Projectet.
Kezdőknek ajánlom!
http://www.mcselec.com/index.php?option ... &Itemid=57
:arrow:
Avatar
feherbalint
DrótVégénSzéndarab
Hozzászólások: 42
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Sziasztok!
40kHz-es négyszögjelet szeretnék egy atmega16-tal előállítani, de nem akar sikerülni. KAVRCalc programot használom. Az órajel belső, 8MHz-es, a timer0-t használom, és a prescaler értéke 8.
Megírtam a programot, lemértem szkóppal, és nagy meglepetésemre 9kHz-es volt a négyszögjel. A programban a toggled gombot bekapcsoltam. OCR 0x31; TCNT Base 0xCE.
Nekem ugye a TCNT Base-t kell beírni a timer0-ba megszakításkor?

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

 $regfile = "m16def.dat"                                    
$crystal = 8000000                                          
$baud = 1200
Config Portd.4 = Output
Config Timer0 = Timer , Prescale = 8
On Timer0 Pulse
Enable Timer0
Enable Interrupts
Do
Wait 1
Loop

Pulse:
Timer0 =206
Toggle Portd.4
Return
Előre is köszi mindenkinek!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Nálam a TCT: E7...
Avatar
feherbalint
DrótVégénSzéndarab
Hozzászólások: 42
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Kipróbáltam, ez nekem 15,6kHz. Valami ötlet valakinek?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Ne SW togglevel kuld ki a jelet. Ennek ideje van.
HW alapon old meg....

B: a belső 8 MHz-d a calibralas bitje el van allitva.
-50...+100% lehet a névleges 8 MHz-hoz képest....
Avatar
feherbalint
DrótVégénSzéndarab
Hozzászólások: 42
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Megpróbáltam egy másik procival, hátha csak az a baja. Hát nem. Utána néztem a hardveres dolognak, lehet hogy én nem értelmezem jól, de mintha azt írnád, hogy olyankor nem lehet a frekvenciát állítani. Bár akkor nem tudom hogy ennek így mennyi haszna van.


Az OC1A és OC1B (azaz a Timer1-hez rendelt kimenetek) működése a háttérben zajlik, a főprogram erőforrás-foglalása nélkül!

A hátránya azonban, hogy frekvencia ekkor nem állítható, mert a Timer1 kezdőérték beállítása nem lehetséges…

Itt bizony egyszerű négyszögjelet állítottunk elő.
Vagy nem erre gondoltál?
Avatar
joda
DrótVégénSzéndarab
Hozzászólások: 47
Csatlakozott: 2011. március 23. szerda, 6:00

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

Sziasztok,
elég újjonc vagyok az AVR világában és az EasyAVR5A fejlesztő rendszerem van.
Úton vagyok csinálni egy 1KHz négyszög alakú jelet ATtiny2313-al.

Nagyon érdekelne, hogy tudna-e valaki adni egy linket ahol bővebben megismerhetném a órajel számítást vagy akármit amiről itt téma van mert nem értem az alapokat és meg szeretném tanulni.

Pontossan azzal van gondom, hogy miért történik az ha a wait 100-at bascom-ba do loop ba teszem és így villogtatom a ledem
$crystal = 4000000 van állítva és ha átállítom pl. $crystal = 1000000 -re akkor más időközökbe villog.

1ms nem mindegy, hogy 1MHz órajel vagy 4MHz?
Ezekkel a dolgokkal vsgyok lekötve már napok óta és nem értem mi történik.

Előre is köszi minden segítséget.
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

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

Mindegy, csak akkor a program lesz más.
Hogy a beírt időzítéshez mennyi üres utasítást (ciklust) kell
végrehajtani, ahhoz tudni kell, hogy milyen gyorsan fut le a program.
A várakozóciklust 1000-szer hajtja végre, ha 1MHz az órajel, 4000-szer
ha 4MHz, ekkor ugyan az időzítés jön ki.
Ezzel lehet játszani, amikor mondjuk 0.5msec-es időlépések kellenének.
Akkor azt "hazudjuk" a fordítónak, hogy 4MHz az órajel, pedig igazából 8MHz, akkor a waitms 1 az 0.5msec lesz csak. Órajel vezérelt cuccokban a fő órajel az Isten, minden időzítés ahhoz van szinkronozva.

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

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

A $crystal-lal mondod meg meg a _tényleges_ órajelet. Az AVR nem tudja elolvasni a mellette levő kvarcot :P
Avatar
joda
DrótVégénSzéndarab
Hozzászólások: 47
Csatlakozott: 2011. március 23. szerda, 6:00

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

ok, na most akkor az mit jelent:
ha a kristály 1MHz és a programba hivatkozom waitms 1 akkor a kimenő jelem 1KHz ? ha pedig a kristály 2MHz-re van állítva akkor mekkora a waitms 1 kimeno reális freki?

Tehát, akarok 1KHz kimenő jelet valahogy a mondjuk rá a PINB.2 - re.

Remélem értitek mit is akarok kérdezni? mert én nemigen tudom megmagyarázni. :lol:

Köszi.
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

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

Ha a prg pl.:
Do
waitms 1
toggle portx.x
loop
akkor ugye minden szint 1msec, tehát a periódusidő 2msec, az 500Hz.
Ha azt hazudod neki, hogy a kvarc 2MHz, akkor elszámolja magát és 0.5+0.5msec=1msec lesz a teljes periódusidőd.
De a megadott kvarcfrekit nem tudod utána változtatni, az ebből eredő hányadosokat befordítja a programba fixen.

Tehát jól értetted, csak azt kell tudni, hogy a kapcsolgatásba rakott wait az a fél periódusra vonatkozik, egy jel periódusideje pedig az az idő, amikor a jel ugyanolyan szintre és ugyanolyan irányból kerül.
JAni
Avatar
joda
DrótVégénSzéndarab
Hozzászólások: 47
Csatlakozott: 2011. március 23. szerda, 6:00

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

Tehát jól értetted, csak azt kell tudni, hogy a kapcsolgatásba rakott wait az a fél periódusra vonatkozik
Nos, erre én is rájöttem de nem voltam biztos a dologba viszont nem olvastam eddig sehol erről...

Köszi ezt az infot.

Ok.
Na most, akkor ezek szerint ezt a tehnikát nem jó használni mint jelgenerátor.
Gondolok erre a waitms szitura...

Hogyan tudnék legegyszerűbb 1KHz jelet kapni valamelyik portra de úgy, hogy állítani is tudjam útközbe a kimenő jel frekijét?

Meg tudom oldani a gombnyomásokat le-fel, interapterekell is tudok játszani de ez a frekis dolog ez kiakasz egy kicsit mert nem értem mikor van milyen freki és a legnagyobb gond, hogy nem tudom miért... :lol:
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Waitms - a várakozás _ciklusidejének a fele_, mert togglevel csereberéled a lábállapotot.

Milyen frekvencia kell?

Amugy a PCbol csinalsz frekimerot. Keress a Wtune nevű programra (igaz, gitárhangoló).

A "Waitms x", ahol x=0..65535.
Waitus csak FIX értéket vehet fel, paraméterátadás csak 2.0.0.0. utáni verziókban lehetséges.
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

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

Kellene kb milyen frekitartományban és milyen felbontással kívánod a frekiket beállítani? A cucc ugyebár alapban megy 1 vagy 2MHz-ről Nálad, akkor az első frekiosztás után már eleve a feléről kell számolni. (ha szimmetrikus jelre van szükséged, mindenképp el kell osztani a nyert frekit 2-vel ugyebár).
Csak itt megjegyzem, nem teljesen botorság ám a SW wait-ekkel a periódusidők beállítása, csak arra nagyon oda kell figyelni, hogy ez valós időben fut, tehát ha a program futása valami miatt megváltozik, akkor elmászik egy periódusra legalább a kimenő jel. (pl. megnyomsz egy gombot, addig más idő alatt fut le a programtörzsed, változik a frekid, de persze van, ahol ez nem érdekes, mert mondjuk csak egyszeri betrimmerelésre kell, utána örök életben úgy megy, ahogy hagyták)
Avatar
joda
DrótVégénSzéndarab
Hozzászólások: 47
Csatlakozott: 2011. március 23. szerda, 6:00

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

Nos, nekem úgy kellene, hogy pl. 0Hz - 1,5KHz között mozogjak le fel.
Ez nem kellene, hogy problémát okozzon ugye?
Ami a léptetést illeti az legyen 10Hz habár gondolkodom, hogy készőbb felfejleszteném a motyóm, hogy be tudjam állítani a léptetést mielőtt léptetnék de egyenlőre meg szeretném tanulni egyszerűen, hogy hogyan működik is ez a frekis dolog...
Válasz küldése