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
Ubuntu live cd-t toltsel le, es nezd meg linux alatt mi tortenik. Jobb otletem igy nincs hirtelen.
Próbáld meg más terminálprogrammal is, pl Bray terminal. nekem ezzel még nem volt gondom és fényévekkel jobb, mint a windows saját terminálprogramja.
A kvarc stimmel, csak nem ilyen sebességekre!
Bővebben: Link 194-ik oldalon találod a 16MHz-hez tartozó sebességeket. Amiket szabványosan tud a gép is, ott nem 0% a hibalehetőség, és ez meg is jelenik nálad! Olyan kvarcot kell beszerezned, ahol a küldés 0% hibával történik azon a sebességen, amit épp használnál, és azt a gép is tudja...
Nekem a 14.745.600 Hz-es kristály vált be... az minden baud rate sebességnél 0% hibás, ha jól emlékszem...
Szerk.: Bocsika, neked 18.4320 MHz kell... Furcsa! Én meg azt gondoltam, hogy az a frekis quartz jó minden AVR-hez... Rosszul emklékeztem a cikkre...
16 MHz kvarcnal egy-egy karakter atvitelenel meg nem jelenik meg hiba. A problema akkor van ha folyamatosan kell venni, vagy adni.
Sziasztok!
Amikor az AVR Studióban az ISP frekvrenciát állítottam volna be és a CLKDIV8 ki volt kapcsolva ,valamint a processzor órajele 4 000 000 hz volt,mindig kiírta a hibaüzenetet,hogy nem jó az ISP frekvencia. Én eddig úgy tudtam,hogy az ISP frekvenciának mindig az órajel 1/4-ed részénél kissebnek kel lenni.Ja és az ISP frekvencia115,2 Khz volt
Ez így van, de ettől függetlenül még okozhatja ez a problémát... Bár én nem kockáztatnám meg egy-két karakter elküldését sem, ha a hibalehetőség >0%...
Ehhez tudnunk kene milyen bitratat valasztott. Ha 4% alatti az orajel hiba, akkor 1 karakternel garantaltan nem fordulhat elo hiba. Bar mint mondta szoftverfuggo a hiba, igy elso korben szerintem a windows driverek korul kene szetnezni.
Sziasztok!
Nem pont ide tartozik, de AVR is van benne. Akkutöltőt akarok csinálni. Tudna tölteni NiCD/Mh aksit is, meg Li-ion/Poly-t is. A nikkel aksikkal nincs is gond, de a Li packban kellene nézni a cellák feszültségét is. Mivel sorba vannak kötve, nem köthetem egyből az ADC-re. Hogy lehetne földfüggetlen mérést csinálni a sorbakötött packban?
Hat erre szerintem egy ATmega406-ot kene hasznalnod. Vagy veszed a legnegativabb pontot foldpontnak, es a tobbi feszultseget leosztod, ADC-vel megmered, es kivonod oket egymasbol. Galvanikus levalasztott merest is lehet csinalni, viszont ugy kell cellankent egy ADC.
És igazad van... erre nem is gondoltam....... Akkor ezért van az hogy az UBRR-t ha kiszámolom az általam választott Baudrattel akkor nem egészre jön ki és gondolom ez generálja a hibát.... áhhh és ezért nem is ugyanazt a karaktert látom... )
Ezer köszönet holnap veszek is egy kvarcot és majd beszámolok a fejleményekről
De ugye nem fixen lefele kerekitettel, hanem a kozelebbi egeszre?
Nem rossz az biztos, de biztos nem olcsó. Inkább maradnék valami olcsóbb vezérlőnél. Azon gondolkoztam, hogy esetleg műveleti erősítővel lehetne megoldani, de nem vagyok annyira jártas ezekben a dolgokban. Igazából nem sokat foglalkoztam ezekkel még.
A farnellnel 2280 penz, ami azt jelenti, hogy a valos piaci ara olyan 1000-1500 Ft korul lehet. Muveleti erositovel is csinalhatsz kivonot termeszetesen. Itt meg is talalod.
Sikerült életet lehelnem egy Atmega8-asba, amit régen véletlenül külső RC oszcillátorra állítottam. Eddig a Topi cikkében lévő kvarcos oszcillátorral próbálkoztam, de nem volt jó. Ma kiváncsiságból megnéztem szkópon azt az oszcit. Érdekes volt, mert egyszer berezgett, majd utána soha. Ezen felbuzdulva csináltam egy 555-ös IC-vel egy 60kHz-es oszcit és láss csodát visszatért az életbe az Atmega8. A másik mega8 viszont kuka, mert semmit nem csinált.
Az oldalon lévő avr-doper en keresztül lehet soros kommunikációt megvalósítani?(uart)
abból indulok ki, h. lehet virtuális com portként használni köszönöm
Sziasztok!
Amikor az AVRStudio-ban az ISP frekvenciát állítottam be és a CLKDIV8 ki volt kapcsolva, valamint a processzor órajele4000000hz volt,mindig kiírta,hogy túl magas az ISP frekvencia. Én eddig úgy tudtam,hogy az órajel1/4-ed részénél kisebb nek kell lenni.4Mhz 1/4-e 1Mhz és attól kisebb a 115,2Khz.Így elvileg jónak kéne lenni, de nekem mégis kiírta a figyelmeztetést. Sajnos ezt már kérdeztem,de senki se válaszolt rá. :no: Úgy,hogy jó lenne ha valaki(persze ccsak aki tudna) válaszolna rá. Előre is köszi!
Sikerült már így avr studio-ban használni a processzor valaha? vagy mindig ezt írta ki? milyen programozóval programozod?
Sziasztok!
Azt szeretném kérdezni, hogy az Atmega8L és az Atmega 8 közt mi a fő különbség az órajelen kívül? Köszi szépen!
Még csak ez lenne az életem első programozása.
Ja és STK500-as programozóval.
Azt az értéket állítottam be amit a datasheet is mutat egyébként meg számolással van belőve csak próbából számoltam végig és láttam hogy nem egész...
Egyébként beújítottam egy 18,432 MHz-es kristályt aminek működnie kéne de ugyanaz, küldök egy s betűt a terminál s-et lát minden más meg hosszú ó betűt... azthiszem lassan feladom, mi a baja lehet???
Mondtam en, hogy ha a kiszamolt hibaarany 4% alatti, akkor egy karakternel garantaltan nem keletkezhet hiba. Esetlep probald meg egy gyari usb-soros illesztovel, valamint ellenorizd, hogy rendben van-e a vezetek (erek kozott szakada, erek ellenallasa), hogyha esetleg sodrott erparu vezeteket hasznalsz erre a celra, akkor az osszesodort parokbol mindig csak az egyiket hasznald. Ha ezek sem segitenek, akkor esetleg linux alatt kiprobaldhatnad, hatha vmi generalis hiba van a windowsban, vagy egy masik szamitogepen probald ki a utyudet.
Szerk: azt is probald, ki hogy az avr rx es tx labat bemenetnek allitod es az usartot letiltod, akkor a ket lab rovidre zarasa eseten a terminalbol kuldott karakter rendben visszaerkezik-e (ez egy remote loopback).
Nem biztos, hogy kuka. Meg kell majd probalnod parhuzamos programozassal, mert azt nem lehet letiltani es egyebb orajelet sem igenyel.
Az L vegut alacsonyabb feszultsegrol is lehet hasznalni. Az adatlapon van egy grafikon ahol a megengedett maximalis orajelet latod a tapfeszultseg fuggvenyeben.
én a helyedben megpróbálnám WINAVR-el is, nekem eleinte azzal könnyebben ment.
és vanis itt egy cikk róla: http://www.hobbielektronika.hu/cikkek/winavr_telepitese_es_hasznalata.html
Ez egy gyári Soros kábel, apa anya pont ami kell, innen egy anya csatival ami 90 fokos egyenesen a próbapanelre csatlakozik figyeltem a távolságra és a veszteségekre tehát ez sem lehet igazából baj, meg bármennyi karaktert küldök hiba nélkül megérkeznek, csak nem a jó, meg ez még mindig nem magyarázza hogy a hiperterminál miért a jó értéket látja míg az összes többi szoftver a rosszat, miben másabb az? nekem nagyon szoftver hiba gyanús a dolog de leellenőrzöm a loopbacket, és köszi a további segítséget!
A loopback-et mindenkepp csinald meg. A programokban jol van konfiguralva a sorosport? Bitrata, paritas, stopbitek szama egyarant mind stimmel?
Közben nyitottam egy kérdést és meg is érkezett a válasz.... A probléma ez volt:
UCSR1C = (1 << URSEL) | (3 << UCSZ0); Mert ugye mondom minek írjam meg a kódot ha már más megírta.... És ugye úgy voltam vele ha nála az működött akkor biztos helyes, de nem az... pedig: UCSR1C = (1 << URSEL) | (1 << UCSZ10)| (1 << UCSZ11); wáááááááááá örület, az ilyen.... Most totál amatőrnek érzem magam... :S ME gpersze minden mikrokontrollernél szépen át vannak rendezve a regiszterek hogy véletlenül se legyen ugyanaz teljesen... Köszönöm a segítségeteket, még azért lehet fogok kérdezni hasonló hülyeséget, van amikor a friss szem mindent lát...>>>>>>>>>>
Csak abban a kodban bizhatsz, amit magad csinalsz. Parszor mar en is radobbentem.
|
Bejelentkezés
Hirdetés |