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   18 / 839
(#) gtk válasza DRKonor hozzászólására (») Dec 29, 2006 /
 
Ez
  1. unsigned char *str;
hova mutat?Van foglalva hozza memoria?Vagyis sztem nincs...

pl:
  1. #define MAX_NUM 16
  2. unsigned char str[MAX_NUM+1];
(#) gtk válasza gtk hozzászólására (») Dec 29, 2006 /
 
Vagyis igy:
  1. #define MAX_NUM 16
  2. unsigned char str[MAX_NUM+1];
  3.  
  4. void putvalue(unsigned char x, unsigned char y, int value)
  5. {
  6. unsigned char *p_str = str;
  7. itoa(value,p_str);
  8. while (*p_str) {
  9. putchar(x,y,*p_str);
  10. x+=6;
  11. p_str++;
  12. }


vagy csinalod pointerek nelkul indexelve a tombot...
(#) gtk válasza gtk hozzászólására (») Dec 29, 2006 /
 
hm...
(#) DRKonor válasza gtk hozzászólására (») Dec 29, 2006 /
 
Aha! Remek így már működik is! Azt hittem a memória foglalás dinamikusan megy, de lehet hogy ezt fordító válogatja. Hittech PIC C nél ezzel nem volt gond!
Köszönöm a segítséget!!!!!
(#) gtk válasza DRKonor hozzászólására (») Dec 29, 2006 /
 
Orulok hogy mukodik!
Vegulis a pointeres verziot hasznaltad?

UI: eleg fura hogy mas forditonal mukodik,ugyanis ha nincs lefoglalva memoria akkor nem tom hova rakja az adatokat
C-ben azert forditotol fuggetlenul nem art betartani nehany dolgot.
(#) DRKonor válasza gtk hozzászólására (») Dec 30, 2006 /
 
Igen maradtam a pointeres változatnál, de csak 6 memória helyet foglalatam, mert max előjeles 16 bites számot használok. Most már jöhet a garfikai design. Még a Deprez műszer utánzásán töröm a fejem, vonal és kör bárhova rajzolása már megoldott.
(#) gtk válasza DRKonor hozzászólására (») Dec 30, 2006 /
 
Ok. Sok sikert!
(#) tams hozzászólása Jan 1, 2007 /
 
Üdv!
Hogy tudnék egy 10K-s(vagy 50k vagy 100k-s) digitális potméterrel(ds1669) egy optocsatoló Ledjénel a vezérlését megoldani?
Gondolom kellene egy tranzisztor csak azt nem tudom, hogy kellene bekötni? vagy milyen ellenállás kellene még hozzá?
Szóval tulajdonképp egy egyszerű feszültségszabályzó kellene. Az van az optocsatoló adatlapján hogy 3V és 50mA kell a LEDnek.
Bemenő feszültség pedig 9v volt kör kellene vagy 12, igazából a digitpotméter egy infrás kapcsolóval szeretném majd kapcsolgatni.
Remélem tud valaki segíteni és azt is remélem, hogy sikerült elmagyaráznom, hogy mit szeretnék.
Köszi!
(#) ttl hozzászólása Jan 5, 2007 /
 
Sziasztok! meg szeretném kérdezni,hogy meg lehet-e csinálni azt , hogy egy memória ic-t konkrétan 61c256-ot rákötni az avr-re és usb-n mint pendriveot használni?
a tápot azt megkapná folyamatosan a memória.
és ha igen megépítené valaki nekem?
(#) potyo válasza ttl hozzászólására (») Jan 5, 2007 /
 
Meg lehet csinálni.

Valaki biztos meg is építené, ha felajánlasz érte egy legalább 5 nullára végződő összeget.-->Mit akarsz vele?
(#) ttl válasza potyo hozzászólására (») Jan 5, 2007 /
 
van egy készülékem (atari portfolio) abba szeretném beleépíteni és akkor a szinkronizálást könnyedén meg tudnám oldani.
Ha van egyébb ötlet nekem az is jó csak 3 nulla elég legyen +anyag
(#) tzol hozzászólása Jan 14, 2007 /
 
Sziasztok!

Egy talán érdekes/hasznos kérdés:
Az Atmelnek vannak ún. LCD AVR-jei. Ezek mennyivel tudnak többet kollégáiknál?

Ezek 1000Ft fölött vannak, míg egy MEGA8-as 400Ft. (nettó árak)
(LINK)
(#) Gory válasza ttl hozzászólására (») Jan 29, 2007 /
 
Szerintem meg lehet oldani. PIC18F4550+Microchip USB mass storage device driver. Na meg a program rá a konkrét igényekhez és memóriához. Egyébként miért pont ez a memória kell. Szerintem van 24C tipusú eeprom is ekkorában, 8 lábú és I2C buszon nem is kell 20 lábat vezérelni, meg jóval kisebb helyen is elfér.
(#) gtk válasza Gory hozzászólására (») Jan 30, 2007 /
 
Sziasztok!

Tobb PICes frekimero kapcsolast lattam a neten nezelodve,de avr-re annal kevesebbet.Na nem azert hogy annyira AVR parti vagyok(de azert is) de van nehany mega8 a fiokban es szeretnek egy frekimerot epiteni legalabb anyira jot mind 16F84-el amilyeneket epitenek..

Korabban mar probalkoztam ,mega8 : ket timert hasznaltam,egyik idoalap, a masik az impulzus szamlalo volt.Mikor az idoalap tulcsordult akkor softbol leallitottam a szamlalot,kiolvastam az erteket es kijeleztem.Mukodott is a dolog nehany KHz-ig..
Kozben elgondolkodtam hogy az emlitett szoftveres megoldassal,nagyobb frekinel (Mhz) szerintem jo nagy hibaszazalekkal dolgozna,igy abbamaradt a projekt.

JO otleteket varok Toletek!

Koszi!
(#) potyo válasza gtk hozzászólására (») Jan 30, 2007 /
 
Pedig pont ez lenne az a megoldás, ami annál pontosabb eredményt ad, minél magasabb a freki. Nem azt csináltad véletlenül, hogy két impulzus között mérted az időt? Mert az alacsony frekinél ad pontosabb eredményt.
(#) gtk válasza potyo hozzászólására (») Jan 30, 2007 /
 
Idézet:
„Nem azt csináltad véletlenül, hogy...”

Nem.
Volt egy idoalap : 1sec, 0.1sec,..Ez volt a 8bites timer tulcsordulasanal a pontos idoalap.(32768 kvarc hajtotta ezt a timert,osztoval.)
A masik 16 bites timer az impulzusokat szamolta.

En ugy gondolom hogy timer_idoalap -tulcsordulasnal mielott leallitom szoftbol a timer_szamlalo -t,addig nagy frekinel jo nehanyat tovabbszamol.Nem?
Ezert gondoltam hogy valami kapuzasos kulso hw-es megoldas kellene.De ha tevedek,annal jobbAkkor maris ujra nekifogok a pojektnek.
(#) potyo válasza gtk hozzászólására (») Jan 30, 2007 /
 
Ugyanez a bejön még néhány impulzus a pices mérőknél is megvan, tehát az miatt nem rosszabb az AVR-es verzió pontossága.

Szerintem úgy kellene csinálni, hogy az AVR órajele a lehető legmagasabb legyen. Amikor az időalap túlcsordul, akkor bekapcsolni az impulzusszámlálót, majd amikor ismét túlcsordul, akkor kikapcsolni az impulzusszámlálót. A ki-bekapcsolást legjobb egy XOR művelettel (AVR-nél nemtudom, pontosan hogy kell) csinálni, így azonos a megszakítási rutin hossza mindkét esetben. Mást nemis kell megszakításban kezelni. A főprogramból kell nézni, hogy mi a számláló engedélyező bitjének az állapota, és ha az megváltozott 1-ről nullára, akkor le kell menteni a számláló regiszter értékét valahová, majd utána nullázni azt (lényeges, hogy csak akkor, amikor változott). A főprogramban ezután kiszámolni a kijelzőre kiírandó értéket, és meghajtani a kijelzőt. Tehát az egyetlen megszakítás az időalap megszakítása lesz, ami viszont rövid, és fix hosszúságú, így nem befolyásolja a mérés pontosságát.
(#) gtk válasza potyo hozzászólására (») Jan 31, 2007 /
 
Koszi a tippeket.

Az idoalappal vagyok elmeletben picit elakadva,meg az idoalap valtasokkal,hogy hova tegyem.

Tobb lehetoseg van pl az idoalap eloallitasahoz.
Egyik hogy tudok 32768-as kravcot hasznalni ami az egyik timert hajtja eloosztoval igy 1 secet halalpontosan be lehet allitani (oraval is probaltam mar ,nagyon pontos);belso 1-8Mhz oszci hajtana a procit.Ezt hasznalhatnam 8Mhz-ig.

A masik lehetoseg hogy 16Mhz kvarcot rakok(ez a max),de ekkor nem tudok 32768 kvarcot rakni.Igy a 16Mhz-bol kell az 1sec ,0.1sec ... idoalapot eloallitani,amit igy most nem tudok nagyon elkepzelni...

Az impulzusszamlalo overflow-rutinjaba mindenkepp kell idioalap valtas,hogy ha tulcsordul akkor...

De amugy hova tegyem az idoalap valtasokat?
Hogy valtok visszafele?
Ugy gondoltam hogy mindig 999.999-nel valtanek HZ,K es MHz eseteben is.

A masik az analog resz amihez segitseg kellene.
Nezegettem a PICes verziot,nem igazan ertem a kapuzast.Valami smitt triggereles szeruseg van ott?
Azok az alkatreszek vegulis itthon megvannak ,csak meg kellene ertenem az egeszet
(#) Mumtaz hozzászólása Feb 8, 2007 /
 
A TávIR oldalon fent lévő programozót (http://avr.tavir.hu/modules.php?name=Content&pa=showpage&pid=6) hogyan lehet kipróbálni, hogy jó-e, ha a programozandó cucc még nincs kész?
Van valami ötlet?

köszönöm!
(#) MaSTeRFoXX válasza Mumtaz hozzászólására (») Feb 8, 2007 /
 
Ugye az IC-set építetted meg? A másik az felejtős...
Kipróbálni, hááát csak AVR-rel lehet igazából, Csak néhány kanócot kell a megfelelő lábára rákötni, és elvileg mennie kell, és a reset lábat + tápra húzni egy 10k-s ellenállással


Szerk: Most nézem hogy másfajta IC-s programozó van fenn mint eddig.....
Mellékelem az egyszerűbb IC-set, ezt használom már lassan 1,5 éve (még mindig próbapanelon van )

ISP.GIF
    
(#) Mumtaz válasza MaSTeRFoXX hozzászólására (») Feb 8, 2007 /
 
Hmm. Ez szép. Legalább egyszerűbb is.
Furi. A 17-es és 3 láb a TávIR-on lévővel szemben fel van cserélve.
(#) MaSTeRFoXX válasza Mumtaz hozzászólására (») Feb 8, 2007 /
 
Ez is a TávIR-on volt, csak valamiért leszedte az illető... Pedig ez is működik
(#) ha1drp válasza gtk hozzászólására (») Feb 9, 2007 /
 
Bár az AVR-t nem ismerem a PICes változat azért népszerő, mert minimális a hardware kiépítése. A TMR0 bemnete egéyzen 50MHZ.-ig működik egy beépített hardwares előosztóval. Ez ugyan nem olvasható, - ami a pontatlanságot adná - de egy trükkel mégis hozzáférhető, az által, hogy hamis impulzusokat adunk a bemenetére, addig, amíg ez az előosztó végül "telítődik". Mivel a hamis impulzusokat mi adtuk, tehát a száma ismert meghatározható az előosztóban maradt érték. Ha ezt nem tennénk, akkor az időalapot kell az előosztó osztási arányával megtöbbszörözni, ami igen lassú mérést tenne csak lehetővé.
A hozzá csatlakozó hardware minimum egy ellenállás, amit egy másik port kapuként "vezérel". Amennyiben ez a másik port lebeg, úgy a külső jelforrás frekvenciája kerül a bemenetre, amennyiben H, vagy L szintű a jelforrás már nem jut a bemenetre, illetve a H/L váltással tudunk hamis jeleket generálni. Ennél a megoldásnál sokkal szebb persze kapukból előállítani a HW-t pl: 74HC132 (főleg szinusz=> digitális jel!)
E megoldás vitathatatlan előnye, hogy 1Hz-es felbontású méréshez tulajdonképpen 1s időalap kell.
(#) Mumtaz hozzászólása Feb 10, 2007 /
 
Én nem értek az elektrónikához, de neten fellelhető rajzok alapján állítottam már össze kisebb kapcsolásokat (IrDA, LCD LPT portra, stb...), de amibe most vágtam a baltámat, az a többihez képest mammutfenyő. A "Gameport USB-re" című topicban ecseteltem, hogy egy régi joy-t akarok kicsit modernizálni. Erre találtam egy megoldást a neten, ami nagyon megtetszett. Ez az MJoY16. Megtetszett a tudásának széles skálája, amit rejt magában.

Megfogadtam, hogy mindenképp megcsinálom.
Ehhez szeretnék majd segítséget kérni, mivel én nem tudok programozni (sem). A cuccoshoz a fenti oldalon mellékelik azt a kódot, amit bele kell applikálni a mikrokontrollerbe. Ez a "kód" felvértezi a mikrokontrollert, hogy kb 115 gombot kezeljen és ezek meg is jelenjenek a windowsban a játékvezérlő tulajdonságainál (legalábbis én ezt vettem ki belőle), de ez túl sok lesz elsőre, mivel összesen talán 30 gomb van. Később majd összerakok egy pultocskát több gombbal. Tehát a kérdés voltaképpen az, hogy a későbbiekben tudna majd valaki segíteni módosítani a "kódot"?

Egy másik kérdés lenne, hogy van a fenti oldalon a KayMatrix, amin a csatlakozókba kell tulajdonképpen a joy gombjait rádugdosni, csak azt nem tudom, hogy milyen sorrendet vesz. Tehát, hogy melyik az első, melyik a második, és így tovább.

Arra sem jöttem rá, hogy mi az a tüskesor a poticsatik és a 40 pines csatlakozó között.
(#) Ant hozzászólása Feb 13, 2007 /
 
HI!

Az lenn e akérdésem, hogy hogyan lehetne azt megoldani bascomban, hogy egszerre számol az AVR és egyszerre csinál valami mást.
Mondjuk óra készítés:
hozzáadna minden mp ben 1-et egy változóhoz, és ez a változó, ha eléri a 60-at, akkor egy másikhoz hozzzáad egyet...
egy másik oldalon meg ledeket villogtat, ennak a változónak a felhasználásával, ami az elsőben van.
Ezt hogyan lehetne megoldani programozással?

ant
(#) gtk válasza Ant hozzászólására (») Feb 13, 2007 /
 
Szia!

Milyen nyelven?
C-ben (avr-gcc) rogton mondom,vagyis van egy sajat oras kodom mega8-ra,abban olyan idoosztas feleseg van csinalva ha kell szivesen atadom.
(#) gtk válasza gtk hozzászólására (») Feb 13, 2007 /
 
Ja,most latom hogy basic..
Sorry..legfeljebb az idoosztasos megoldast megnezheted a c kodban..
(#) Ant hozzászólása Feb 17, 2007 /
 
Új kérdés
Hogyan lehetne megoldani azt Avr-n, hogy áramerősséget is mérjen, vagy feszültséget...
Én az I2C buszra gondoltam, és arra rákötni egy fajta másik IC-t talán A/D konvertert, de melyik jó hozzá?
Ant
(#) potyo válasza Ant hozzászólására (») Feb 17, 2007 /
 
Az AVR-ben nincs AD átalakító? Ha van, akkor esetleg műveleti erősítős jelformálás után közvetlenül mérhető vele.
(#) IMi válasza Ant hozzászólására (») Feb 17, 2007 /
 
Következő: »»   18 / 839
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