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
köszönöm mégegyszer.
mindenkihez szolok ezzel a problémával: naiv módon aszittem hogy innentől meg tudom csinálni hogy eltárolom egy változóban pl: int valami=1; és akkor egy kapcsolót tudok készíteni de most csak villog. mivel tudom megakadályozni hogy az érték csak is 0 és 1 között változzon? tudom nem vagyok profi AVR es előre is bocsánat de ennek a kódnak mennie kéne de valamiért az = jelet nem veszi figyelembe a LED nél.
Ahogy Te írtad értékadás.
Perfect köszönöm szépen bár nem tom miért nem elég egy db egyenlőség jel.
Az a fárnya Ritchie meg a Kerninghan
A hozzászólás módosítva: Jan 13, 2013
AVR ben hogyan lehet megoldani az akksi szint jelzését? gondolok itt hogy 4-5 led csücsül 4-5 lábon
5LED 100% 4 led 60% stb vagy ehez más is kell mint egy AVR?
Hát attól függ. Azért jó ha tudod hogy egy akksi töltöttségét nem a kapocsfesz jelzi. SOHA!
Talán a belső ellenállás az, ami megbízható adat, és viszonylag könnyen mérhető. De még ez sem teljesen, mert az akku polarizálódik, így nem mindegy hogy egy álló vagy éppen használatban lévő akku belső ellenállását méred. Egy AVR nem rossz választás, de a körítés és a mérési elv, na az már valami! A hozzászólás módosítva: Jan 13, 2013
Akkor ezt még hanyagolom igazából a 12V os ellem nek használati idejét szerettem volna mérni mármint mennyi van még hátra.
Projectem egy Zenére villogo ledsor lesz több funkcioval és aza vad 5letem van hogy 12V os ellemröl hajtom meg egy 5V letranszformálással hogy az AVR ne füstöljön el. Akkor marad más megoldás addig. Köszönöm a segitséget nagyon mindenkinek
Sziasztok!
Esetleg valakinek van valami tippje azzal kapcsolatban, amit korábban írtam. Gyakorlatilag egy egysoros programot letolok a prociba, még csak fel se konfigolom az AD-t, de már eltolja a feszosztómat. Most ráforrasztottam a 4k7-re még egy 4k7-et meg az 1k-t is így, h maradjon az osztó. Az osztó bemenő, kimenő feszét megmértem és, ha nincs rákapcsolva a proci AD-jára, akkor jó, ha rákötöm akkor meg felhúzza pár mV-al. Így, hogy feleztem az ellenállásokat kicsit jobb lett, de nem gondolom,h ez normális és az 5 V-ot a végén valami 1k-val kell megterhelnem, hogy jól mérje. Most két ötletem van még. Vagy ez a példány hibás és cserélem, vagy ha ez általános probléma, akkor jobban járok egy külső ad-vel. Javaslat? M
Mérd meg a processzor egy másik AD lábát is. Hogyha tényleg elhúzza az osztód, a szabad lábon kell mérjél feszültséget.
Hogyha minden ad-lábon ezt csinálja, és analaog gnd jol be van kötve, és tényleg minden perfiéria jól van konfigurálva, akkor még utolsó esélyként megnézném az adalapban megadott bemeneti impedancia nagyságát.
Ha alkaline elemet használsz, akkor annak ~lineáris a kisülése, ami alapján simán lehet következtetni a kapacitására. Zombee kolléga azt hitte, hogy NiMh vagy Li-ion akkumulátorra gondolsz.
Ja értem akkor bocsánat.Igazábol majd azt is szeretnék de elöször valami egyszerübbet szeretnék.Gondolom maga az AVR nem alkalmas a mérésre vagy igen?
Az átláthatóság kedvéért összeraktam a 3 filet.
A probléma még mindig, hogy nem tudom írni/olvasni a ROM SR-ét így a memóriáját sem... A nagy 2mp-es késleltetések, csak a kód lassítására szolgálnak. SB
Alapból minden láb lebeg valahol fél volt körül.
Viszont itt a méréssel is lesz valami gond. A multival a portláb tövében mérve más feszt mérek mint a feszosztónál mérve. Viszont ha a portlábtól nézem a feszosztóig, akkor meg 0V-ot mérek. Itt a kapcsolóüzemű táppal lesz nem kis gond. Megpróbáltam leárnyékolni nyákdarabbal és máris csökkent ez a feszültség. Az volt gyanús, hogy a portlábon kisebb feszt mértem mint a feszosztónál. Ha a procitól jönne vissza ez a dolog, akkor ott pont fordítva kéne lenni. Szóval nem a proci emeli meg vsz, hanem a kapcsolóüzemű táp, ami nem túl szerencsés helyre került Ebből sztem holnap nyáktervezés lesz és satronik, meg újrarendelem az alkatrészeket. Viszont most már odatervezek külső AD-nek helyet... M
Ha már újratervezel, tegyél be egy 10-100pF os kondit az analog vonal hidegítésére, mielőtt belemenne a mikrovezérlőbe. Sok zajt leszűr, és alig kerül valamibe.
Sziasztok.
Egy ujjab probléma/Kérdésem lenne: Első:Attiny 2313 hány "programot" tudna eltárolni/meghívni/kezelni?Ugyértve hogy bevan töltve 4 Program pl az AVR be és gombokkal váltok köztük. Második:Hogyan lehet ezt megoldani? Mivel Lenne egyszerűbb? IF? vagy külön File és Includolni? Köszönöm előre is a segitséget.
Egy C könyv forgatását javaslom.
Hidd el, nem fogod megbánni.
Hehe. Ravasz.
Az én válaszom, hogy csinálj X darab "taszk" függvényt, amiből futnak a dolgok. Mivel egy AVR programja soha nem érhet véget, ezeket a függvényeket ciklusba kell megoldani. De, és itt jön a csavar: a ciklusmag végén a vezérlés visszakerül a main függvénybe, ami valamilyen feltétel alapján kiválasztja hogy legközelebb melyik taszk függvényét hívja meg. Ha nem változik semmi akkor az előzőt hívja meg, kvázi ciklust valósítva meg ezzel. A váltás a main függvény feladata(pl. a hívás előtt ellenőrzi a kapcsolók állását), illetve interruptot is használhatsz(pl. gombnyomásra), de akkor is csak a main-nál lesz átkapcsolás. Ügyelj arra hogy a taszkfüggvényekben létrehozott változók elvesznek, használj globális változókat! Egyébként ezt a módszert nem-preemptív ütemezésnek hívják. Köszönöm a figyelmet. A hozzászólás módosítva: Jan 14, 2013
A setjmp, longjmp segítségével tényleges szálakat is csinálhatsz, de mondjuk 128 byte rammal rendelkező eszközön ne próbáld. Szálanként legalább 64 byte stack legyen benne.
Régen szórakozásból megírtam, de egyébként az esetek 1%-ában lehet rá szükséged. Egyébként az AVR nem tud programot betölteni. Felprogramozod és úgy marad. A flash 10000 írást bír ki, nem való program betöltésre.
Sziasztok
Minden klappol ugy ahogy kell köszönöm a segitséget. Még egy kérdésem lenne AVR el gondolom nem tudom szürni a frekiket. Mármint a hangmagasságot hogy mély,magas stb? És annak megfelelően adjon ki jelet ? pl: magas ütemre a PB2 es lábon lévő dolgot hajtsa meg. Vagy ehez már Filter kell?
Sziasztok!
Lenne egy C programom ahol egy gomb lenyomására lefut egy konfiguráló rész ami ad egy jelet a hardvernek majd méri a visszaérkező jelig eltelt időt (erre azért van szükség mivel ez az idő változhat mivel a hardvere is saját fejlesztés és ha változtatok rajta akkor újra meg kéne mérni ). A feladat az hogy ezt a mért értéket elmentse az AVR mivel a főprogram használja ezt és ne kelljen újra elindítani a konfigurálást minden egyes kikapcsolás után.
Ilyesmire találták ki az adat EEPROM-ot. Az adatlapban megnézhető van-e benne és mennyi.
Nem tudom pontosan hogy mit akarsz epiteni, de lehet hogy egy MSGEQ7 IC kellene neked...
Üdv!
Kérhetnék egy kis segítséget egy 8535-ös AVR és egy 25LC320-as EEPROM kommunikációjával kapcsolatban? A problémám, hogy nem tudok vagy/és írni/olvasni. A bekötések 99%, hogy jók, a gond szerintem az adat küldésben és fogadásban van. Az adatlapja szerint: Idézet: „2.5 Serial Clock (SCK) The SCK is used to synchronize the communication between a master and the 25XX320. Instructions, addresses, or data present on the SI pin are latched on the rising edge of the clock input, while data on the SO pin is updated after the falling edge of the clock input.” Szóval ha jól sejtem az írásnál és az olvasásnál más-más SPI beállítást kell használnom. Tippem szerint a CPHA bitet kell feltétlen módosítanom: írásnál 0-ra olvasásnál 1-re. Közel járok az igazsághoz?
Szia köszi a választ és hol tudok beszerezni ilyen IC et?(MSGEQ7)?
A projektem egy mély/bassus ra reagálo led/ fénycső ami megvan építve azaz vezérlés (maga a program hogy hány led vagy épp Fénycső legyen aktív) aza problémám perpill hogy ha Keverőpultal nyomom akkor van elég fesz de amint telefon/számítógépre csatlakoztatom nincs elég kakaója hogy meghajtsa szoval kell egy Előerősitő is ami fixen 50% al megemeli a bejövö jelet.plusz egy Bassus Ampfiler vagy micsoda hogy a mélyre reagáljon. remélem érthető. ez a MSGEQ7 IC mit is tud pontosan?
Egy érdekes jelenséget tapasztaltam.
A while(1) függvényben a SPIWR(0xFF) és az utána következő SPIWR(0x11) első alkalommal szépen lefutnak, de második alkalomtól kezdve mintha el lenne csúszva 1 bit-tel az LSB irányába, tehát a 8. bitet nem jeleníti meg. Ez mitől lehet? Talán a gond a többszörös SPI inicializálással van?
Ami neked kéne az egy FFT(gyors furier transzformáció) program az avr-be. Kell mintavételezni a bejövő hangjelet és abbol kiszámítani a frekvenciakomponeseket. Egy avr elbírja.
Én annó Ezt építettem. Itt az avr talán mega48 számolja a fouriret egy másik végzi a kijelző multiplexelést. A neten fellelhető függvénykönyvtár számára. Programot nem tudok szolgáltatni, mert azóta sajnos elveszett. A hozzászólás módosítva: Jan 16, 2013
Ezt én mint kezdö meg tudom csinálni? vagy van neten fellelhetö Bassushoz is "example"kod?
Mindenképpen jelentősen bonyolultabb mint összedrótozni egy analóg szűrőt. Szét kell nézni hátha van kész megoldás. Nemtudom mennyire vagy kezdő én akkor még az voltam, sok elszántsággal és bíbelődéssel kb egy hónap alatt összehoztam.
hááát nekem legegyszerübb megoldás kéne és az AVR mégjobb lenne ha megtudnám oldani de nincs kedvem sokat cseszekedni vele :// ráadásul mintavételezéshez sincs eszközöm stb. de utána nézek csak sajna nem tudom hogy az AVR nek hogyan tudom megadni hogy ne sorba csinalja a folyamatokat hanem parhuzamosan mert jelenleg 3 állás van ami közt váltok 0-1-2 enyi mást beteszek akkor nem fut le.
|
Bejelentkezés
Hirdetés |