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   20 / 840
(#) vegyészmérnök válasza etilalkohol hozzászólására (») Márc 4, 2007 /
 
Valószínűleg a BASCOM-nak "igaza van". Milyen változót akartál deklarálni? Mindig az adott feladatra alkalmas, de a lehető legkevesebb memóriát igénylő változótípust kell választani.
(#) etilalkohol válasza vegyészmérnök hozzászólására (») Márc 4, 2007 /
 
Egy egyszerű byte típusút. Az egész progi egy sort tartalmaz pl.
dim valami as byte
end
erre kidobja: out of sram space
egy estben sikerül egy bájtnyi változót létrehozni, ha dim valami as XRAM Byte
de ha ennél nagyobbat vagy többet akarok akkor az out of XRAM space hibával áll le, holott elvileg XRAM-om nem is lehetne..... no erre varrjak gombot
Ha a tiny13 helyett pl. attiny2313-at állítom be akkor semmi hibát nem dob, ezért gondoltam, hogy a bascommal lehet valami......
(#) vegyészmérnök válasza etilalkohol hozzászólására (») Márc 4, 2007 /
 
Nálam semmi gond nem szokott lenni Attiny13 programozásánál. Byte és integer válozókból többet is lehet deklarálni, stringből max 5 karakterest ha jól emlékszem. Lehet hogy nem tetszik neki, hogy nincs semmi végrehajtandó utasítás a programban. Írjál bele valami végrehajtandót is (pl.: wait 1).
(#) etilalkohol válasza vegyészmérnök hozzászólására (») Márc 4, 2007 /
 
Akkor is hibát dob. Neked milyen verziószámú a bascomod?
Honnan töltötted le? Kipróbálnám azzal!
(#) vegyészmérnök válasza etilalkohol hozzászólására (») Márc 4, 2007 /
 
Most nem tudom megmondani, majd csak holnap délután. Szerintem a legfrissebb verzió van meg nekem. A BASCOM honlapjáról töltöttem le. Keress rá a gogliban.
(#) etilalkohol válasza vegyészmérnök hozzászólására (») Márc 5, 2007 /
 
OK, köszi!
(#) vegyészmérnök válasza etilalkohol hozzászólására (») Márc 5, 2007 /
 
Megnéztem, nekem 1.11.8.1. verzió van. Azt még próbáld meg, hogy ezt a program elejére írod:
$regfile = "ATtiny13.dat"
Ezzel definiálod a chipet a fordítóprogram számára, akkor is ha esetleg az Options-ban más van megadva.
(#) gtk válasza vegyészmérnök hozzászólására (») Márc 5, 2007 /
 
Szia!
Idézet:
„Pár napja készült el a frekvenciamérőm, amivel pl. mérni tudom a hálózati frekvencia század Hz-es ingadozásait is.”


Milyen f. tartomanyban tudsz merni vele?
Milyen modszerrel csinaltad?
-Impulzus szamlalas
-periodus-ido meres

(en is eljutottam nehany khz meresig,de aztan beleuntam..)
(#) vegyészmérnök válasza gtk hozzászólására (») Márc 5, 2007 /
 
Periódusidő-méréssel működik. Elvileg 0,005 Hz-től kb. 1 MHz-ig mér, de nagy frekvenciáknál egyre pontatlanabb. Eddig még csak 1-200 Hz tartományban teszteltem. Nagy frekvenciák méréséhez előosztót kell alkalmazni.
(#) andrewforest hozzászólása Márc 5, 2007 /
 
Help!
Megépitettem az alábbi USB-ISP programozót:
http://web.interware.hu/lekovacs/usb500/index.html

Feltelepitettem a VCP drivert hozzá, és amint bedugom az USB-be, az XP nem ismeretlen USB eszköznek látja, ami kb 5másodpercenként kiugrik egy buborékban...
Valaki tudna segiteni hogy mit kéne tennem vagy mit kéne ellenőriznem?? Tanácstalan vagyok...
köszi
(#) etilalkohol válasza vegyészmérnök hozzászólására (») Márc 6, 2007 /
 
Üdv!
Meglett a bibi, ha minden igaz:
a chip beállításainál van 3 beállítható érték ami gyanúsan pont 64 byte-ra jött ki (HW Stack 32, Soft Stack 8, Framesize 24) ezeket ha kisebbre állítom akkor marad hely a változóknak (miért nem vettem észre korábban?) ..... Mégegyszer köszi!
(#) vegyészmérnök válasza etilalkohol hozzászólására (») Márc 6, 2007 /
 
Nálam a HW Stack 32, a Soft Stack 8, a Framesize pedig 16.
(#) MaSTeRFoXX hozzászólása Márc 16, 2007 /
 
Sziasztok!
Valaki próbálkozott már megszakítással összehozni valamit AVR-en WINAVR-rel
Azzal küzdök hogy most egy LED villogjon szotveres időzítéssel (ez működik), meg egy másik led villogjon a TIMER0-segítségével. Írogattam a neten található dolgok, meg az adatlap szerint, de jelenleg most nem csinál jóformán semmit. Ha beleírom a sei() utasítást akkor fagy az egész program, ha nincs benne, akkor meg normálisan villog a szofveres időzítéssel a LED. Az AVR a belső 1MHZ-es órajellel megy, ezt osztanám 1024-el, meg ez még osztódna 256-tal a timer0 miatt. Így kjönne kb 3Hz....
Ez lenne az első megszakítás kezelésem AVR-rel...

#include < avr/io.h >
#include < util/delay.h >
#include < avr/interrupt.h > //

void kesleltet(void)
{
for(uint8_t i=0; i<5; i++)
{
_delay_ms(250);
}
}

ISR(TIM0_OVF)
{
PORTC = PORTC ^ 0x01; //portc.0 bitjének a negálása--->villogás
}

int main(void)
{
DDRD=255;
DDRC=255; //kimenetek legyenek
PORTD=0;
PORTC=0;
TCNT0=0; //timer0 kezdeti érték
TIMSK=0b00000001; //csak a Timer0 interrupt legyen bekapcsolva
// 76543210
TCCR0=0b00000101; //1024-es előosztó
sei(); //megszakítások be
//főciklus
while(1)
{
PORTD=255;
kesleltet();
PORTD=0;
kesleltet();

}
}
(#) MaSTeRFoXX hozzászólása Márc 16, 2007 /
 
Úgy látszik megoldódott
TIM0_OVF helyett TIMER0_OVF_vect -et kellett írni.....
(#) MaSTeRFoXX hozzászólása Márc 17, 2007 /
 
Újabb kérdés:
Hogy lehet winAVR-ben számot kerekíteni? Tizedes törtből kellene egész számot készíteni. A round-ot nem fogadja el...
(#) potyo válasza MaSTeRFoXX hozzászólására (») Márc 18, 2007 /
 
Nemtudom, elfogadja-e, de ha pozitív, adj hozzá 0.5-öt, és vágd le az egész részt. Ha negatív, akkor a 0.5-öt ki kell vonni.
(#) gtk hozzászólása Márc 19, 2007 /
 
Sziasztok!

Multiplex vezerlest csinaltam Nixie csoveknek avr-el.
Az 1:N kitoltesi tenyezo miatt N szeresere kellett novelnem az anod aramot.

Aza gond ,hogy ha kifagy a proci (= leall a mux) akkor vege a csoveknek.

Erre kellene valami megoldas.
Vagyis ellenorizni kellene szoftbol hogy mukodik-e a mux.
(kerdes: hogy ha kifagy a proci akkor van-e muveletvegzes...tehat lehetseges-e szoftbol barmit ellenorizni?)

Van valami otletetek?

Udv.
(#) Dudus válasza gtk hozzászólására (») Márc 19, 2007 /
 
Használj WatchDog - ot. Akkor ha kifagy a proci, automatikusan újraindul.
(#) gtk válasza Dudus hozzászólására (») Márc 20, 2007 /
 
Koszonom !

WatchDog -nal kb. mit kell beallitani?
(Sosem foglalkoztam meg ezzel..)

Peldaul homeromnel tapasztaltam hogy tap kontakt -hibanal kifagy a mux,(rosszabb esetben egy 7szegmenses kijelzo kijelez,jobb esetben egyik sem)

Hasonlo esetekben is mukodik a WatchDog ?
(#) Dudus válasza gtk hozzászólására (») Márc 20, 2007 /
 
A WatchDog lényege, hogy egy belső számláló visszafelé számol 0-ig. Neked kell gondoskodni arról, hogy 0-t sose érje el. Ha eléri, akkor resetel az AVR. (Végtelen ciklusba keveredtél, valami nem kerek)

Ugyanígy a Táp adott szint alá csökkenése esetére is tudsz RESET - et kiváltani. A táp ha lecsökken tud csúnyákat művelni.

Ezzel a két dologgal gyakorlatilag a leggyakoribb hibákat kiküszöbölted.
(#) potyo válasza gtk hozzászólására (») Márc 20, 2007 /
 
A watchdog egy a processzortúl függetlenül, saját oszcillátorral működő számláló. Olyan, mint egy Timer, és ha túlcsordul, akkor reseteli a processzort. Azért, hogy normál üzem közben ne resetelje, létezik egy utasítás (nemtudom AVR-nél hogy hívják), ami törli a számlálót, így az nullától kezd ismét számolni. Ezt az usasítást pl. a multiplexet vezérlő megszakításban érdemes lefuttatni. A watchdog periódusidejét pedig a Timer periódusidejétől valamivel nagyobbra kell állítani.

A watchdogban az a szép, hogy mindig működik, így bármilyen hiba folytán áll le a processzor, amint túlcsordul a watchdog számlálója, reseteli azt.
(#) potyo válasza potyo hozzászólására (») Márc 20, 2007 /
 
Bocs, lefele számol, de a lényege ugyanaz.
(#) gtk válasza Dudus hozzászólására (») Márc 20, 2007 /
 
Dudus,potyo koszonom!

A lenyeget azt hiszem megertettem a leirasotokbol,johet az adatlap.
(#) kocsgab002 válasza gtk hozzászólására (») Márc 22, 2007 /
 
Sziasztok!
Teljesen új vagyok itt, bár az elektronikával már régebb óta foglalkozom, az avr-ek (és a mikrokontrollerek ) világát most kezdem el felfedezni. Egy AT90S2313-at szeretnék felprogramozni, ehhez gondoltam megrendelem az avr.tavir.hu oldalról az STK200-at. De a leírásban megakadtam..mert azt írja, hogy a tápellátást a céláramkörből veszi...tehát nekem meg kell építeni azt az áramkört amiben szeretném használni az avr-t, táp alá helyezni, ésbúgy programozni? tehát akkor a kész áramkörre rá kell terveznem azt a 10 eres kábelnek a csatlakozósorát amivel összekötöm az STK200-al?
segítsetek kérlek mert elég zavaros...előre is köszönöm mindenkinek . gábor
(#) gemo válasza kocsgab002 hozzászólására (») Márc 22, 2007 /
 
Ez igy van, isp csatit ra kell tervezned az armkorodre. De azt is megoldhatod, hogy kulon epitesz egy olyan aramkort amin van kvarc es isp csatlakozo. Ezen az aramkoron programozod az avr-t majd bepited.
(#) kocsgab002 válasza gemo hozzászólására (») Márc 22, 2007 /
 
Aham....akkor már kezdem érteni. akkor azon a "programozó" áramkörön csak tápnak, GND-nek és kvarcnak kell lenni.. de gondolom az az adatlapján rajtalesz... köszönöm szépen
(#) potyo válasza kocsgab002 hozzászólására (») Márc 23, 2007 /
 
Nemtudom, a chip milyen tokban van, de ha DIL tokban, akkor én a piceknél úgy csinálom, hogy egy (profi, nem lemezes) IC foglalatra ráforrasztottam az égetőtől jövő vezetékeket, és így céláramkörben tudom programozni, viszont nem kell a céláramkörben plusz csatlakozási pontokat kialakítani. Bár viccesen néz ki egymásban két ilyen foglalat, de a fejlesztés végén kiveszem az égetőhöz menőt, és marad csak a normál chip+foglalat kombináció.
(#) gtk válasza kocsgab002 hozzászólására (») Márc 24, 2007 /
 
Az STK200 valoban a celaramkorbol veszi a tapot: stabil+5V !

Az STK200-at meg lehet csinalni nagyon egyszeruen amint a kepen avr.tavir.hu-n lathato.Erdemes a pufferelt verziot csinalni.
En eddig az avr-es aramkorok mindegyikere raterveztem az emlitett csatlakozot.Igy csak osszecsatolom a celaramkort az stk200-al es mehet a fejlesztes.
Ez NAGYON megkonnyiti a munkat.En pl abszolut le sem huzom a csatlakozot egeszen addig amig be nem fejezem a fejlesztest

A celaramkorben ami lenyeges,hogy az avr RESET labat fel kell huzni 10k-val +5 ra.Igy miutan megvolt az egetes,latod is az eredmenyet.En neha ugy erzem PC-re fejlesztek
(#) gtk hozzászólása Márc 27, 2007 /
 
Sziasztok!

Megtudjatok mondani ,hogy az AT89S52-24JU mennyire van kifutoban?Erdemes ra fejleszteni? (PLCC44 -es es ez tetszik benne...)
(#) davidov hozzászólása Márc 27, 2007 /
 
Sziasztok!

Korábban beírta valaki egy szabályozható tápegység linkjét a fórumba (http://www.electronics-lab.com/projects/test/022/index.html) . Szertnék én is valami hasonlót csinálni, de nem teljesen értem, hogy mivel méri az áramot.
Az ok, hogy a sönt ellenállással, csak nem tudom, hogy az kapcsolási rajzon az R5-e az? 10k nem sok egy kicsit? Azon elég sok teljesítmény esik nem?
Ha valaki képben ilyen téren tudna segíteni, hogy mekkora értékű ellenállást szoktak sönt ellenállásnak használni?

Előre is köszi.
Következő: »»   20 / 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