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   317 / 840
(#) terko1 válasza Reggie hozzászólására (») Márc 18, 2011 /
 
Találtam én egyet ami elég jónak tűnik.

Kivettem belőle a nem AVR-es részeket és hát érdekes dolgokat csinál sőt inkább semmit.

DogM128 Lib
(#) Reggie válasza terko1 hozzászólására (») Márc 18, 2011 /
 
Altalaban az LCD-k leirasaban benne van, hogy alap szinten hogyan kell feleleszteni. Probald meg azt leprogramozni, ha az sem megy lehet hardveres problemad akadt.
(#) szabo.tivadar válasza Reggie hozzászólására (») Márc 18, 2011 /
 
Köszönöm mégegyszer az okosítást

Nexusnak sajnos lőttek, mert az egyik variációban az ethernet portjait fogja, a másikban meg az ADC-t Mind1, úgysincs 550$-om erre (még).

SPI-om kb 500 kHz-el fog menni, 255-el osztva meg a minimum 258 kHz, így szerencsére ez nem érint. Külön köszönet ezért, mert erratát még nem néztem eddig.

1 kristályt fogok végülis használni, azt is az ethernet chipnél, a chip meg kiad magából 25Mhz-et és megy szépen PC2-re. Az AVR-nél egyszerűen nincs helyem sajnos külön kristályra.

A szűrő kapacitások valóban jó kérdések. Sok doksit bújtam ebben a témában és páran okos módon azt feszegették, hogy mi lesz, ha párhuzamosan kötünk 2-3 kondit, hogy majd jól kiszűrünk vele mindent az égvilágon. Kis kondi nagy frekire és vica versa. Nos, hát valójában az lesz, hogy a két kondinak ugye van 1-1 frekije, ahol legkisebb az impanciája, és a kettő között lesz egy csúcs, ahol akár 100 ohmra is felmehet egy frekitartományra az impedancia a párhuzamos rezonancia miatt, ami jelentősen nagyobb, mintha csak a kis kondit használtuk volna magában. Emiatt sokszor az 1 db jobb, mint a 2 db. A checklist-ben is az van, hogy azok az értékek csak tipikus értékek, neked nem biztos, hogy jók lesznek. Igazából kellene egy szkóp meg egy ügyes kéz, hogy a 0603-akat kicserélgessük és kipróbálgassuk, hogy melyiknél mennyi a zaj.
(#) szabo.tivadar válasza szabo.tivadar hozzászólására (») Márc 18, 2011 /
 
A másik, amin sokat agyaltam, hogy X5R vagy NP0, mivel az X-esek mikrofóniások. NP0 nagyon jó lenne, de cseszett drága. Audiofileken kívül más nem is problémázott ezen, így maradtam X?Rnél. Ahova tudok, fordított geometriás, 0306-ot teszek, alacsony(abb) ESL miatt nagyobb frekin jobban viselkedik és az ára se vészes. Kár, hogy elég gyéren kvantált a Farnell kínálata ilyenekből.
(#) Reggie válasza szabo.tivadar hozzászólására (») Márc 19, 2011 /
 
En egy DC-DC konverter leirasaban azt olvastam, hogy a sorrend minosegben: NP0, X5R, X7R.
De ennyire azert nem kell tulmisztifikalni, annyira nagy zajt nem jelent, a kondikat pedig lehet olyan kozel rakni, hogy a ketto kozotti induktivitas szinte nulla legyen, a sajat belso induktivitasuk adta rezonancia frekvencia ezeknel a tipusoknal eleg magasan van (tobb MHz). Ketto parhuzamosan kotesevel a jelenseg amit mondtal ennel meg nagyobb frekvencian jon letre(kifele tolja a frekvenciat), igy plane nem fog gondot okozni.
De ha tul akarod biztositani, akkor Phillips gyart 1206-os tokban 120pF maximalis kapacitasu kondit, aminek az elso rezonancia frekvenciaja 2GHz-en van. (mikrohullamu szeria)
(#) bedoweb hozzászólása Márc 19, 2011 /
 
Sziasztok!

Íme egy videó arról, hogy mit sikerült összehoznom egy ATMega168-assal, egy nyomógombbal és 5 LED-el.

Véleményeket örömmel fogadom, ne kíméljetek
(#) kiborg válasza bedoweb hozzászólására (») Márc 19, 2011 /
 
Szia!
Kezdésnek jó Grat.
Viszont kérdeznék is:bekapcsolás után amikor megnyomod a gombot, rövid ideig világít egy kék led is(a zöld mellett)
Az miaz? Mit jelent? Nem sikerült rájönnöm.
Üdv Kiborg
(#) bedoweb válasza kiborg hozzászólására (») Márc 19, 2011 /
 
A zöld jelzi, hogy van áram, a kék pedig, hogy fut a programm, csak nem sikerült megoldani hogy folyton villogjon
(#) sgt válasza bedoweb hozzászólására (») Márc 19, 2011 /
 
Hogyan villogtatsz? Minket is LED bizergálással vezettek be a programozásukba. Ez a leglátványosabb módja, meg ez a legegyszerűbb periféria használat. Következő lehet a gombok szoftveres pergés mentesítése, illetve külső ellenállás nélküli használat .
(#) bedoweb válasza sgt hozzászólására (») Márc 19, 2011 /
 
A LED-ek villogtatását, saját függvényekkel oldottam meg. Először is a ki és be menetekhez a Fizikus által leírt ki_b(x,y), ki_c(x,y)... függvényeket használom Bővebben: Link

És emellett, az 5 LED-hez csináltam külön-külön vezérlő parancsokat
  1. //LED1 parancs definiálása
  2. void LED1(char_dat)
  3.  {
  4.   if(_dat)
  5.      ki_d(5,1);
  6.   else{
  7.          ki_d(5,0);}
  8.  }


Így például az 5 LED villogása az így néz ki
  1. LED1(1);
  2. LED2(1);
  3. LED3(1);
  4. LED4(1);
  5. LED5(1);
  6. _delay_ms(POT);
  7.  
  8. LED1(1);
  9. LED2(1);
  10. LED3(1);
  11. LED4(1);
  12. LED5(1);
  13. _delay_ms(POT);


Egyébként a nyomógombos efekt váltás nem a legtökéletesebb, Csak egy agyamból kipattant szikra miatt sikerült végülis megoldanom switch függvénybe "integrált" while függvénnyel, amely figyeli a gomb állapotát.

A programról kb ennyi, de amint láthatjátok a videón, be van kötve egy POTméter is amellyel menet közben bármikor lehet változtatni, a villogási szüneteket.

-Ám most nekem lenne egy kérdésem! Azt szeretném, ha a kék LED a program futása közben, a többi részt figyelmen kívül hagyva folyamatosan villogjon. Ezt hogyan lehet megoldani?

Előre is köszi.
(#) bedoweb válasza bedoweb hozzászólására (») Márc 19, 2011 /
 
A második kódnál elrontottam a második részénél képzeljetek az 1-esk helyett 0-kat
(#) sgt válasza bedoweb hozzászólására (») Márc 19, 2011 /
 
Tessék adatlapot bújni . Egy kis segítség Timer0 kell hozzá, és ahhoz ez.
(#) bedoweb válasza sgt hozzászólására (») Márc 19, 2011 /
 
Köszi, bár tudom, csak még nem volt időm beleásni magam a megszakítások világába
(#) Axel hozzászólása Márc 19, 2011 /
 
Sziasztok!

WinAVR-ben hogyan tudom működésre bírni a külső (netről letöltött vagy saját) fejléc állományokat?
Azon kívül, hogy include-olom mit kell mégy csinálni?
Konkrétan ez lenn az:
  1. #include <i2cmaster.h>

Aztán ha valamelyik függvényét használnám akkor írja
a hülyeségét, hogy:
"undefined reference to `i2c_start_wait' " például.

Legjobb tudomásom szerint az egész fejléc állományt be kell másolni a forrásfájl mappájába. Én mindent bemásoltam oda és mégsem működik. Vagy máshogy kellene?

Köszi!
(#) bedoweb válasza Axel hozzászólására (») Márc 19, 2011 /
 
Amit én eddig így használtam, azt az avr mappába raktam és így használtam
  1. #include <avr/io.h>

ez eddig mindig működött
(#) Ricsi89 válasza Axel hozzászólására (») Márc 19, 2011 /
 
Tudtommal, ha a project mappájából akarsz include-olni, akkor idézőjelek közé kell tenni az include-olni kívánt fájl nevét.
  1. #include "i2cmaster.h"
(#) kirally hozzászólása Márc 19, 2011 /
 
Sziasztok! Ha LPT-s programozóval programoznám fel Ezt a kijelzőt akkor mi változna meg a programozás folyamatán??
(#) sgt válasza Axel hozzászólására (») Márc 19, 2011 /
 
Oda kell másolni ahol pl. az io.h csak egy mappával fentebb. Tudtommal lényegtelen hogy <> vagy "" csak egy jelzés hogy nem gyári hedör. Am teheted az io.h mellé és akkor így tudod meghívni:
  1. #include "avr/i2cmaster.h"
(#) sgt válasza bedoweb hozzászólására (») Márc 19, 2011 /
 
sei()-t ne felejtsd el az inicializálás után, mert nem fog megszakítani, hiába van beállítva.
(#) Axel hozzászólása Márc 19, 2011 /
 
Hát ez az i2cmaster header még mindig nem működik.

Dedósnak tűnik de mégis leírom. Ide másoltam be a header file-t C:\WinAVR-20090313\avr\include\avr
A rengeteg többi mellé.
Próbáltam 3 féleképpen is:
  1. #include <i2cmaster.h>
  2. #include "i2cmaster.h"
  3. #include <avr/i2cmaster.h>


Sehogy sem ismeri fel a benne lévő függvényeket, nem fordul le sem.
(#) bedoweb válasza sgt hozzászólására (») Márc 19, 2011 /
 
rendben, köszi
(#) Reggie válasza Axel hozzászólására (») Márc 20, 2011 /
 
A header fajlokban a prototipusok vannak, a valos fuggvenyek egy kulon lib-ben vagy object fajlban vagy c-forrasban szerepelnek (persze ettol vannak kivetelek, de altalaban igy van). Tehat amig ezek valamelyiket nem linkeled hozza a kododhoz, addig a hiba fenn fog allni. (Amennyiben c forras all rendelkezesre, akkor azt is le kell forditani termeszetesen.)
(#) IMi válasza Axel hozzászólására (») Márc 20, 2011 /
 
Szia!
Az "i2cmaster.h" legyen hozzá adva a "header files"-hoz és a "twimaster.c" file pedeg a " source files"-hoz. Ez a két file kell, hogy működjön!
Utána includolod :
  1. #include "i2cmaster.h"

A két file helyileg a project mappában vannak nálam.
Lásd még képet!

kép.jpg
    
(#) Axel hozzászólása Márc 20, 2011 /
 
Sziasztok!

Köszi az eddigi segítséget, már kezdem érzékelni, hogy mit kéne csinálni. A projekthez hozzá adni a .h fejlécállományt és a függvénydefiníciókat (jól mondom?) tartalmazó .c forrásfájlt. Így tudtam csak hozzáadni a forrásokat (notepad1. kép) de ez így nyilván nem jó.
És jobb gombbal kattintva jöttek elő az alábbi lehetőségek (notepad2. kép) és ebből választottam az add files-t. A képen amit IMi linkelt ott szépen látszik is, hogy külön csoport a header és forrásfájlok, nálam meg ez nem látszik. Mit kellene tennem, hogy nekem is hasonlóan legyenek beillesztve a fájlok? (Mindkettőt bemásoltam a projekt mappájába)
Reggie írtad, hogy ha a forrásfájl is rendelkezésre áll(mint most a twimaster.c) akkor azt is le kell fordítani. Ezt ugyanúgy AVRDude-dal tehetem meg? Ha igen akkor a makefile.t- hová tegyem ez esetben?


Köszönöm!
(#) IMi válasza Axel hozzászólására (») Márc 20, 2011 /
 
Szia!
Talán egyszerűbb a project kezelése ebben :
Bővebben: Link
(#) Axel válasza IMi hozzászólására (») Márc 20, 2011 /
 
Feltelepítettem a programot de nem indul el. Hibaüzenettel leáll.

hiba.jpg
    
(#) IMi válasza Axel hozzászólására (») Márc 20, 2011 /
 
Szia
Szükség van a .NET Framework 3.5 és a WinAVR feltelepítésére ! ( Bővebben: Link) Ha mind kettő fent van, akkor nem tudom...
(#) Axel hozzászólása Márc 20, 2011 /
 
Most AVR Studio-ban próbálom de ott sem működik. :gun: (Hibaüzenetet csatoltam) Egyébként a Peter Fleury-féle cucc ez amivel szívok bár gondolom tudjátok.

hiba.jpg
    
(#) Axel hozzászólása Márc 22, 2011 /
 
Sziasztok!

Többszöri sikertelen próbálkozás után flathead javaslatára úgy döntöttem, hogy kipróbálom a Codevision-t és beépített függvényeit az I2C kezelésére. Találtam is evvel kapcsolatos függvényeket de úgy tűnik, hogy ez szoftveresen valósítja meg a kommunikációt. A hardveres (TWI) interfész használtatára nincsenek ilyen függvények vagy csak én nem találkoztam eddig ezekkel?

Köszi!
(#) dB_Thunder hozzászólása Márc 26, 2011 /
 
Hali mindenki!
Van egy nagyon hátulgombolós kérdésem: Attiny45-ön használom EZT a progit.
Szóval minden oké, de szeretném átrakni a belső 1.1Voltos referenciára.
Ez pontosan milyen változásokkal jár?? (én úgy gondolom, hogy 1,1 voltos bemenő jelnél kéne adnia a 1023 as értéket..)
Következő: »»   317 / 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