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   44 / 840
(#) ttl válasza Topi hozzászólására (») Dec 13, 2007 /
 
végülis abban se volna rossz!
megköszönném ha küldenél
(#) xerox66 hozzászólása Dec 15, 2007 /
 
Sziasztok!
Segítsetek legyetek szívesek!
Van egy TavIRisp USB programozóm,van egy *.bas filém és van még egy ATTiny2313-mam.
Azt szeretném kérdezni hogyan tudom beégetni a tinybe a basic filét?
Eléggé kezdő vagyok ezen a téren.
Köszönöm!
(#) GrandF válasza xerox66 hozzászólására (») Dec 15, 2007 /
 
Szia!
Leszedsz egy bascom demót vagy az mcselec.com oldalról, vagy pedig az avr.tavir.hu oldalról, értelemszerűen feltelepíted, betöltöd vele azt a .bas fájlt, aztán leellenőrzöd, hogy a tiny2313 van e benne beállítva, illetve hogy a többi beállítás stimmel e, aztán le kell fordítani a fájlt, így lesz belőle egy .hex fájl.
A beégetést vagy elintézed bascom alatt (de ha jól tudom, akkor a bascom, és az usb-s progizó együtt lassú), vagy pedig más égetőprogi után nézel.
Égetés elött még le kell ellenőrizni (illetve beállítani)a konfigurációs biteket, és utána már be lehet égetni.
Amúgy az avr.tavir.hu oldalon van egy egész jó kézikönyv, amiben nagyrészt benne van : Bővebben: Link
(#) xerox66 válasza GrandF hozzászólására (») Dec 16, 2007 /
 
Köszönöm szépen a gyors válasz majd utána olvasok és próbálkozom!
(#) TavIR-AVR válasza GrandF hozzászólására (») Dec 16, 2007 /
 
A bas-ból HEX/Bin-t kell fordítanod, ezt az előbb linkben megkaptad, hogy milyen módon.

A programozóról meg leírás:
Bővebben: Link
(#) akiro hozzászólása Dec 17, 2007 /
 
Sziasztok! Én 100 db LED-et szeretnék egy AVR-re tenni, 10x10 elrendezésben mátrixban. Ezzel még nincs gond, viszont nem szeretném "elfőzni" szegényt mikor egyszerre begyújtom mondjuk mindet. Valami áramgenerátor kell nekem azt hiszem. Kiszámolni nem tudom, mert ahány LED, annyiféle fajta és szinű, afféle karácsonyi móka lesz.

Szóval ha van valakinek ilyesmi tippje, kérem ossza meg velem. Gondolom valami BC tranzisztor elég lehet. De hogy?
(#) deguss válasza akiro hozzászólására (») Dec 17, 2007 /
 
Szia!

Használj 2db ULN2003-as IC-t (open collector 500mA-ig) a soroknak, és vagy a PNP párját (nehéz beszerezeni), vagy 10 PNP tranyót. Valami kis BC-t, amit éppen kapsz. Azt hiszem a BC327-es jó is.
(#) akiro válasza deguss hozzászólására (») Dec 17, 2007 /
 
Nem 20 db tranyó kell? 10 a vizszintes 10 sornak és 10 a függőleges 10 sornak. Egyébként ez rendben is van hogy ez kell, de mégis, hogy kell összeállitani egy ilyen áramgenerátort? Gondolom kell ellenállás is, tuti, de bővebben? Köszi szépen.
(#) tibi0531 válasza akiro hozzászólására (») Dec 17, 2007 /
 
Nem áramgenerátorként kell bekötni, hanem kapcsolóként. A tranzisztorokat közös emitteres kapcsolásba kell kötni.A test felöli oldalra jönnek az NPN tranyók a pozitív részre pedig a PNP-k. Ha egyik led árama sem haladja meg a maximális 40mA-t akkor a sorokat kötheted közvetlenű az AVR kimenetére is az oszlopokat pedig tranyókkal, vagy ULN2003-al. Természetesen az oszlopokat multiplexálni kell.
Hétszegmenses kijelzőnél találsz erre példát.
(#) Paso hozzászólása Dec 18, 2007 /
 
Sziasztok !

A Net-en rengeteg .HEX kiterjesztésű fájl található, ami gondolom már lefordított forrásprogram. A kérdésem az lenne, hogy ezeket hogyan lehet letölteni a mikrovezérlőbe, mert nekem csak .BIN kiterjesztést enged a BASCOM-8051.
(#) TavIR-AVR válasza Paso hozzászólására (») Dec 18, 2007 /
 
Ha lenyitoda filetípust, nem kínálja fel a *.HEX-t? 8081-be akarod beégetni vagy AVRbe? nem ugyanaz a 2 bascom!
(#) akiro válasza tibi0531 hozzászólására (») Dec 18, 2007 /
 
Na igy már értem, külön köszi a multiplex dologért. Ugyanis ma ugrott be, hogy ok, hogy én ki akarok egy ledet gyujtani, de ha az egyik "oszlopon" már van aktiv led, akkor ott H szint van. Most a lednek a másik lábára hiába küldök H szintet hogy begyujtson, nem fog...

A kapcsoló, itt nem fogok belefutni abba hogy az adott "soron" ami egy tranyón van, csökkenni fog a fényerő, ahogy egyre több led gyujt be rajta? Köszi nektek a segitséget. utánnanézek a multiplex dolognak és összerakom, hagy örüljenek a kicsinyek. Futófény már van az ablakban AVR-es de ott nem mátrixban Egyszerübb volt.
(#) akiro hozzászólása Dec 18, 2007 /
 
Nahát, értem én ennek az elméletét. Mostmár tudom hogy a karórámba ha lelövöm a kvarcot, miért csak pár pálca marad a kijelzőn Akkor mostmár pár konkrétabb kérdésem lenne csak.

Ezt nem értem ami a " Kijelzők multiplex vezérlése (Dynamic Drive)" cikkben van:

#int characters[17] = {
#/* 0 */ 0b00111111,
#/* 1 */ 0b00000110,
#/* 2 */ 0b01011011,
#/* 3 */ 0b01001111,
#/* 4 */ 0b01100110,
#/* 5 */ 0b01101101,
#/* 6 */ 0b01111101,
#/* 7 */ 0b00000111,
#/* 8 */ 0b01111111,
#/* 9 */ 0b01101111,
#};

Miért characters[17]? 2x7 szegmens az 14, meg ugye a 2 kijelző "GND?" az csak 16.

Második kérdés, mivel 100db LED lenne benne,
ezeket mind-mind külön le kell tárolnom egy ilyen
int characters[]-ben? Bele fog ez férni egy AtMega8-ba?
főleg hogy, és változatos összevisszaságot szeretnék beleirni.

Harmadik kérdés, ami van a rajzon a kijelző felett 4 tranyós rész mi lenne?

Utolsó (bocsi), BasCOM-ban nincs egy ilyen példaprogi valakinek? Neten találtam jó dolgokat de azok C...

Köszönöm a türelmetek.
(#) digimann válasza akiro hozzászólására (») Dec 18, 2007 /
 
Szeva!

A dolog lényege a te esetedben, hogy a kijelződet/mátrixodat valamelyik dimenziójában fel kell darabolnod.

Íme egy példa, választod a soronkénti kijelzést:

10 sor van, te időben egymás után aktiválod, azaz nyitod a hozzá kapcsolódó tranyót. És pontosan abban az időpontban, mikor aktiválod a sort, aktiválod a benne megjelenítendő oszlopokat. Így az adott sor, és az adott oszlop(ok) metszéspontjaiban elhelyezett led-ek világítani fognak. Ezután jön a 2., 3., 4., ... 10. sor.

A kapcsolás frekvenciáját, avagy az egyes sorok H állapotának időtartamát úgy válaszd meg, hogy az ember szemének egybemósódjon, és ne látszódjon a villogás. Tudomásom szerint az ember szeme kb. 25 fps-el lát, tehát tedd fölé a frekit. 100Hz-es képfissítés már jól néz ki (gondolj csak a tv-re), ami azt jelenti, hogy 1 ms időre ízzítasz egy-egy sort, így 1/100s alatt végigpörög a 10 sor.

Üdv: Zsolt

U.I.: Én asm-et használok, de írok neked példaprogit, ha mutatsz kapcsolást hozzá.
(#) Paso válasza TavIR-AVR hozzászólására (») Dec 19, 2007 /
 
Szia !

BASCOM-8051 - et használnék, nem kínálja fel csak a .BIN kiterjesztést. AT89C2051 - be szeretném DL2TM
programozóval égetni a programot. Egyáltalán a .HEX típusú fájlt átlehet konvertálni .BIN kiterjesztésűvé ?
Szerintem ez független a BASCOM típustol, mármint a konvertálás.
(#) tibi0531 válasza Paso hozzászólására (») Dec 19, 2007 /
 
PonyProg-al elvileg lehet át lehet konverálni a bin fájlt, égetni viszont nem.
(#) Paso válasza tibi0531 hozzászólására (») Dec 20, 2007 /
 
Sziasztok !

Válaszolok a saját kérdésemre, hát ha mást is érdekel.
A .HEX fájlt tökéletesen kezeli és ismeri a DL2TM programozót is az alábbi program.

IC-Prog
(#) Paso válasza Paso hozzászólására (») Dec 20, 2007 /
 
Ja és még egy fontos dolog, Magyar nyelvű leírás is van hozzá.

Letöltések
(#) ktibi007 hozzászólása Dec 21, 2007 /
 
Sziasztok!!

Lenne egy kérdésem:

Mi az alapvető kölünbség a kettő között:

1. #define A 100

2. const int A=100;

kösz a válaszokat!!!
T
(#) Topi válasza ktibi007 hozzászólására (») Dec 21, 2007 /
 
A különbség nagyon egyszerű. A define egy egyszerű replace. A 2. az egy fizikai regiszterbe írás és művelet.
A define-nál ha azt mondod, hogy:
#define Alma (~(1<<5))

akkor a fordító a
eredmeny = korte && Alma
esetén, a következő kódot generálja.
eredmeny = korte && (~(1<<5))

Magyarul a nagy különbség, hogy a define nem érték adás, hanem definiálás. Define esetén bármi lehet. Egy kifejezés, egy függvény, bármi.>>>>
(#) ktibi007 válasza Topi hozzászólására (») Dec 21, 2007 /
 
kösz!!!
(#) huba hozzászólása Dec 23, 2007 /
 
Sziasztok. Kicsit rosszul jártam... A nyáron irtam bascomba egy RGB-led es világitásvezérlés progit. A sors ugy hozta hogy most került a gazdájánál beszerelésre. Akkor is épp hogy belefért a 4K-ba a program RC5-el, sorosportal meg mindennel. Most kelett volna rajta még pár simitást végrehajtani de a progi eltünt a gépröl :eek2: . Gondoltam ujrairom c-be de beletörött a bicskám, még van mit tanujak. Mega48 hejett kapot Mega88-at, csak tehnikai korlátok miatt csak 4K progi fordul le bascomba.

Valaki tudna segiteni egy kicsit hogy a korlátlanitott bascomot hogy tanitsam meg Mega88 kezelésére? vagy egy ujjabb verzio megpockolásával? :zavart1:
(#) tibi0531 válasza huba hozzászólására (») Dec 23, 2007 /
 
Ha jól tudom a 1.11.7.4-es bascom-nál újabbra nincs orvosság.
Ajánlani tudom a Codevision AVR C fordítót, ami nem követel olyan magas szitű C nyelvtudást, meg van egy rakás beépített rutin is (LCD, UART ...).
(#) huba válasza tibi0531 hozzászólására (») Dec 23, 2007 /
 
Mostmár rááldoztam a teljes napot és kész vagyok a program 90%-val. Már csak az usztatás maradt hátra. Mostmár tulléptem a 4k-os határt
Akkor valahogy a 1.11.7.4 nek kellene bemásolni a mega88 dolgait. Sima bemásolás nem segitett. Még valamit lehet át kell másolni. Ha ez valahogy megindul összedobok egy Demo-board ot és esek neki a c-nek.
(#) tibi0531 válasza huba hozzászólására (») Dec 23, 2007 /
 
Szerintem ez a dolog a bascommal nem fog menni.....
(#) TavIR-AVR válasza huba hozzászólására (») Dec 24, 2007 /
 
A bascom gyógyítottból a vadon élőből az 1.11.8.1-es érhető el (emule, DC, stb).
Ebben a M88 támogatás benne van...
(#) Prinner hozzászólása Dec 29, 2007 /
 
Van egy problémám egy mega8-al, véletlenül rossz firmware-t égettem bele, és most nem tudok kommunikálni sehogyan sem. 0x00-és ID-t olvas vissza az égető, és a flash is mindenhol 0.
Az égető működőképes, más kontrollereket ír/olvas, a kontroller sem lehet port hibás, mert nincs azokra semmilyen eszköz kötve, az égető minden adatvezetéke is 330 ohmos ellenállásokon van összekötve a mikrovezérlővel.
Lehet, hogy megint sikerült letiltanom a soros kommunikációt?
(#) TavIR-AVR válasza Prinner hozzászólására (») Dec 29, 2007 /
 
A firmware nem üti ki a kommunikációt. A biztosíték bitek állítása viszont megteheti....
(#) Prinner válasza TavIR-AVR hozzászólására (») Dec 29, 2007 /
 
Köszi, sejtettem, hogy valami ilyesmi hibát csináltam. Közben lemértem az égetés közben az avr lábait: az stk200 megfelelően dolgozik, csak nem olvas vissza semmit, a MISO-n végig 0 szint van.
Még az lenne a kérdésem, hogy vissza lehetne hozni a régi állapotába a kontrollert, vagy nem érdemes ezzel többet foglalkozni?
(#) TavIR-AVR válasza Prinner hozzászólására (») Dec 29, 2007 /
 
Ez a 0 jön vissza többmindentől lehet:
- órajelet állítottad el
- SPI letiltás
- RESET letiltás

Ha az órajelet állítottad el, akkor a XTAL2 v. XTAL1 lábra küldj 1MHz....12MHz közti órajelet. Ezzel külső órajelről hajtod, így mindegy hogy XTAL, resonator avgy ExtClock van beállítva.

A maradék 3 esetben csak ún. paralell nagyfesz programozóval lehet újraéleszteni...(STK500 alappanel)
Következő: »»   44 / 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