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
Köszönöm szépen, én értem amit a kódba írtál de az AVR nem képes felfogni....
Az üdvözlő üzenetet nem írja ki, és ha küldök egy betűt akkor valami ciril betűt ír (pontosan C betű alatt egy vessző) ki loop foreverbe míg le nem veszem a küldő krokodil csatít. Megjegyzem sima tranzisztoros átalakítót használok nem IC-t. Arra gondoltam, hogyha úgyis összezavarodik, mi volna ha a betűk küldése helyett csak a biteket állítanám? Vagyis 5 parancsot kell megkülönböztessen, és egy 8 bites adatcsomagba csak egy bit értéke 1 a többi 0. Lehet hardware hiba is, mert a krokodil csatik nembiztos hogy garantálják a megfelelő kontaktot, de majd holnap megvizsgálom jobban. A hozzászólás módosítva: Jan 27, 2014
Az ASCII kód azért jobb mert kisebb a hibalehetőség, azért nem jó biteket átküldeni. Akkor szokott mindenféle más karakter megjelenni ha rossz a baudrate sebessége, vagy hardveres hiba van lehet hogy a tranyós megoldás nem megfelelő hozzá, lehet hogy lassan billennek át ahhoz hogy az jelenjen meg aminek kell. Nekem egy ATtiny45-ből van az USB-Soros konverter, mert a laptopomon nincs soros port, viszont így nem kell illeszteni. 5V-nak kell lenni a TX lábon amikor nem küldesz, és az RX lábon is amikor nem fogadsz, különben akkor se lesz értelmezhető az adat. De van amikor a Pc oldalon amit használsz programot nem működik megfelelően, ha adsz egy e-mail címet akkor küldök egy progit ami biztosan működik és oda vissza tud kommunikálni soros porton.
Szia!
Kipróbáltad, hogy a TX-RX-et összekötöd és úgy kommunikálsz a terminálon keresztül? Amit küldesz vissza kell, hogy kapd változatlan formában. Ha nem így van, akkor a konverterben van a hiba. Üdv Kiborg
Ez a konverter eleve nem er semmit, mert amugy is visszajut a PC-be minden, amit kuld. A PC Tx jelet hasznalja -12V-nak (-5V-nak manasag..) az Rx meghajtasahoz. Amikor a PC ad, akkor a sajat Rx pontjan visszakap mindent. Ha valamelyik modemvezerlo jelet hasznalna a Tx helyett minusz tapnak, akkor talan jo lenne. De azert talan, mert arra sincs garancia, hogy az adott modemvezerlo jel -12V-n lesz, es nem pluszon.
PC felől igen csináltam loopback tesztet, működik rendesen. Amúgy azt akarom, hogy végül rf áramkörön keresztül történjen a kommunikáció, még nem építettem meg őket, elég lesz csak PC txd- TTl rxd vonalat vezetni?
A hozzászólás módosítva: Jan 28, 2014
Egy PPM jelet sikerült létrehozni, de amikor többet hozok létre akkor a jelek között eltelt idő növekszik. Mit nem vehettek figyelembe?
Idézet: „Mit nem vehettek figyelembe?” Ezt bővebben kifejtenéd? Nem értem.
1 jel maximum 2ms az jól össze is jött, de 2 jel között 0,3ms-nak kell eltelnie. Nálam Ezt úgy csinálja hogy az 1. jel után megvan a 0.3ms, de a második jel után már 0.6ms a várakozási idő, és ez minden jel után növekszik +0,3ms-al.
Miért kell növekednie? Akkor hogy fogja érzékelni a többi csatornát?
Van a dolognak egy sokkal egyszerűbb változata. Pl. kiadsz egy start impulzust X ideig, utána csend ugyanannyi ideig, majd még egy start impulzust kiadsz, így a vevő tud szinkronizálni. A második start után újra vársz, majd a következő X időben kiadsz egy impulzust ha az 1. csatorna "1", ill. nem adsz ki semmit ha "0". Utána ugyanez a többi csatornával. Az adó viszonylag egyszerű lesz, a vevőnél viszont a szinkronizációt kell megoldani időméréssel.
Sziaisztok,
2 attiny között szeretnék infra kapcsolattal kommunikálni. Az adó oldalon van 4 gomb. A vevő oldalon a program futása során meg szeretném különböztetni, hogy melyik gombot nyomta le, és aszerint függvényhívást végezni. Úgy gondolom az adó oldal az egyszerűbb, ennek az oldalnak a leírását felhasználva: http://eliaselectronics.com/how-to-infrared-ir-transmitter-receiver Viszont a vevő oldallal gondban vagyok. Tudom hogy kell egy egyszerű IR vevő (pl TSOP31238 (hestore)), viszont arra nem találtam érthető választ, hogy programozási szinten hogy kezelem a beérkező jeleket, és hogy szükség van-e valamire a jelek átalakításához. Topi féle AVR-Dopert és AVR Studiot használok. Köszönöm a segítséget
Bocs néha egy kicsit furán fogalmazok, úgy gondoltam hogy nem kell növekednie, de még is növekszik.
V-USB-t akarok használni Attiny 2313-al, ha kötelező a kvarc akkor 16Mhz-est használhatok 12 Mhz helyett? Akkor mit kell módosítani a kódban, csak a makefile-t?
Próbáltam újrafordítani a neten lévő kódot, mert módosítanom kellett benne, de sajnos nem engedi leforditani teljesen, mert hibát ír ki, valaki tudna segíteni?
Amúgy nemtudom miért de a WinAVR egy rakás hibát írt ki, a sok komment miatt, a ; nem látta komment jelnek csak a c ben használt // jelet. Végül csak egy kevés hibával maradtam, de nemtudom helyrehozni, mivel assemblybe van írva és nem értem: A hiba:
Elnézést, a makefile volt rosz.
Nem tudom mit kell benne átírni, hogy STK 200 as programozó legyen, lpt 1 en, attiny 2313, 16 Mhz. Meg további hibákat találtam benne, jó volna ha valaki elküldené a hex file-t.
Sziasztok!
Szoftveres PWM előállításához szeretnék segítséget kérni. Hogyan szokás ezt csinálni? Azt tudom, hogy az erőforrást nagyon felemészti, de más dolga gyakorlatilag nem is lenne. Köszi: Tecsa
Sziasztok!
Egy ring (kick-box) időzítőt szerettem volna építeni a fiamnak ami 1,30 ~ 3 percig mér hangjelzést ad, otthoni gyakorláshoz. Közben a fórumban turkálva sokan írtak a mikrokontrollerekről, ezért a HESTOR-tól rendeltem egy AVR-es kit-et, mivel ez tökéletes lett volna: http://www.hestore.hu/prod_10031815.html A csomag megérkezte után ahogy kell összeépítettem, előtte amit lehetett azért a biztonság kedvéért kimértem (korábban mát egyszer megszívattam magam így). Az áramkör kér, éleszt, semmi...a volt Trabantom jutott eszembe az is ilyeneket csinált. A probléma ott kezdődik, hogy minden forrasztást már többször is ávizsgáltam, teszteltem a kijelzőt is de semmi. A start megnyomására feszültség változás áll be de az áramkör nem indul. Sajnos AVR-el semmi tapasztalatom sincs, már csak arra tudok gondolni, hogy eleve hibás. Tudna valaki tanácsolni valamit, hogy mit kell ezeknél mérni amiből lehetne következtetni az AVR hibájára? Az AVR egy ATMEGA48PA-PU típus. Előre is köszi!
Helló!
Nem ejtetted el esetleg a kvarc kristályt, mert ezek ütésre érzékenyek és megváltozhat a frekvenciájuk vagy teljesen tönkre is mehetnek, órajel nélkül pedig nem megy az AVR. A hiba oka lehet még, hogy hozzáértél az AVR lábaihoz és a sztatikus töltés tönkretette azt, ez a hiba viszont csak úgy deríthető ki ha rákötsz egy ISP-s programozót ha az nem tudja felvenni vele a kapcsolatot akkor valószínűleg ez a hiba, esetleg lehet hogy mégsem felprogramozva érkezett az AVR ez is csak egy kiolvasással vizsgálható. Egyenlőre csak ennyi jutott eszembe.
Szia!
Nem ejtettem le, igaz a doboz amibe csomagolva volt nyomott volt, holnap veszek egy kvarcot, az ISP már rázósabb ügy, hirtelen nem is tudom van-e valaki a közelemben aki rendelkezik ilyennel. Nagyon köszönöm az ötleted, próbálkozom!
Ha nem sikerül záros határidőn belül megoldani a kérdést, és nem rosszul forrasztásról van szó, akkor mindenképp keresd fel az ügyfélszolgálatot. Ezen kitek is vannak raktáron mindig, azonnal megoldható a csere ha szükséges.
Szerk: Vagy beviszed, és bevizsgálják. Programozatlan AVR-es KIT-ek nem igen kerülhetnek ki, gyanúsabb nekem is a kristály gond, hogy esetleg megnyomorgattad forrasztáskor vagy hasonló, mert maga az áramkör egy öntartó táprésszel van ellátva a nagyon hosszú elem élettartam miatt, tehát ha a proci nem fut, bekapcsolni sem tud, illetve csak addig amíg nyomod a gombot. A hozzászólás módosítva: Jan 31, 2014
Topi, köszi. Sajnos a városban sehol sem találtam kristályt, így rendelni kellett (jövő hét pénteken jön meg ....vicc). Ha nem jön össze akkor ügyfélszolgálat
![]()
Sziasztok!
DS1307-et próbálok összeismertetni az ATmega644-esemmel, és ha olvasni próbálok belőle, megáll a kódom. Írni tudom, az I2C státuszok megvannak. Nem az I2C driveremmel van a gond, mivel ugyanezen panelen (meg másikon is) DS1621-el tökéletesen működik a kommunikáció, hőmérsékletet megkapom, ha akarom, akkor az egész értéket, ha akarom, akkor a fél fokot is. Mivel elsőre nem sikerült semmilyen regisztert kiolvasni, megpróbáltam az NVRAM-ját olvasni (0x09-es bájtot, amibe korábban írtam). Ez sem működik. Berakom a kódot, alul van a debugos verzió, amiben a státusz flageket írtam be a visszatérési értékbe, és mindenre megfelelő státusz állt be. Hw hiba? Van mellé kötve 32k768-as kristály, 3V-os elem és 100 nF-os kondi is. A config regisztert és az idő regisztereket is beállítottam már egyszer, természetesen az oszcillátort elindító bitbe is beírtam a kötelező 0-t. Már jópár netes megoldást is megnéztem, de szintén nem működik.
Kiegészítésként az I2CRead() függvényem. Ha ezt ledekkel debuggolom, akkor kijön, hogy a ennek a while ciklusában akad el, vagyis nem érkezik be az adat (nem áll be a TWINT flag).
A hozzászólás módosítva: Feb 1, 2014
Érdekelnének az AVR-es dolgok, mert hezitáltam a PIC és az AVR között, de erre tenném a voksit.
Kérdésem lenne: Az Arduino és az AVR programozása ugyanaz, ugye? Az Arduino tanulni jó, illetve programokat leszimulálni, jók az értesüléseim? Arduinoval nem lehet AVR-t programozni? Vagy ahhoz külön ISP programozó kell?
Az Arduino jó választás lehet, ha nem a kínai félárú ócsított változatot veszed meg belőle.
Elvileg lehet AVR-t programozni Arduinoval, bár még sosem próbáltam. Az ISP programozó nekem inkább kézreáll. A PIC és az AVR nem egyértelmű dolog. Én az AVR-t jobban kedvelem, de - a PIC programozása (assembly, MPLIB, memóriatérkép), meglehetősen borzalmas - PIC-kel tudsz egy sima breadboard-on USB-zni, szemben az AVR-rel, ahol nincs DIP-es USB chip (az Arduino tartalmaz SMD-s USB sorosportot) - a Microchip nagyon jó perfifériákat gyárt (műveleti erősítő, ADC, ...) és nem is drága - Én AVR-t használok mikrovezérlőnek, de a perfifériák már a Microchiptől (PIC) vannak Értelmes szimulációra kizárólag AVR Studio alatt voltam képes, ami nem Arduino. Nincs arról tudomásom, hogy egyszerűen lehet-e Arduino-s projektet AVR Studio alatt fordítani és szimulálni.
Az Arduino az -sajnos- nem AVR, hanem egy programozási platform. Ha AVR-t szeretnél programozni,
ahhoz egyrészt szükséged lesz legalább egy AVR IC-re(kezdésnek egy ATMega16 jó lehet), egy programozóra vagy programozó klónra(stk500, avrisp-mkii, jtag ice), na meg a körítésre. Tápegység, breadboard, vezetékek, ellenállások, LED-ek, nyomógombok, stb. A hozzászólás módosítva: Feb 2, 2014
Úgy gondoltam, hogy veszek egy arduinot, ott kipróbálom az AVR programozási okosságokat, és így már tudhatok AVR-t programozni, vagyis legalább lesz valami fogalmam, hogy mi hogyan. Azaz az egy tanuló board lenne, nem élesben lenne tesztelve az AVR programozási tudásom. Mert ott ugye az alapokat (nyomógombok kezelése, kimenetek kezelése, kijelzők kezelése) megtanulható.
Persze AVRhez majd valami AVR programozót veszek, ISP-s kell ha jól sejtem.
Arduino-n nem sok olyan dolgot találsz ami AVR programozáshoz hasznos lehet, ennyi erővel
egy demo board - szerintem - jobb vételnek tűnik. Pl. T-Bird2 vagy valami hasonló.
Akkor mire jó az arduino?
Én azt hittem, hogy ott az alap AVR programozást el lehet sajátítani, mivel AVR platform (azaz AVR-t használ).
Modellépítők, programozni alig tudók/alig akarók részére. Kényelmes amikor rádugsz egy gyári
vagy klónozott kiegészítőt, és nem kell külön programozó hardver. Nem kell drótozni, meg a kiegészítőkhöz saját library is van, nem kell azon filózni hogy mi melyik porton van. Sajnos ezután elfogynak az előnyök. Amikor valami saját egyedi cuccot szeretnél rádugni, már játszanod kell a portokkal, és semmivel nem leszel előrébb, mintha egy mezei AVR IC-re dugnád rá. Ezért van az hogy Arduino-t eddig csak kísérleti cuccokban láttam visszaköszönni. A hozzászólás módosítva: Feb 2, 2014
Sziasztok!
Évek után újra elővettem a régi HEStore-ból származó AVR programozómat, de sajnos órák ótra játszom a driverekkel és sehogy se akar működni. Az eredeti leírásban ami alapján régebben összehoztama dolgokat )(AVR Doper) nem segít sokat, most Atmel Studio 6-tal próbálkozom (de a cikkben írt AVR Studio 4-el még addig se jutottam mint a 6-tal.) Valaki tudna esetleg segíteni (hogy egyáltalán merre lehet a hiba)? A hibaüzenet amit az Atmel Studio 6 ad: Idézet: „19:14:16: [ERROR] Could not establish communication with the tool., ModuleName: TCF (TCF command: Tool:connect failed.)” Valaki valami ötlet esetleg? Közben érdeklődnék, hogy aki nem a HEStore-ból rendelhető programozót használja (de nem is ilyen 10-20-30 ezer forintos KIT-eket hanem valami másik, de olcsó verziót) az mit használ??? Előre is köszönöm a segítséget! Üdv! |
Bejelentkezés
Hirdetés |