Fórum témák

» Több friss téma
Fórum » AVR - Miértek hogyanok
 
Témaindító: pakibec, idő: Márc 11, 2006
Témakörök:
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
Lapozás: OK   234 / 840
(#) Hp41C válasza Axel hozzászólására (») Jún 8, 2010 / 1
 
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.
(#) csabóca hozzászólása Jún 9, 2010 / 1
 
ATtiny13 írt progikat, még a legegyszerübbet sem tudom bootloderrel feltölteni a továbbfejlesztett 13A-ra. Tud valaki valamit?
(#) zombee válasza csabóca hozzászólására (») Jún 9, 2010 /
 
SELFPRGEN fuse bit be van kapcsolva?
(#) v alaki hozzászólása Jún 9, 2010 /
 
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.
(#) gtk válasza v alaki hozzászólására (») Jún 9, 2010 /
 
Az USI-nal kell varialni programbol. Inkabb javaslom a UARTot.
(#) zombee válasza v alaki hozzászólására (») Jún 10, 2010 /
 
Ö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...
(#) csabóca válasza zombee hozzászólására (») Jún 10, 2010 /
 
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
(#) v alaki válasza zombee hozzászólására (») Jún 10, 2010 /
 
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?)
(#) zombee válasza v alaki hozzászólására (») Jún 10, 2010 /
 
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.
(#) zombee válasza csabóca hozzászólására (») Jún 10, 2010 /
 
A FUSE bitek között megtalálható. AVR Studio-val tolod?
(#) csabóca válasza zombee hozzászólására (») Jún 11, 2010 /
 
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?
(#) Hp41C válasza zombee hozzászólására (») Jún 11, 2010 /
 
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...
(#) zombee válasza csabóca hozzászólására (») Jún 11, 2010 /
 
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.
(#) vagnerjazon hozzászólása Jún 12, 2010 /
 
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).
(#) zombee válasza vagnerjazon hozzászólására (») Jún 12, 2010 /
 
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...).
(#) TavIR-AVR válasza vagnerjazon hozzászólására (») Jún 12, 2010 /
 
Kulső 32khz osc és Bascomban pl. a Config clock= utasítás súgójában minden meg van (készen).
(#) vagnerjazon válasza zombee hozzászólására (») Jún 12, 2010 /
 
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á?
(#) trudnai válasza vagnerjazon hozzászólására (») Jún 12, 2010 /
 
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.
(#) Kafka válasza trudnai hozzászólására (») Jún 12, 2010 /
 
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?
(#) Kafka válasza Kafka hozzászólására (») Jún 12, 2010 /
 
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.)
(#) edison14 hozzászólása Jún 12, 2010 /
 
Helló!

Azt szeretném megkérdezni, hogy a nyomógomb kezelésénél a _BV azt jelenti hogy alacsony azaz 0-ás állapot?
  1. if (PINC & _BV(PC1))

A választ előre is kössz.
(#) Fizikus válasza edison14 hozzászólására (») Jún 12, 2010 /
 
Nem. Az if() feltetel akkor igaz, ha a zarójelben lévő feltétel igaz (értéke 1).
A
  1. _BV(PC1)
utasítás a
  1. (1 < < PC1)
utasítással egyezik meg.
Ha PINC-t össze ÉS-eled
  1. (1 < < PC1)-vel
, akkor a PORTC lábai közül a PC1 állapotát kérdezed le.
  1. (PINC & (1 << PC1))

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
(#) edison14 válasza Fizikus hozzászólására (») Jún 12, 2010 /
 
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.
(#) trudnai válasza Kafka hozzászólására (») Jún 12, 2010 /
 
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.
(#) Norberto válasza trudnai hozzászólására (») Jún 12, 2010 /
 
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.
(#) trudnai válasza Norberto hozzászólására (») Jún 12, 2010 /
 
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.
(#) csabóca válasza zombee hozzászólására (») Jún 12, 2010 /
 
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
(#) Kafka válasza trudnai hozzászólására (») Jún 12, 2010 /
 
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.
(#) trudnai válasza Kafka hozzászólására (») Jún 12, 2010 /
 
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
(#) zombee válasza csabóca hozzászólására (») Jún 12, 2010 /
 
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.
Következő: »»   234 / 840
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem