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
Szia!
A 74(ls/hc)00 helyett a 74(ls/hc)132-t használd... Lábkompatibilisek... A gomb kimenete és a kapu bemenete közé egy R C tag kell még.
ATtiny13 írt progikat, még a legegyszerübbet sem tudom bootloderrel feltölteni a továbbfejlesztett 13A-ra. Tud valaki valamit?
Sziasztok,
A kissebb AVR-ben lévő USI interfészt össze lehet kötni valahogy PC-vel, vagy egyszerűbb nagyobb MCU-val UART-on keresztül? (RS232) Előre is köszi.
Az USI-nal kell varialni programbol. Inkabb javaslom a UARTot.
Össze lehet kötni, miért ne lehetne?
Ha a legegyszerűbb módot választod, akkor a nyomtatóportot kell használnod. Gondolom kevés lábad van, ezért SPI vagy IIC jöhet szóba. A nyomtatóportot bármelyik programnyelv tudja Windows és DOS alatt is. Általában a [base LPT1=378h] porton találod a 8 adatbitet, de lehet hogy fel kell konfigolnod a vezérlőt is(base+1 és base+2 címen), hogy az adatbiteket kimenetként állítsd. Majdnem ugyanúgy mint az AVR-nél! Ha merészebb vagy akkor nem az adatbiteket használod hanem a vezérlőbiteket(5 darab ki van vezetve, némelyik invertálva). Ezután nincs más dolgod, mint a kontroller MOSI,MISO,SCK portjait bekötöd. PC-n szoftveresen gyerekjáték lesz megvalósítani az SPI-t, lényeg hogy az órajelet is a PC adja. A dolog előnye hogy TTL jeleket használ, hátránya hogy nem igazán hordozható(nyomtatóport), illetve a Windows nem mindig szereti ha megkerülik a port kezelését...
Szia,
assemblerben programozok. A különböző avr-eknek megvan az tipusszám.ini definiciós fájljuk, amiket meghívok a progi elején. Ez mindig működik. Ehhez a csökött ATtiny13a-hoz is megadta agyártó. De mondj valamit arról, hogy hogyan tudom ki/be kapcsolni a SELFPRGEN fuse bitet? Kösz
Köszönöm, de magas egy kicsit, majd emésztem...
Igazság szerint a PC-t nemigen tudom programozni, és csak arra kellene a kommunikáció hogy adc-t olvasgassak, meg más apróságokat játszak vele. (valami már meglévő programmal. (Hyper-Terminal?)
A Hyper Terminal csak RS-232 vonalon kommunikál, azaz a kontroller UART-ot fel kell programoznod. Nem nehéz, a bitráta generátort kell rendesen beállítani.
És még kell egy MAX-232 is, bár ha csak egyirányú a kommunikáció akkor két tranzisztorral magad is építesz egy szintkonvertert.
A FUSE bitek között megtalálható. AVR Studio-val tolod?
Azzal. Lehúztam a legújabbat 4.18 +SP2 a honlapjukról, de azon sem tudom úgy beállítani az ATtiny13A-t, hogy úgy vigye mint a sima 13-at. Szóval mit kéne csinálnom szerinted?
Idézet: „bár ha csak egyirányú a kommunikáció akkor két tranzisztorral magad is építesz egy szintkonvertert.” Ha kétirányú a kommunikáció, akkor is elég a két tranzisztor a szintkonverzióhoz, a negatív segédfeszültséget az egyik modem vezérlő jelről lehet levenni...
Az AVRStudio-ban be lehet állítani a FUSE biteket, de csak akkor ha azzal is programozod fel.
Ha nincs olyan programozód amit kezel az AVRStudio(pl. STK-500 vagy AVRISP) akkor csak azzal a programmal tudod beállítani a SELFPRGEN FUSE bitet, amivel áttöltöd a hex-et is a kontrollerre.
Azt hogyan tudom, megcsinálni, hogy az AVR tudja, hogy mennyi az idő? Kijeleznie nem kéne, csak használnia (pl.: ha x óra x perc van, akkor csináljon valamit).
Időzítő...
Használd a 16 bitest, túlcsordulás esetén hívj interruptot ahol egy saját számlálót növelsz. Ha megfelelő értékre állítod az OCR-t, akkor a saját számláló már emberközeli értéket is felvehet(másodperc, századmásodperc, stb...).
Kulső 32khz osc és Bascomban pl. a Config clock= utasítás súgójában minden meg van (készen).
Köszönöm, de azt hiszem, ehhez így még kevés vagyok, valami konkrétabb példa nincs? Már néztem át avr-es óra programját, olyanét, ami ki is jelzi, de nem láttam át, hogy melyik része az ami nekem kell.
TavIR-AVR: Köszönöm, de nem Bascomot használok. Egyébként miért pont 32kHz-es oszcillátor kéne hozzá?
Idézet: „Egyébként miért pont 32kHz-es oszcillátor kéne hozzá?” Nem 32kHz, hanem 32KHz kell hozza. A kulonbseg, hogy a kis 'k' 1000-et jelent, mig a nagy 'K' 1024-et. Tehat 32768 Hz. Ha ezt 15* jobbra shifteled, akkor epp 1-et kapsz, es akkor azt hiszem mar ertheto - 1mp idozitest kapsz ha a 15. bitet figyeled a szamlaloval... 16 bites szamlaloval ha csak hagyod, hogy generalja a megszakitasokat, akkor 2mp-es idozitest tudsz csinalni, ami a legtobb ora alkalmazashoz tokeletesen elegendo. Van meg egy ok amugy, hogy az oszcillator aramkor rendkivul keveset fogyaszt. Gyakorlatban nA-eket lehet merni egy jol megtervezett aramkor eseten, azaz akar evekig is elmehet az ora egyetlen elemmel.
Szia!
Nagyon jó a logika a k,K mint kiló prefixumra. Bár szerintem olyan nem létezik, hogy KHZ. De pl.: mintha a RS5C372A-s RTC tudna menni 32kHz (32000Hz) és 32768Hz-en is. szerk: amúgy a kilobyte-ot azt igy irják: kB, nem?
Nem tudom pontosan, hogy rendelkezik erről a prefixumról az SI (vagy más szabvány). De szerintem az attól függ, hogy az alapmértékegység decimálisban van rögzítve akkor 10^3 (x1000) amennyiben bináris akkor 2^10 (x1024). Egyébként ez kis/nagy-betű analógia nem állja meg a helyét pl.: MB (megabyte) - MJ (megajoule) esetén sem. Hiszen itt sem lesz kicsi az m. (Mert meg milli-t jelent.)
Helló!
Azt szeretném megkérdezni, hogy a nyomógomb kezelésénél a _BV azt jelenti hogy alacsony azaz 0-ás állapot?
A választ előre is kössz.
Nem. Az if() feltetel akkor igaz, ha a zarójelben lévő feltétel igaz (értéke 1).
A
Ha PINC-t össze ÉS-eled
Ha ezt teszed az if() feltételbe, akkor a feltétel utasításai lefutnak, ha a PC1 állapota 1. Az alábbi linken olvassad el a Bit állapotának lekérdezése részt. Bővebben: Link
Köszönöm a felvilágosítást.
A WILL-I robotos cikkeket már számtalanszor elolvastam mégsem emlékeztem arra hogy benne van a bit állapotának lekérdezése. Most figyelmesebben fogom elolvasni. Még egyszer köszönöm. Idézet: „Nagyon jó a logika a k,K mint kiló prefixumra. Bár szerintem olyan nem létezik, hogy KHZ. De pl.: mintha a RS5C372A-s RTC tudna menni 32kHz (32000Hz) és 32768Hz-en is. szerk: amúgy a kilobyte-ot azt igy irják: kB, nem?” Ezt nem en talaltam termeszetesen ki! Es nem 'KHZ' lenne, hanem 'KHz' Csak a Kilo valtozik, nem a Hz... Az 1024 Byte pedig 1KB lenne szabvanyosan, csak mar lustak vagyunk es nem is igazan jol tanitjak ezeket a dolgokat. Nezd meg a tablazatot, JEDEC jelolest is figyelmesen: Bővebben: Link Az RTC lehet megy 32000 Hz-el is, nem tudom. Szamlaloval akarmit is megcsinalhatsz, pl compare modban szinte akarmilyen frekvenciaval menni fog az ora, hisz minden utemben megtortenik az osszehasonlitas. Azonban binaris logikai kapukkal egyszerubb a binaris szamokat kezelni, emiatt alakult ki ez a speci kristaly ertek. Idézet: „A bináris prefixum jelét úgy kapjuk, hogy a decimális SI-prefixum betűjéhez egy i betűt ragasztunk. A jelölésben kiemelendő, hogy a kilo kezdőbetűjét is nagy K-nak írjuk, és ezt kapjuk: Ki. A jelölések kimondva úgy hangzanak, hogy a decimális SI-prefixum első két betűjét kiegészítjük a bi (bináris) szócskával. Az eredményt az alábbi táblázat mutatja be.” Tehát a nagy K betű sem egészen helytálló, hozzá kell még ragasztani egy i betűt is. De ez csak a leírt verzió, kimondani úgy kellene: "Nini, van pár egy kibiherces kvarcom!" De megmondom őszintén, nem vagyok biztos abban, hogy bármilyen mértékegységhez célszerűen alkalmazható lenne ez a fajta jelölés, ennek utána fogok nézni hamarosan. Most olvastam tovább, Kafka hozzászólását is, mely szerint: Idézet: „De szerintem az attól függ, hogy az alapmértékegység decimálisban van rögzítve” Ennek alapján még akár elő is fordulhat, hogy decimális alapmértékegységeknél nem is szabad alkalmazni az "új" előtagokat. Idézet: „Tehát a nagy K betű sem egészen helytálló, hozzá kell még ragasztani egy i betűt is.” 'K' es 'Ki' is jo, aszerint, hogy JEDEC vagy IEC jelolest hasznal az ember -- en oreg vagyok, nekem jo lesz a regi JEDEC jeloles is Amugy azert kezdtek atterni az IEC-re, mert ahogy mar felvetodott a nagy 'M' eseten pl mar nem tudjuk decimalis avagy binaris M-rol van-e szo. Idézet: „De megmondom őszintén, nem vagyok biztos abban, hogy bármilyen mértékegységhez célszerűen alkalmazható lenne ez a fajta jelölés, ennek utána fogok nézni hamarosan.” En sem, de ha valaki azt irja 32kHz, akkor elsosorban 32000Hz-re gondolok, ami ora kvartzoknal nem lenne celszeru -- innen indult ki a gondolat menet.
Valószínű ez lehet az oka, mert a cég un. kombiprogrmozóját (kb. 100 éves) nem támogatja az AVR Studio. Megoldottam hardveresen, mert hétfőn működni kell a gépeknek. Oszcilloszkópon megnéztem a regiszter lábak jelszint különbségeit, és kikapuztam őket egy 7404-el. Szóval tetszik a fórum, ha időm engedi benézek.
Most megyek vissza megcsinálom a másik 3 vezérlést is. szia
Igen, valahol ott lehet a megoldás, abban amit írsz mégpedig, hogy melyik szabványt használjuk. Azért ez érdekes, ha továbbmész a wikipedián a kilobyte-ra (link) ott kiterjeszti azt a táblázatot. Ebből én azt szűröm le, hogy:
Decimálisra és binárisra: SI: k - kilo Binárisra: IEC: Ki - kibi JEDEC: K - kilo Vagyis helyes a kB és a KB is (nem hiszem, hogy lustaságból irják helytelenül oly sok helyen) itt azért olvasható, hogy voltak ezzel bajok régen is Engem valójában ez izgat: Idézet: „Nem 32kHz, hanem 32KHz kell hozza.” Vajon tényleg létezhez ilyen: KHz? Izgalmas gondolatsorok ezek, köszönöm az együtt "gondolkodásotokat" és várom Norberto mire jut. Idézet: „Vagyis helyes a kB és a KB is (nem hiszem, hogy lustaságból irják helytelenül oly sok helyen)” Igazad van, de azt is irja, hogy az ISO kilo alatt 1000-et ert (tizes szamrendszer), binarian pedig 1024, mert ugye binarisan ugy "kerek" a szam
Na igen, ezeket a régi programozókat annak idején vagyonokért árulták, pedig akkor sem tudtak többet mint ma.
Legfeljebb kevesebb volt a kontroller és a szaki aki foglalkozott vele. Látszik, hogy a bevételt nem a szoftveres támogatásra vagy fejlesztésekre fordították... Most pont azok a cégek vannak bajban amelyek még mindig ezeket az őskövületeket használják, holott egy mai modern programozóval könnyebb a mai kontrollerekhez és fejlesztőrendszerekhez(Bascom, AVRStudio) illeszteni. [Ez itt a reklám helye] A nálam(AVR-Doper) vagy a TavirAVR-nél(USBISP) kapható programozó beszerzésén is érdemes elgondolkodni, nagyon olcsó és nem probléma sem a FUSE bitek állítása, sem a programozás, stb. |
Bejelentkezés
Hirdetés |