Fix Freki adott ideig....

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
evildodo
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2009. február 4. szerda, 7:00

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

Most lusta vagyok utánnaolvasni, szal, bocsánat érte.
Egy fix freki kimenet kellene nekem, kb fél másodpercenként. Ez elindulna (start) a program elején, és csinálná a többi programrésztől függetlenül. Ha jól emlékszem errevaló a pwm. Ezt bármelyik lábra ráprogramozhatom, vagy csak egy adott pinen megy?
Geht nicht, Gibt's nicht!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Nem. A PWM-l a kitöltési tényezőt adod meg.
És ennek van FIX frekije: Órajel / 1|4|16|1024...

Ami neked kell a Timer, aminél az INTben a Timer startértéket állítod és így a kimenet frekije beállítható.
Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00

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

PWM-jelet bármelyik lábon tudsz generálni, de ha valamelyik OCxx lábat használos, akkor a TIMER-ekkel könnyebben elő tudod állítani.

u.i. ja-ja 8)
Avatar
evildodo
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2009. február 4. szerda, 7:00

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

Nem kell pontosnak lenni (plusz-minusz 1 Hz), csak független legyen a programtól, (ne kelljen mindig visszaküldeni programrészhez)és ne keljen neki külső impulzus. Illetve külsö kvarból simán számolhat :)
Esetleg egy sample?
Geht nicht, Gibt's nicht!
Avatar
evildodo
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2009. február 4. szerda, 7:00

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

és már a hardware készen van, a porb.0, portb.1 -et kéne így megszaggatni. Gondoltam egy ilyen lehetőséggel könnyebbedik a dolgom a stopperóránál :D
Geht nicht, Gibt's nicht!
Avatar
Jano
Biztosítékgyilkos
Hozzászólások: 68
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00

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

Nekem 32768Hz -re van szükségem a nyomásmérőm működéséhez.
Az OC1A kimenetet használom:

Tccr1a = &B01000000
Tccr1b = &B00001001

Tcnt1h = &HFF
Tcnt1l = &H86

Ocr1ah = &H00
Ocr1al = &H71

És nem kell vele küzdeni, a START TIMER1 -el indul a STOP TIMER1-el megáll. 8O [/code]
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Ez mind szép és jó Neked!
Ha ideírnád a képletet, ami alapján kiszámoltad ezeket az értékeket, talán még Nekünk is jó lenne!
:evil:
Alapvető kérdés: $crystal = ??????
:?:
Avatar
Jano
Biztosítékgyilkos
Hozzászólások: 68
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00

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

Bocsánat, én az elvet írtam le nem a konkrét megoldást.

Az értékek az AvrCalc program álltal kiszámolt értékek, én balga azt hittem, hogy aki ilyet akar csinálni (fix freki), az már letöltötte erről az oldalról a Letöltések-Hasznos holmik-AvrCalc -ot.
Ezeket az értékeket kicsit változtatni kell álltalába felfele kell állítani a OCR1AL értékét.
Az adott AVR pdf-je a TIMER1 fejezetben pontosan leírja, hogy miket kell beállítani a TCCR1A és TCCR1B regiszterekbe ahhoz, hogy a kimenet olyan jelalakú legyen mint amilyet akarunk.
Mivel a témaindítóban nem szerepelt tipus, ezért nem tudom leírni a konkrét értékeket, de nem nehéz beállítani, mert a pdf-ben jól le van írva.

Én M8-ra írtam, a kristály 7,372MHz-s, az OCA1 kimeneten 50% kitöltési tényezőjű négyszögjelet kapunk és 32760Hz és 32775Hz között változik az érték a hőmérséklettől függően. 8O
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Bocs nem tudtam kitalálni, mire gondolsz!
Így most már értem.
:)
Avatar
elektromos
Bitmanipulátor
Hozzászólások: 101
Csatlakozott: 2008. július 30. szerda, 6:00

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

Sziasztok! Kérem segítsen valaki, mert megakadtam! 10ns tüimpulzus 100hz-en Atmega 8-al kellene a segítség!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

100Hz-n 10 nsec

Ha a chip 1 MHz-rol jar, akkor 1 órajel ideje: 1 usec. 10 MHz esetén 0,1usec, azaz 100 nsec!
Innen a projekt megbukott.... A chipen 1 tüske ideje 1 órajel high, 1 órajel LOWba állítom a lábat (mert az utasítás 1 órajel alatt lefut (ASM)): 100...200 nSec@10MHz.

Szóval ehhez 100MHz-s AVR kellene _minimum_.
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Az M8-al programozható legkisebb tüske.
100Hz-es megszakításban Min 4 órajel.
1Sec/16000000Xtal*4=0.00000025 (250nSec)

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

INT100Hz:
     Portb.1 = 1		’2 órajel
     Portb.1 = 0		’2 órajel
Return	
Ez a minimum szerintem.
:cry:

De ha szerencséd van bekapcsoláskor csak a művelet végén, jelenik meg a H szint.
Akkor már csak 2 – 3 órajel 150nSec körül. Ezt még vághatod kondival, vagy indítasz vele valami külső jelgenerátort.
:idea:
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Inline ASM betéttel is megoldható. Ekkor

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

.SET io_offset = 0x23
.SET porta = io_offset + 2
.CSEG ; Start code segment
clr r2 ; Clear register 2
ser r1 ;255 register
out porta,r2 ; Write to Port A
out porta,r1 ; Write to Port A
Az OUT utasítás 1 órajeles....
De még sehol nem vagy a 10 nsec tüskétől:(
Soros néhány pF-s kondi? talán elég gyors a lecsengé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 »

De így az egész portót írja!? :cry:
Viszont a set Bit szintén 2 órajeles
sbi portb,1 ’ 2 órajeles
cbi Portb,1 ’2 órajeles
Marad a soros kondi, mint legolcsóbb megoldás! :)
Avatar
elektromos
Bitmanipulátor
Hozzászólások: 101
Csatlakozott: 2008. július 30. szerda, 6:00

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

Köszönöm a válaszokat! Bíztam benne, hogy atmega 8 tud annyit mint egy ne555 :D
Akkor megpróbálom megint a kimenet kondizását, hátha bejön!
Válasz küldése