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
helló, a bufferelt stk200-at összeraktam, de továbbra is hibaüzenet programozáskor.
valamit elrontok? vagy lehetséges, hogy már egyszer fel lett programozva a uC, de külső kvarccal és ezért nem tudok új programot beleírni?
A szoftver részét én is így gondoltam, de jelen esetben abban nem vagyok biztos, hogy jó megoldás-e, ha 5.4V-ról járatom az AVR-t (az AVR és az LCD az adatlapjuk szerint 5.5V-ig bírják), és az AVR analóg bemenetére direktbe rákötöm a max. 5.4V(+-100mV) jelet a potméterekről. Az IC kimenetét 5mA-el lehet terhelni csak, ez remélem nem probléma. Bár ha igen, akkor adhatom a tápról direktbe a potikra a feszültséget, csak a 100mV-os pontosság miatt lehetnek így bajok.
Szerintem az ADC nem fog 5mA-t elvinni. Sőőőt...
Tehát rákötheted. Idézet: „És a feszültségosztó mennyi plusz terhelés az LM1036-nak? Ugyanis csak 5mA-el lehet ezt a referencia-kimenetét terhelni (a linearitást ugye nem rontja a feszosztó?). A BSS-en találtam feszültségosztó számolót, de nem tudom, hogy milyen arányt számoljak, mert a 100K-8K meg a 10K-800R is ugyan azt eredményezi, nem tudom ez mennyire fontos.” A masodik kerdesed az elsovel kapcsolatos... Ohm torvenye + soros ellenallas szamitas... Fesz osztas szamlalas szinten Ohm torveny -- jo, hogy vannak ilyen kalkulatorok, de azert illik tudni kiszamolni ezt papiron is. Ugye ha max 5V-ot szeretnel, akkor I = 5V / (100k+8k) lesz a terheles az LM1036 kimeneten. Az ADC olyan keveset terhel hogy nem kell vele szamolni. Azt is figyelembe kell venni, hogy az ADC mekkora impednanciaval tud dolgozni. Az adatlap szerint 10k vagy kisebb impednancia javasolt, igy a masodik paros ilyen szempontbol jobbnak tunik -- mar csak azert is, mert a nagyobb ellenallasoknak mar jelentos induktivitasuk is lehet es hajlamosabbak az elektromagneses zajokat felszedni. Egyebkent nem tudom milyen precizitas kell, de az ellenallasoknak is van turesuk, ami atlagban 5% szokott lenni. Vannak 1% ellenallasok is, sot vannak precizios, nagyon kis turesuek -- nyilvan azok dragabbak. Sokan trimmert raknak be inkabb ket ellenallas helyett igy a pontos osztas bekalibralhato. Masok a kalibralast a firmware-be helyezik el szoftveres uton.
próbáltam attiny2313-al és at90s2313-al, semmi mást nem kapok. csak ezt a hibaüzenetet, amikor fel akarom programozni, winavr-el.
az isp kábele ~20cm. lehet valahogy tesztelni, olvasni a uC-t? (pl kiolvasni a tipusát, hogy egyáltalán jó-e a programozóm.) vagy lpt port hibás beállításának(biosban paralell port mode) lehet ilyen tünete? a bekötés helyes, táplálást kap az stk200 és a uC is. Reset? kell vele valamit is csinálnom? a fusebiteket netes kalkulátorral belső oszcillátorra állítottam. -F kapcsolóval rá lehet erőltetni a programot? (hova kapjon -f kapcsolót?) valakinek esetleg ötlete?
Elmondom hogy szoktam én csinálni, amúgy az én gépem LPT port paraméterei a következők:
Nyomtatóport(LPT1); I/O tartomány: 0378-037F BIOS-ban: Port Mode: EPP; IRQ: 7; DMA: N/A Töltsd le a PonyProg programozót, telepítsd, majd indítsd el. Első indításnál kalibrációt igényel, de automatikusan megcsinálja, ha mégsem akkor a Setup menüpont alatt a Calibration-ra kattints. Ezután ismét a Setup menüpont alatt az Interface Setup-ra, itt Parallel-t és "Avr ISP I/O"-t válassz, majd kattints a Probe gombra, ha jól van beállítva akkor "TestOk" üzenet jelenik meg. Remélem így már menni fog!
Hali mindenkinek!
Egy olyan kérdésem lenne hogy egy bakelit lejátszó léptető motor vezérlését meg lehetne-e oldani úgy hogy kapcsolható legyen 33RMP meg 45RMP között és egy tolópotméterrel szabályozható lehesen +-15%-ban. Egy működő bakelit lejátszó adott csak át akakrom egy picit alakítani az elektronikáját. A léptető motor az 4 "fázisú". Ha lehetséges a választ előre is köszönöm
köszönöm a választ és azt hiszem az Atrinity13-as AVR-el is meg lehetne oldani vagy ehez komolyabb kellene?
I/O-ban lehet tul keves lesz - hany IO kell ahhoz a motor vezerleshez? Hany IO a fordulatsam szenzorhoz? Poti nyilvan egy A/D, ha akarsz LED visszajelzest, hogy epp 33 vagy 45 a fordulat, akkor az 1 vagy 2 IO attol fugg milyen visszajelzest akarsz es milyen LED drivert. Ha preciz fordulatszam kijelzest akkor lehet LCD-re vagy LED letrara is szukseged van... Nem tudom pontosan mik a parameterek, de ezeket szamolgasd ossze. (utana mar csak a program memoria es a RAM merete a kerdeses, hogy mennyibol fogod meguszni a FW-t)
Összeraktam egy kis teszt áramkört (ATTiny2313, kristály kondikkal, resetgomb, egy led a PB0-án , táp(azaz 7805 és egy kilencvoltos elem ) és STK200-al próbáltam programozni a az AVR az áramkörben. Restgombot lenyomtam, de a PonyProg nem ismerte fel. Tudtok valami segítséget adni?
Üdv!
Valaki használta már az AVRDude-ot? Sajnos az LCD2USB firmware letöltésekor nem stimmelnek soha a config és fuse bitek AVRISP programmal. Az alábbi fájlban leírt fusebit-eket, hogyan tudnám átvinni az AVR-embe?
A RST labat nem kototted ra az STK200ra?
Programozasnal nem kell azt nyomogatni, kezeli az stk200 es a szofver.
Jó akkor azt bekötöm és megpróbálom kivenni az áramkörből úgy programozni.
A chipID kolvasása elég szkott lenni....
Nem jó reset lábat bekötöttem, az IC-t kivettem az áramkörből, csak tápfesz van rákötve meg az STK200 de így se működik Nem kell esetleg valamelyik bitet invertálni? vagy valami egyéb spec beállítás?
Sziasztok!
Azt szeretném kérdezni hogy WinAVR-rel generált kód assemlbly változatát meg lehet valahogy nézni? Szóval C-ben írom a kódot, de nem nagyon értek valamit hogy miért úgy van és gondoltam itt az ideje hogy kicsit ránézzek, hogy mi is történik valójában.
Igen.
Futtasd a progit debug módban, majd nézet menü dissambler. Vigyáz, mert néha furi dolgokat láthatsz fordítási opcióktól függően.
Ok, köszi!
Pont ezt kerestem...
Valaki tudja, hogy AVR studió WIN AVR Ckód esetén, hogyan kell 1db bitet lefoglalni.
PL Van 8 nyomógombom és mindnek van neve. 1BYTE-on akarom tárolni. Viszont a byte-on belüli bitekre név szerint szeretnék hivatkozni. Nem akarok maszkolni! (m_gombok & STOP_GOMB) Mint PIC esetében: bit STOP_GOMB; bit START_GOMB; stb.
Idézet: „Nem akarok maszkolni! (m_gombok & STOP_GOMB)” Akkor hasznalj bitfieldet, pl:
ezekutan:
Hmm!
Ez jól néz ki. Valami ilyesmire gondoltam. Ez egy byte-on belül foglal le sorban biteket? Köszi!
Vegulis mit fordit a bitfieldbol? (korabban volt szo rola..) attribute-ot nem kell mega adni a definicioban? (attribute packed) (mar nem emlekszem hogy is volt..)
Megtaláltam egy korábbi hozzászólásban.
Sziasztok!
6-8 gombot szeretnék kezelni egy ATMega32-vel és nem tudom hogy lenne célszerű. Ugye külső megszakításból csak kettőt tud kezelni, pollozni pedig nem nagyon szeretnék első körben (persze ha nincs más...) Arra gondoltam hogy ha 2 áramkörös gombokat használnék akkor lehetne hogy egyszerre generál interruptot meg húzza földre a port egy lábát és akkor az interrupt rutinban meg kéne néznem hogy mi van lenyomva. Hátránya hogy csak elvileg működik mivel semmi nem garantálja nekem hogy amikor az interrupt bekövetkezik akkor már a port adott lába beállt a megfelelő szintre... A kérdés: hogy kéne ezt csinálni? Ti hogy szoktátok?
1. Megoldás: Gombok közvetlen portra, PCINT portra. (Ott több HW megszakítás is van)
2. Megoldás: Gombok normál portra. És sima diódákkal + interrupton felhúzóval interruptba kötve. Így egy áramkörös a gomb. Csak a diódákon keresztül van közösítve int lábra. Amúgy pedig szabadon portba megy. Ha jön INT, olvasol portot. 3. Megoldás: Logikai vagy kapuk. 4. Megoldás: RS tároló + vagy kapu (attól függ, mennyire kell gyorsan olvasni) Ha nem "vágyad" a sleep mód, ami miatt kellene a HW interrupt, akkor áramköri szempontból egyszerűbb pollingozni.
5. megoldás:
Ellenállás láncot söntölő kapcsolók és AD konverziót végezni. Remélem nem mondtam hülyeséget? |
Bejelentkezés
Hirdetés |