Fórum témák
» Több friss téma |
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
Jó-jó, de eddig sem kellett adatlapot bogarászni fontosabb paraméterek választásánál.
Csak ki kellett volna nyitni a szemet, az Atmel oldalán. Bővebben: Link Sőt, a konkrét paraméter választás még rosszabb is mint a parametrikus sorrendezett lista, mert a sorrendezett listában az ember látja egyből a kompromisszum lehetőségeket. Beixeled hogy 2 timer kell és akkor nem ad ki olyat, aminél mondjuk három timer van, pedig lehet hogy az épp jobb lenne árban pl.
Az biztos, hogy mindegyik esetben két ablaknak minimum nyitva kell lennie. A bolti árlista/elérhetőség, és a datasheet/alábbi oldalak egyike.
TavIR-AVR: Az viszont igaz hogy ha pl 4db PWM-re van szükségem, akkor ne csak a 4db-osakat irja ki, hanem mindet, ami nekem megfelelhet, esetleg ez egy bepipálással legyen elérhető
Köszönöm a tippeket, beépítve...
- Device sorbarendezve. - paraméteres keresés kisebb, nagyobb, egyenlő státuszokra (memóriák, sorosportok... - fejléc javítva. - gombok megcserélve. Az atmel a saját oldalán a Mega és a Tiny egész táblázat, de nem szűrhető Egyéb AVRek meg ki is maradnak.... Köszönöm a segítséget!
Ha lenyomom az elküld gombot akkor nálam kitörlődik minden beállított paarméter. És ha még finomítani akarok a keresésen akkor mindent megint ki kell válogatni.
IE7
Nos szereztem a biztonság kedvéért 3,6V-os zenert, viszont van egy kis probléma.
Ismeretlennek véli a vista. Driver-reinstall megvolt. Az egészet lényegében azért kezdtem el mert egyszerűen meghótt' a Doperem, gondoltam nem-e az ATMega8 ment tönkre. Kicseréltem, jelenleg úgy vélem hogy egy próbapaneles STK200-as égetővel sikerült ráégetni a programot, de ebben nem vagyok biztos. Hogy tudok megbizonyosodni arról hogy az ATMega8-on rajta van a program, azon a lehetőségen kívül hogy leolvasom róla, mert ebben az STK200-asban nem nagyon tudok bízni... Esetleg méréssel? Ötlet? Szerk.: most nézem az STK200 szerint PonyProg2000-el rajta van a program. Mi mehetett tönkre szerintetek az IC kivételével a panelen attól hogy egy helyben volt kb. 2 hétig? Azért atnézem a nyákot, biztos ami biztos...
Sziasztok
Próbálkoztam egy LCD életre keltésével ATmega16-tal. Az oldalon található drivert próbáltam beégetni. A Header fájl bent van, csak egy hibát ír ki (kép). Valami nincs definiálva a main-ben... AVR Studio-ban próbálom fordítani. WinAVR-rel sem sikerül, hiba üzenetben Atmega8-at ír valamiért, pedig mindenhol átállítottam már 16-ra. A makefile-t is módosítottam már. Köszi a segítséget.
Kellene latni, hogy hogyan raktad ossze a projektedet.
Driverbol a .c .h fileok legyenek bent a projekt konyvtarba. Driverbol csak a .h filet includolod be " " . Hogy nez ki az LCD_proba2.c fileod? ebben van a main? A main-t beszurhatnad code = c vel ide. Mod: A Makefile -ban ird at az SRC bejegyzest. Ezt:
Ide jon az LCD_proba2.c (az amelyikben a main van) es a simple_driver.c file szokozzel elvalasztva) Save. Ujraforditas.
Köszönöm a válaszod
Találtam hibákat, kicsit még küzdök vele, csak jobb az ha "egyedül" jövök rá (nameg nem égetem magam a sok marhasággal amit műveltem). Ha mégsem boldogulok, jelentkezem.
A lenyegi hibat azert beirhatod, hatha masnak majd jol jon kesobb. Tevedni meg barki tevedhet.
Csak nem jutottam sokra. Azt még hozzá kell tennem, hogy nemrég kezdtem az AVR-ekkel való ismerkedést, csak próbálom megérteni a programokat. A main2.c-t importáltam be, ezen jóformán nem is módosítottam semmit (ezért nem is rakom be, ugyan az) Header fáljként természetesen a "simple_driver.h"-t raktam be. A Mafefile-t csatolom. Most úgy próbáltam fordítani, hogy AVRStudio-ban a külső Makefile-ként beimportáltam. Ekkor ugyanazt a hibát kapom WinAVR-ben, mint AVRStudio-ban.
Idézet: Ezt nem ertem, az SRC-nel LCD_Proba2.c -t adtal meg..„A main2.c-t importáltam be,” Eeloszor azt kellene meg probald leforditani ami a zipben keszen van, aztan modositgatni..
Ha nem megy, elküldöm az én változatomat. Saját magam írtam meg C-ben és assemblerben is az LCD vezérlését.
Sziasztok!
Mennyi órajel ideig tart az alábbi interrupt? AnalogIRQ: push temp ;2 clk in temp, SREG ;1 clk push temp ;2 clk inc cnt0 ;1 clk AnalogIRQ_end: pop temp ;2 clk out SREG, temp ;1 clk pop temp ;2 clk reti ;4 clk Kicsit átalakítottam az eredetihez képest, de a lényeg itt van. Összeszámolva 15 órajelet "fogyaszt", ehhez még hozzájön az interrupt-táblában lévő "rjmp AnalogIRQ" rész, ami 3 órajel. Egy stopperrel mérve + kiszámolva hibahatáron belül 20 órajel. Mit rontottam el? Hol eszi meg a +2 órajelet?
Szia
El tudnád küldeni a Te verziódat? Kíváncsi lennék rá. Nem igazán akar lefordulni az eredeti driver sem. Valamit biztosan Én rontok el. Küzdök tovább, nem adom fel...
Engem is érdekelne C-ben
Van egy hiba az egyik main-ben, az a bizonyos pontosvesszo a tombnel, amirol korabban itt volt szo. (main.c //custom characters -nel a negyedik sor vegen) torold ki, lehet hogy emiatt nem fordul le. Mi a hibauzenet? Nincs kulon verziom, az van ami az oldalon is fent van.
Elküldöm a saját változatom, amit én készítettem el.
Az egész projektet küldöm, hogy legyen egy nagyon egyszerű példa a használatára. Lényegében a 0-végű sztringeket lehet kiírni vele... Jelenlegi beállítás szerint a PORTA van beállítva az LCD portjának. Most nem írom le a részleteket, nézd meg a header fájl első 20 sorát, megtalálod mit hová kell kötni. A forrás a HD44780 kompatíbilis LCD-kijelzőkhöz készült, a legtöbb karakteres LCD ezt a protokollt használja. A programom a 4 vezetékes módra van kihegyezve, tehát 6 lábat foglal el a PORTA - ból: 0,1,2,3,6,7 Elvileg átrakhatod másik portra is, de nagyon fontos, hogy azonos porton legyen a D4-D7 és az RS ill. az E, a D4-D7 kivezetések a mikrokontrolleren egymás mellett legyenek(logikailag), és a D4-től növekedjen. Ez utóbi azért fontos, mert nem bitenként hanem félbájt-onként íratom ki az adatokat. És még ami fontos: A project options-nál állítsd be az órajelet(jelenleg 12MHz), mert ha nem teszed, katyvaszt fogsz látni vagy nagyon lassú lesz a kiíratás! Ja, és csak ATMEGA16-on használhatod... KERESKEDELMI CÉLOKRA NEM HASZNÁLHATÓ!
szia TOPI
nagyon jók a kapcsolásaid. meg is szeretném csinálni a ventiszabályzót. sajnos nem használok cét, igy nem tudom elkésziteni a programot sem. az avr forditom sincs. nem osztanád meg velünk a .hex progit, hogy a boltban felprogramoztathassam a controllert? előre is köszi. GGL
Szia
Próbálkoztam a Te drivereddel is, lefordul rendesen, átírtam 12MHz-re-is. Valamiért mégsincs semmi a kijelzőn. (kontraszt állítással az első sort lehet maximumra állítani) A bekötés is jó szerintem, de azért leírom hogy kötöttem be: RS=> PA6 RW=> 0V E=> PA7 DB4=>PA0 DB5=>PA1 DB6=>PA2 DB7=>PA3 Tápfeszültségek is rendben vannak. A Fuse bit-eket hogy kell beállítani? Oszcillátort belső 8MHz-re állítottam.
Ha az AVRStudio szerint 8MHz belső oszcillátor a FUSE, akkor jónak kell lennie, de a projekt beállításoknál értelemszerűen 8 milliót kell megadni(Hz-ben!).
Legyen int.RC.osc.8MHz,+6CK + 64ms Startup Time(legutolsó az int RC osc-ok közül), BODLEVEL pedig 2.7V. A többi nincs rá hatással. Ha a project options-nál nagyobb számot adsz meg akkor sincs nagy baj, max lassabb lesz. de 8 milliónál kevesebbet semmiképp! Ha a kontraszt állítással csak az első sort tudod állítani, azt jelenti hogy nem inicializálódott a kijelződ. Ugyanis alapból 2(és 4) soros módra van kihegyezve. Ha nem inicializálódott, akkor lehet hogy nagyobb időközöket kér a cucc(állíts 16-30 milliót a projekt beállításoknál), vagy nem támogatja a 4 vezetékes módot, vagy a legrosszabb ha nem HD44780 kompatíbilis... Még ami fontos, hogy a tápfesz valóben jó legyen, a kontroller RESET lába egy 10k ellenállással legyen a +5V-ra felhúzva. Nekem így 3 féle különböző LCD-vel megy, csak a csatlakozásokat kellett megoldanom. Azért a kontraszt nagy gazember tud lenni, azt is érdemes tekergetni...
Beállítgattam mindent de semmi változás. A kijelző biztos kompatibilis, tokozott HD44780-as IC van rajta. Megtaláltam neten az adatlapját is, képes 4bites módban működni. Mindjárt megpróbálom a reset lábat felhúzni, keresek ellenállást.
Nem lett jó ellenállással sem Semmi hibát nem ír ki fordításkor, a kijelző is jó helyen van. Mi lehet még a hiba?
a project options-nál 8000000 a sebesség? próbálj 12000000 - t vagy 20000000 - t beírni.
Az R/W láb és a D0-D3 a földre vannak kötve? Ja, és tipikus hiba, nem mindegy melyik hex-et töltöd rá. Az AVRStudio megjegyzi melyik hex-et töltse, és másik projektnél is még a korábbi projekt hex-ét akarja áttölteni...
Jó HEX-et töltök be, eddig nem voltak földön a D0-D3 lábak, mostmár lehúztam, de semmi. RW-is földön van. A projekt beállításnál állítgattam az órajelet, de az is semmi. LED-eket rákötve az adat lábakra villognak, tehát fut a program... Elvileg csak simán a HEX-et kell beégetni, semmi mást. (inkább kérdezek, mert szerintem valami nagyon alap dolgot ronthatok el, ami eszedbe sem jut, mert ezt "mindenki tudja") Köszönöm, hogy próbálsz segíteni.
Én ilyenkor szoktam mondani, hogy "nah akkor elölről az egészet"! pl vezetékek nem szakadtak-e meg, jó lábon van-e a vezeték, nem ér-e össze, jó lábat kötöttél össze vele, nem rontottad el? biztos hogy jó filét másoltál be? Jó gép előtt ülsz? Jó e a procid tipusa, stb stb... Bármi lehet innentől kezdve...
igen, bármi lehet.
Jah, és nem árt ha WinAVR is fel van telepítve. Ha villognak a led-ek akkor jó, mert villogniuk kell. Valóban, innentől bármi lehet. ATMEGA16-ra vín írva, de említetted már hogy épp arra kell. Másik lehetőség a kijelző, egyes kijelzőknél másképp van a lábkiosztás. Volt egy ilyen nálam, annál át kellett alakítani a kivezetéseket. Nálam: 1: GND 2: +5V 3: kontraszt(2.2kOhm-al földre) 4: RS (PA6) 5: RW(föld) 6: E (PA7) 7-10: D0-D3 (föld) 11-14: D5-D8 (PA0-PA3) 15-16: háttérvilágítás breadboardon teszteled? ott is jónak kell lennie mert én is azon fejlesztettem ki még anno
Sziasztok.
Összedobtam a következő oldalon lévő egyszerű AVR programozót. ATmega8 PDIP tokozású AVR-t akartam vele programozni. Összekötöttem az AVR-t és a programozót, rádugtam a számítógép LPT portjára majd egy LM317-es tápról +5V-ot adtam neki a VCC és a AVCC lábára. Bascom-al programoztam fel, majd bezártam, újra megnyitottam és szépen beolvasta a kódot. Na mondom ezzel is megvolnék, éppen húznám le a programozót a gépről, akkor látom hogy az LM317-es tápot nem dugtam be a konnektorba. Akkor most sikeresen felprogramoztam vagy nem?
Igen, ugyan ez a lábkiosztása az én LCD-mnek is. Találtam adatlapot róla, onnan néztem a kiosztást. Igen, breadboardon dugtam össze. Már jó párszor átnéztem mindent. WinAVR is fent van. Lehet hogy megpróbálom azzal fordítani, és égetni hátha jó lesz.
Nem tudod leellenorizni hogy sikeres-e a programozas?
Programozd ujra, legyen tap is Sir-Nyeteg Idézet: Ez nagyon nagy volt „Jó gép előtt ülsz?”
Sziasztok a következő a problémám, a nyolc lábbal című sorozatból meg akartam építeni a csipogót csak egy atmega644-el. Öszzeraktam a kapcsolást, fel a kódot rája meg minden, devalami nem stimmel a frekvenciával, sokkal lasabban villog a led mint a videón és hang sem jön ki belőlle mi lehet a gond? Az elején a kódnak ott van hogy
külön kristály nincs rá kötve, és a gyári beállításokat se piszkáltam. |
Bejelentkezés
Hirdetés |