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
Találtam egy oldalt itt fórumon közölték, fusebit doctor a neve. Ezzel szerintem meg lehet oldani.
Fusebit Doctor
Igen ezzel megoldható, de minden írás után majd ezzel kell törölnöd a kontrollert, hogy ismét programozni tudd.
Hát igazából nem tudok mit csinálni, próbálom minél helyesebben megírni a programot, és csak akkor ráírni a chipre, ha már biztos vagyok benne, mert nem hiszem hogy ez olyan jót tesz az AVR-nek
Hello!
Erre a FuseDoki működésre én is kíváncsi vagyok. Kérlek, majd írd le, ha kipróbáltad. Üdv!
Helló. Én megépítettem és teljesen jól működik. Az egész annyiból áll hogy készítettem kártyákat melyek különböző mikrovezérlő típusokat képesek befogadni majd miután a foglalatba illesztem a vezérlőt csatlakoztatom a kártyát a Dokihoz. Megnyomok egy gombot és kivilágít a zöld led ami azt jelenti hogy a fuse bitek vissza vannak állítva. Kb fél másodperc az egész. Érdemes megépíteni még ha már gyakorlottak vagyunk is mert sosem lehet tudni mikor csúszik be egy kis baki. Amúgy érdemes megépíteni az STK500-as klónt melyben ez megtalálható így nem kell külön építgetni.
Köszi az infót!
Ha jól értem, akkor a vezérlőt ki kell venni a fejlesztett áramkörből. Viszont így az SMD tokokkal probléma van. Olyan megoldást keresek, amivel beforrasztott prociban tudom törölni a dolgokat. Azt hiszem, hogy így marad a HV programozás a Dragonnal. Majd egyszer kipróbálom, addig kerülöm a reset tiltását, megfogadva a rutinos rókák tanácsát.
Hello!
Én már régebben megépítettem, illetve nemrég átterveztem egyoldalasra és kimarattam a panelt(de csak 8,20,28 lábú IC megy bele). Tökéletesen működik, de a +12V-ra(RESET) kell egy terhelő ellenállás mert a tranzisztorok kollektora lebeg és emiatt nem mindig adja.
SMD-kre is jó csak kell valamilyen foglalat melybe bele tudod nyomni és tudod benne tartani hogy a lábak érintkezzenek a foglalattal. De amúgy ha van Dragonod és rendelkezik HV programozási móddal akkor felesleges a doctor mivel azzal is vissza tudod állítani a fuse biteket.
Köszi a válaszokat Edison és Zombee!
Most van egy olyan panelom, amelyen szinte csak a uP van, ha elrontom, akkor csak egy tiny45 fog szomorkodni. Üdv!
Lenne egy szerintem egyszerű kérdésem, csak már nem bírok gondolkozni.
Adott egy számokból álló sztring. Van ebben a bizonyos sztringben egy . (pont), amit ki kellene venni, hogy a számsort egész számmá tudjam alakítani. Ha a jelenlegi formájában alakítom egész számmá, akkor csak a pontig alakítja át, a vége elveszik. Példa kedvéért ez a sztring: 5533.9472, és ezzé kellene alakítani: 55339472. Jelenleg csak annyit ír ki az átalakítás után, hogy 5533 és kész.
Alátámasztom én is. Tökéletesen működik.
Annyi problémám van még, hogy egy kijelzőre szeretném tenni az amper és a volt kijelzését. Úgy tudnám megoldani csak, hogy másodpercenként váltsa, de azt nem nagyon tudom megoldani, hogy amig látszik, az eredményt láthatóan tudjam állítani. Magyarul feltekerem a potmétert, és csak egy adott állást jelez ki, egy újabbra várnom kell 2 másodpercet. Segítene valaki ebben?
Üdv, yoman
Köszönöm, sikerült megcsinálni. Már csak annyi van, hogy lebegőpontos szám lcd-re íratásakor csak egy kérdőjel jelenik meg. Ez mitől lehet?
Én ilyenkor különböző jelzőbiteket állítgatok. Az általa jelzett esetben mondjuk 3 bitet használnék. Ezek:
1. Flag_LcdTartalom_U mutatja, ha feszt írsz ki. Pl: akkor H, egyébként L 2. Flag_FrissI mutatja, hogy frissen mért áram érték vár a kijelzése. A mérő rutin H-ra állítja, a kiíró rutinod törli. 3. Flag_FrissU a 2. hez hasonló, csak fesz.-re. Innentől kezdve mindig tudod, hogy mit kell kiírnod a kijelzéskor. Bár elvi a válasz, remélem segített!
Hát, nem sokat segít, már az összes lába foglalt az AVR-nek. Nem lehetne írni egy procedúrát (nem tudom hogy a C-ben van e ilyen) külön a volt kijelzésre, és külön az áramerősség kijelzésre, és a főprogramban ezt hivom meg, először a volt kijelzést, majd egy delay, és utánna az amperkijelzés. Ha létezik ilyen funkció, azt le tudnátok írni nekem?
Üdv, yoman
Sziasztok!
Fokpercet kellene átváltani fokokba. Eddig nincs is gond. Viszont bizonyos estekben nem jól számol, aminek okát tudom is, de elhárítani annál nehezebb. Itt a jelenlegi kódom.
Nos ha a fokperc pl jelenleg 0,2838, akkor kimenetnek 471-et kapok. Viszont kellene a 471 elé még két nulla. Próbáltam lebegőpontos számokkal, akkor viszont lcd-re kiíratáskor egy kérdőjelet kapok. Vagy ha valaki tudna egy biztosan működő GPS-hez való konverter algoritmust az is jó lenne. Én már kezdek kifogyni az ötletekből.
Sziasztok!
Kezdő vagyok AVRekben (PIC-et már programoztam). Bascomban írtam meg a programot de valami nem stimmel és nem tudom miért. Atmega8-al tanulnék. Bekötések: 1: 1kOhm ellenállással +5V 7: +5V 8-as lábra: GND 20,22 = +5V 22 = GND Egy led-et szeretnék ki-be kapcsolni de miután beprogramoztam az AVR-t, nem csinál semmit. Kvarcot nem tettem a kapcsolásba mert most egyenlőre bőven elég a belső. De nem tudom hogy az működik-e. BASCOM alatt programozom, de most valami nem stimm. Valaki ha tud kérem segítsen.
Nem zártad véletlenül ki magad az ARV-ből? Programozáskor volt órajel a processzoron? Az első beállítás erejéig kell tenni kristályt és kondikat az XTAL lábakra hogy legyen az AVR-en órajele majd ezután kell a fuse bitekben módosítani az oszcillátor részt belső oszcillátorra ezek után már nem kell a külső oszcillátor. Esetleg a programot csatolhatnád hogy meg tudjuk nézni hátha ott lesz a hiba.
A program maga ennyi:
Nem hiszem hogy bármi nagy hibát is vétettem volna ebben az 5 sorban . A Fuse biteket nézem a Bascom programozójában és az erre vonatkozó rész a következő szerintem: Fusebits: Fusebit C: 1: BODLEVEL 2.7V Fusebit B: 1: BODEN disabled Fusebit KLA987: 100001: Int. RC Osc. 1Mhz
5V 2 lábra kell: Vcc és VccA-ra is!
gnd: gnd és gndA-ra is...
A következő lábakon vannak:
GND: 8 , 22 +5V: 7, 20 , 21 De így sem indul el. A programozót mindenképpen le kell húzni ahoz hogy elinduljon az AVR?
Most akkor a 22-es lábat 5V-ra, vagy GND-re kötötted?
szerk.: A következő oldalt még nem vettem észre...
GND-re. Vagyis a gyári adatlap ezt írja hogy az kell oda. Túrtam egy 20Mhz és egy 4Mhz-s kvarcot hátha..
Elírtam a másiknál. Ott a +5V : 20,21
Az első programozáskor volt rajta órajel?
Nem nem volt. Csak szimplán betettem az AVR-t felprogramoztam és kész. Most túrtam egy 4Mhz-s Kvarcot azt próbálom bekötni.
Semmi baja nem volt. Sőtt még vissza is ellenőriztem hogy beírta-e és beírta. Úgyhogy lövésem sincs. Tudtom szerint az Atmega8-akban alapból 1Mhz-ra van állítva hogy azt használja.
Velem már egy kétszer megesett hogy külsőre volt állítva. Ezért is ha programozok mindig teszek oda órajelet nehogy valami baj legyen. A fuse bitek programozás előtt hogyan voltak beállítva? Ha ott az oszcillátornál a belső 1MHz-es oszci volt beállítva akkor nincs gond azzal.
Az volt beállítva. Szóval ezért nem értem.
|
Bejelentkezés
Hirdetés |