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   701 / 840
(#) ThompsoN hozzászólása Okt 25, 2015 /
 
Köszönöm a segítségeteket, fázishelyes módban jól működik.
(#) rasty hozzászólása Okt 25, 2015 /
 
Sziasztok!
A neten rendeltem egy hd44780 kompatibilis lcd kijelzőt. Adtak hozzá egy c programot atmega 64-re(ez rendben le is fordul).
A problémám, az hogy én atmega 8-cal akarom használni, de mindig fordítási hibát kapok.
Mit kéne átírni a kódban, hogy mega 8-on is fusson?
A forráskódot csatoltam.

LEC1602.C
    
(#) Sick-Bastard válasza rasty hozzászólására (») Okt 25, 2015 / 2
 
Az atmega8-ban nincs PORTA.
Ez kell lecserelned egy masik PORTn-ra.
Szerintem PORTD-lesz a nyero, mivel ez 8bites(PINek szama), a B-t leszamitva, de ott az XTAL amit celszerunek tartok szabadon hagyni ameddig csak lehet. (kristaly szamara fenntartani)
(#) Istvanpisti válasza rasty hozzászólására (») Okt 25, 2015 /
 
Idézet:
„A problémám, az hogy én atmega 8-cal akarom használni, de mindig fordítási hibát kapok.”
Ami nem is csoda, hiszen a MEGA8-nak nincs DDRA, és PORTA regisztere. A DDRA-t írd át DDRD-re, a PORTA-t PORTD-re. A DDRB, PORTB páros is jó lehet, de a programozóval "összeveszhet", ha nem teszel az SCK, MISO, MOSI lábakra 1-1 (1k) ellenállást az LCD felé, a programozót közvetlenül a lábakra kösd.
Nekem úgy tűnik, hogy ez 8 adatvezetéket használ, pedig az LCD vezérelhető lenne 4 adatvezetékről is.
(#) kapu48 válasza rasty hozzászólására (») Okt 25, 2015 /
 
Ha jól megnézed! Ebben nincsen PORTA.
MEGA8
Használd helyete a PORTD-t!
(#) vyky hozzászólása Okt 26, 2015 /
 
Sziasztok.
Tőlem megszokott okos kérdésre várnám a válasz,vagy az útmutatást.
Tehát a kérdésem az lenne,hogy pic-re írt programot ,át lehet írni valahogy AVR-e?
Van ennek valami módja?
Előre is köszönöm.
(#) zombee válasza rasty hozzászólására (») Okt 26, 2015 /
 
LCD: annyit fűznék a kollégák hozzászólásához, hogy a PORTC/DDRC - t is le kell cserélni, mert 28 lábú AVR-eknél ez a port csak 6 lábas. A program tuti fordul PORTC.6/7 használatával is, de nincs hova kötni...
Szóval PORTB és PORTD lesz a tuti.
(#) zombee válasza vyky hozzászólására (») Okt 26, 2015 /
 
Mindent át lehet írni, az már más kérdés hogy abban a formában hogyan fog működni és alapból mennyi időt vesz el a dolog. Időzítéskritikus ill. speciális hardverek használata esetén ne várj csodákat, vannak olyan rutinok amelyek direkt egy adott hardverre lettek írva, ezeken nem tudsz változtatni, csak ha újraírod az egészet. De pl. egy CRC32 számolás nem hiszem hogy annyira hardverfüggő lenne.
Remélem nem hex kódot akarsz átírni.
(#) kapu48 válasza vyky hozzászólására (») Okt 26, 2015 /
 
Szerintem.
Könnyebb és gyorsabb is lenne, újraírni a programot!
Ismerve az adott feladatott és a hozzá illő hardvert választva.
(#) Digerist hozzászólása Okt 26, 2015 /
 
Hello
Összeraktam első avr égető met

AVR Égető
erről az oldalról.
egy d-sub 9 pin átalakitó kéne usb-re ezt hogy oldjam meg?
A 2 és a 3 mas láb van a kommunikációra erre kell az usb ről az adatvivő 2 kábel? (zöld,fehér)
Usb kiosztás
és az 1,6,4 re pedig a +5v ?(piros)
az 5 pedig a földre. (fekete)
(#) Sick-Bastard válasza Digerist hozzászólására (») Okt 26, 2015 / 1
 
Ha a COM portos RS232-t szeretned egy USB-re lecserelni, akkor egy atalakitot keresel.
USB - RS232
A fenti linkben talasz par darabot ami jo lehet.

En ezt reszesitem elonyben, jelenleg. Ez lehet nem jo a szamodra, mivel a linkelt kapcsolasban van egy 3.-dik osszekottetes a szintilleszto (MAX232) es a mikorvezerlo kozott.
(#) Digerist válasza Sick-Bastard hozzászólására (») Okt 26, 2015 /
 
Ja igen nézegetem de gondoltam megoldom , hogy összekötök 2 kábelt
egy d-sub 9 pin és egy usb kábelt vagy a Z1 9 pint (d-sub) kicserélem usb re.
(#) vyky hozzászólása Okt 27, 2015 /
 
Köszönöm a válaszokat.
(#) rolandgw hozzászólása Okt 27, 2015 /
 
Sziasztok! C-ben hogy lehet megvalósítani azt az asm esetet,amikor a megszakítás vektorba ijmp utasítást teszek,tehát az ugrás Z értékétől függ? Próbálgatok függvényeket címezni a megszakításból,elég durva kódot eredményez méret szempontjából,de lehet hogy én csinálok valamit sután.
(#) Kovidivi hozzászólása Okt 27, 2015 /
 
Sziasztok!
Mennyire érzékenyek az Atmegák oszcillátor bemenetei? Pl. Atmega328-nál valami rezonált a nyákon, elkezdtem tapogatni, de nem szűnt meg a sípolás. Viszont észrevettem, hogy amint ráfogtam a kvarc pF-os kondijaira, megállt a rezgés és a program is, majd rővidesen újraindult (reset). 4x eljátszottam ezt, ezután már nem indult el a program. Ennyire érzékeny lenne ez a két bemenet?
(#) holex válasza Kovidivi hozzászólására (») Okt 27, 2015 /
 
Nem tudom ez mennyire segítség, de: én DS1307 RTC-nél tapasztaltam, hogy ha hozzányúlok a kvarc lábaihoz, akkor megáll az óra, ha elengedem, megy tovább. Szóval ez egy létező jelenség.
(#) Kovidivi válasza holex hozzászólására (») Okt 27, 2015 /
 
A megállást én is tapasztaltam, de lehet, hogy tönkre is tettem a bemeneteket a tapicskolással, mert nem akar újraindulni... Holnap átforrasztom ezt a részt, és megpróbálok ráprogramozni, hátha...
Furcsa lenne, ha ennyitől tönkremegy ez a rész.
A hozzászólás módosítva: Okt 27, 2015
(#) Droot válasza Kovidivi hozzászólására (») Okt 28, 2015 /
 
Cseréld ki a kvarcot mindenképp, jó lenne a kondikat is cserélni és a panelt pl denaturált szesszel vagy alkohollal lemosni.
(#) Kovidivi válasza Droot hozzászólására (») Okt 28, 2015 /
 
Újraforrasztottam a két kondit, de szerintem nem ez volt a hiba. A tapicskolás közben megállt a program, és valószínűleg pont akkor, amikor az EEPROM-ba mentett. Így az EEPROM tartalma elszállt, és a program pedig nem ellenőrzi, hogy mit olvas ki, csak használja, így olyan értékeket vettek fel a változók, amivel nem jelent meg a kijelzőn semmi. Tapasztalat: mindig ellenőrizd vissza az EEPROM-ból visszaolvasott adatot, hogy a megadott határokon belül van-e. Ha nem, akkor kell egy alapérték.
(#) Droot válasza Kovidivi hozzászólására (») Okt 28, 2015 /
 
Nem újraforrasztani kellett volna.
Az EEPROM tartalmát kiolvasás után mindig ellenőrizni kell.
Szerintem nem kell fogdosni a panelt működés közben, nyilvánvalóan az kelthet zavart és érintésvédelem miatt sem az utolsó. Őszintén szólva még sosem jutott eszemben egy működő áram alatt lévő panelt fogdosni (mert tök logikus hogyha pl az SPI busz lábait összefogdosod, zavar keletkezhet), de nem 100%, hogy ez nálad normális.
Én a helyedben tesztelném, mégpedig úgy hogy a panelt este fél órára kinthagynám, majd behoznám bekapcsolnám és rálehelnék, ha a probléma nem jön elő és saját magadnak lesz a cucc akkor úgyhagynám.
A Fuse biteket amúgy megfelelően állítottad be?
(#) Kovidivi válasza Droot hozzászólására (») Okt 28, 2015 /
 
Azért fogdostam, mert 10KHz-en muzsikált egy olyan nyák, amin semmi mozgásra képes alkatrész nincs. Hátha rá tudok arra fogni, ami mozog, és akkor elhallgat. Nem hallgatott el. EEPROM fájl nincs, azt az első indításkor hozza létre a program, alapértelmezett értékekkel, de ha menet közben elszáll az EEPROM tartalma, arra nincs megfelelő védelem.
Zavart el kell, hogy viselje az áramkör, vagy legalább resetelnie kell, ha attól tönkremegy, mert fogdosom, akkor hibás a kapcsolás, és/vagy a program. Most a program. 5V van az egész panelen, lehet fogdosni nyugodtan.
Egyértelmű, hogy az EEPROM adatai szálltak el, mert a betűtípus sorszáma is oda van mentve, így ha az nagyobb, mint a maximális, nem jelenik meg semmi, vagy értelmetlenség látszik. Újraírás után be tudtam lépni a menübe (valószínűleg újraírás nélkül is ment volna, csak nem próbáltam, mert a menühez fix betűtípus van beállítva, az EEPROM nem is lett módosítva, mert a preserve eeprom fuse bit be van kapcsolva), és minden érték maximális vagy minimális értéken volt. Beállításnál már ellenőrizve van, hogy ne tudjak hibás értéket bevinni, tehát visszaolvasta az EEPROM-ban tárolt változó értékét, átadta a beállító függvénynek, az pedig azonnal javította, és az értelmezhető tartományba szorította. Április óta működik nap 24 órában ez az óra, azóta még nem volt gond vele. Vicces, hogy fél év után is derülnek ki hibák!
(#) zombee válasza Kovidivi hozzászólására (») Okt 31, 2015 /
 
A tárcsa kondik időnként muzsikálhatnak, mert lényegében olyan a kialakításuk mint a piezo hangszóróknak. Van olyan hogy sajátfrekvencia, ha ez a hallható tartományba esik és a rezgő freki ennek egész többszöröse akkor sípolhat a cucc. Akkor is ha műgyantába öntöd az egészet. Ha ettől még rendesen működik akkor nem piszkálnám.

Nemrég építettem pár USB-billentyűzet emulátort AT90USB162 IC-vel, és nagyon felbosszantott hogy az egész egy rettenetesen instabil masinává változott. Minden apróságtól lekapcsolt az USB-ről, lefagyott, vagy egyensen "elszállt" benne a program és csak boot módban volt hajlandó indulni. Pedig ez a billentyűzet emulátor ugyanabban a szerkezetben épült mint az azonos IC-vel működő AVRISP-mkII klónjaim. Egy apró különbség volt: Akkor még nem volt bedobozolva...
Onnantól kezdve hogy bedobozoltam a cuccot, akárhol taperoltam nem bolondult meg, és hosszú hetekig villogtatta nekem a scroll lock-ot...
(#) szucsistvan123 hozzászólása Okt 31, 2015 /
 
Üdv!
Szükségem lenne egy olyan AVR programozóra, ami USB-s. Tudnátok ajánlani valamit? (olyan lenne a legjobb, ami PIC-el van felépítve)
Vagy ha Arduinoval lehet programozni AVR-t akkor az is jó lenne nekem!
(#) gerry válasza szucsistvan123 hozzászólására (») Okt 31, 2015 / 1
 
Például tinyUsb. Arduinoval való programozás, avr.tavir.hu. Keresőjébe beírod. Komplett cikket láttam fent.
A hozzászólás módosítva: Okt 31, 2015
(#) szucsistvan123 válasza gerry hozzászólására (») Okt 31, 2015 /
 
Köszönöm a választ!
Egyébként Arduinoval is lehet?
(#) gerry válasza szucsistvan123 hozzászólására (») Okt 31, 2015 /
 
Lehet, fentebb írtam.
(#) szucsistvan123 válasza gerry hozzászólására (») Okt 31, 2015 /
 
Köszönöm a választ! Figyelmetlen voltam!
(#) Kovidivi válasza zombee hozzászólására (») Okt 31, 2015 /
 
Szia. Megnézem, van-e rajta ilyen kondi, de szerintem mind SMD. Lehet még egyszer áttaperolom, csak most alkatrészenként. De van egy olyan sejtésem, hogy a LED-mátrix kijelző adja ki belülről a hangot. De hogy hogyan, fogalmam sincs. Majd kapni fog egy szép dobozt is!

Lenne egy másik kérdésem:
Atmega328-on szeretnék 11bit-es PWM-et létrehozni, Timer1-en. Jól látom, hogy a 14-es kell nekem, ICR1-et beállítom 2048-ra?
Ezen a képen.
(#) tursaba válasza szucsistvan123 hozzászólására (») Okt 31, 2015 /
 
Szia !

Én az USB-s TavIRisp (MKII)-t, (igaz nem PIC-el van építve) de ezt használom évek óta!
(#) szucsistvan123 válasza tursaba hozzászólására (») Okt 31, 2015 /
 
Azért lenne jó egy PIC-es verzió, mert ez a ,,Melyik volt előbb...,, esete!
PICKIT 3 meg itt van kéznél.
Következő: »»   701 / 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