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
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.
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)
Idézet: 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.„A problémám, az hogy én atmega 8-cal akarom használni, de mindig fordítási hibát kapok.” Nekem úgy tűnik, hogy ez 8 adatvezetéket használ, pedig az LCD vezérelhető lenne 4 adatvezetékről is.
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.
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.
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.
Szerintem.
Könnyebb és gyorsabb is lenne, újraírni a programot! Ismerve az adott feladatott és a hozzá illő hardvert választva.
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)
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.
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.
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.
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?
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.
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
Cseréld ki a kvarcot mindenképp, jó lenne a kondikat is cserélni és a panelt pl denaturált szesszel vagy alkohollal lemosni.
Ú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.
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?
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!
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...
Ü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!
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
Köszönöm a választ!
Egyébként Arduinoval is lehet?
Lehet, fentebb írtam.
Köszönöm a választ! Figyelmetlen voltam!
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.
Szia !
Én az USB-s TavIRisp (MKII)-t, (igaz nem PIC-el van építve) de ezt használom évek óta!
Azért lenne jó egy PIC-es verzió, mert ez a ,,Melyik volt előbb...,, esete!
PICKIT 3 meg itt van kéznél. |
Bejelentkezés
Hirdetés |