Fórum témák

» Több friss téma
Fórum » AVR - Miértek hogyanok
 
Témaindító: pakibec, idő: Márc 11, 2006
Témakörök:
WinAVR / GCC alapszabályok:
1. Ha ISR-ben használsz globális változót, az legyen "volatile"
2. Soha ne érjen véget a main() függvény
3. UART/USART hibák 99,9% a rossz órajel miatt van
4. Kerüld el a -O0 optimalizációs beállítást minden áron
5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás
6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et
Bővebben: AVR-libc FAQ
Lapozás: OK   748 / 837
(#) marcellus96 hozzászólása Okt 30, 2016 /
 
Sziasztok!
Egy olyan kérdésem lenne, hogy a Timer1 16 bites időzítőt, hogyan kell konfigurálni assemblyben? Atmega128-at használok és egy 1 másodperces megszakítást szeretnék vele létrehozni.

Így konfigurálom, de sajnos valami miatt nem működik:

  1. ldi tmp, 0b10_00_00_00 
  2. out TCCR1A, tmp                
  3. ldi tmp, 0b00_0_01_100  //CTC Mode + 256 Prescaler
  4. out TCCR1B, tmp
  5. ldi tmp, 0x85
  6. out TCNT1H, tmp
  7. ldi tmp, 0xEE
  8. out TCNT1L, tmp                                        
  9. ldi tmp, 0b00_0001_00
  10. out TIMSK, tmp


Segítségeteket előre is köszönöm!
(#) zolee1209 válasza marcellus96 hozzászólására (») Okt 30, 2016 / 1
 
Szia!

Milyen órajel mellett szeretnél 1 másodperces megszakítást generálni? Illetve csak megszakítást akarsz, vagy kimeneti lábhoz tartozó állapotváltozást is?
Én a timert csak a legvégén indítom, mikor már mindent beállítottam hozzá.
Nem szimuláltam le, de nálam így nézne ki körülbelül a kód, 8MHz-es órajel, 256-os előosztó esetén, ha csak interruptra van szükségem.

  1. .def    tmp     = r16
  2. .equ    ocr_value       =       31249
  3.  
  4.  
  5. ldi     tmp,high(ocr_value)
  6. out     ocr1ah,tmp
  7. ldi     tmp,low(ocr_value)
  8. out     ocr1al,tmp              ; OCR1 regiszter feltöltve a kívánt értékkel
  9.  
  10. ser     tmp
  11. out     icr1h,tmp
  12. out     icr1l,tmp               ; ICR regiszter MAX-ra állítva       
  13.  
  14. ldi     tmp,(1<<OCIE1A)
  15. out     timsk,tmp               ; Output Compare A Match Interrupt Enable
  16.  
  17. ldi     tmp,0b00000000
  18. out     tccr1a,tmp              ; így nem szükséges beírni a programba...
  19. ldi     tmp,0b00001100
  20. out     tccr1b,tmp              ; CTC mód, 256-os előosztás, timer indul
(#) slimtomi válasza david10 hozzászólására (») Okt 30, 2016 /
 
Nem működik. Mára ráhagyom, késő van.
(#) david10 válasza slimtomi hozzászólására (») Okt 30, 2016 /
 
Rendben van. Ha a jövőhéten jutol valamire, akkor kérlek írd meg.
Nincs késő... én most fogtam neki SD-kártyázni az Arduinoval.
(#) marcellus96 válasza zolee1209 hozzászólására (») Okt 30, 2016 /
 
Köszönöm a gyors választ!

Nekem is 8 MHz-es az órajelem és csak megszakításra kell.
Holnap ki is próbálom, hogy ebben a formációban működik-e.
(#) monxla válasza rolandgw hozzászólására (») Okt 30, 2016 /
 
rolandgw, köszönöm a választ!
Időközben felraktam, de folyton azt írja, Cannot execute empty custom programming tool command. anélkül nem működik. Ezt miért követeli?
(#) zolee1209 válasza marcellus96 hozzászólására (») Okt 30, 2016 /
 
  1. ldi tmp, 0b10_00_00_00
  2. out TCCR1A, tmp

Ezzel mit szerettél volna beállítani? Azért is kérdeztem, hogy megszakítás generáláson kívül van-e más igény? Bár úgy olvasom, hogy nincs.
(#) rolandgw válasza monxla hozzászólására (») Okt 30, 2016 /
 
Nem futottam bele, csak tipp: ez rendben van az eszközkezelőben?

studio.PNG
    
(#) monxla válasza rolandgw hozzászólására (») Okt 30, 2016 /
 
Ugyan ezt látom én is ott.
Lehet a Tools\External Tools nál lesz egy hibás beállítás, de nem értem miért nem lehet üresen hagyni, ill. mit kellene oda beállítsak? Betettem egy dummy.cmd file-t aminek semmi hatása azzal sem lett jobb, csak gondoltam kipróbálom.
A hozzászólás módosítva: Okt 30, 2016

jungo.JPG
    
(#) marcellus96 válasza zolee1209 hozzászólására (») Okt 30, 2016 /
 
Ja ez a komparálási szinthez kellett volna, hogy az időzítő értéke törlődjön, ha eléri a komparálási szintet. Ha esetleg nem lenne pontosan 1 másodperc a megszakítás, akkor komparálási szintet állítanék és azt figyelném.
(#) rolandgw válasza monxla hozzászólására (») Okt 30, 2016 /
 
Tiszta telepítés, vagy hagytad a 6-ot is? Az external tools alaphelyzetben üres. Dude volt/van beállítva?
(#) monxla válasza rolandgw hozzászólására (») Okt 30, 2016 /
 
Hagytam a hatost is.
Igen alaphelyzetben üres.
Ettől függetlenül hibát dob.
Dude az mi?
A hozzászólás módosítva: Okt 30, 2016
(#) rolandgw válasza monxla hozzászólására (») Okt 30, 2016 /
 
Tiszta telepítés ajánlott, a 6-os projekteket mentsd valahova a biztonság kedvéért.
Bővebben: Link
AvrDude
(#) monxla válasza rolandgw hozzászólására (») Okt 30, 2016 /
 
Leszedek mindent és megismétlem.
Előre is köszönöm a segítséget!
(#) killbill válasza slimtomi hozzászólására (») Okt 30, 2016 /
 
64 byte? Pontosan melyik AVR-rol van szo?
(#) rolandgw válasza killbill hozzászólására (») Okt 30, 2016 /
 
Arduinos üzemzavar.
(#) monxla válasza rolandgw hozzászólására (») Okt 30, 2016 /
 
ugyan az.
(#) rolandgw válasza monxla hozzászólására (») Okt 31, 2016 /
 
A Jungo-t is leszedted előzőleg a programok közül? Az egy külön tétel. Mikor jön a hibaüzenet, szimulátor indításnál? Esetleg próbáld meg ezt feltelepíteni.
(#) monxla válasza rolandgw hozzászólására (») Okt 31, 2016 /
 
Hali

Azt nem.
Akkor jön ha lépésenként szeretném futtatni a programot, Alt-F5, F10 v. F11
Leszedjek ismét mindent (Jungo-t is) és akkor meggyógyul?
Jungo-t hogy lehet leszedni? Nem látom az uninstallert.
A hozzászólás módosítva: Okt 31, 2016
(#) rolandgw válasza monxla hozzászólására (») Okt 31, 2016 /
 
Itt szimulátor van beállítva?
Debug menü, legutolsó, Properties.
A hozzászólás módosítva: Okt 31, 2016

studio2.PNG
    
(#) monxla válasza rolandgw hozzászólására (») Okt 31, 2016 /
 
Az utolsó a project properties oda a custom programming tool, de nincs más opció.
A hozzászólás módosítva: Okt 31, 2016

cpt.jpg
    
(#) rolandgw válasza monxla hozzászólására (») Okt 31, 2016 /
 
Project properties-ben van.
(#) monxla válasza rolandgw hozzászólására (») Okt 31, 2016 /
 
Neked van más opció?
(#) monxla válasza monxla hozzászólására (») Okt 31, 2016 /
 
Megvan miért van ott csak egy, mert a device a CAN-es Atmea chip volt. (AT90CAn128)
Azonban ha kicserélem sima Atmega128 ra akkor "Please select a connected tool and interface and try again" üzenetet kapom
(#) rolandgw válasza monxla hozzászólására (») Okt 31, 2016 /
 
A studiból tettem fel a fotót. Jungo probléma lesz, vagy olyan AVR típust választottál, amit nem támogat a szimulátor. Próbáld meg újratelepíteni a Jungo-t.
(#) monxla válasza rolandgw hozzászólására (») Okt 31, 2016 /
 
Megpróbálom.
De szerintem AT90CAn128 at kellene hogy támogassa.
(#) rolandgw válasza monxla hozzászólására (») Okt 31, 2016 /
 
Nem támogatja.
Bővebben: Link
PDF a lap alján Device Support
A hozzászólás módosítva: Okt 31, 2016
(#) monxla válasza rolandgw hozzászólására (») Okt 31, 2016 /
 
És mi a megoldás?
(#) rolandgw válasza monxla hozzászólására (») Okt 31, 2016 /
 
Megtalálod a pdf táblázatban, D (debug) oszlopban.
(#) marcellus96 válasza zolee1209 hozzászólására (») Okt 31, 2016 /
 
Köszönöm a segítséget!
Tökéletesen működik.
Következő: »»   748 / 837
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem