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   224 / 840
(#) echo11 válasza gag hozzászólására (») Máj 18, 2010 /
 
én nagyon amatőr vagyok (tekintve hogy még csak olvastam a dolgokról), de már vagy 200 helyen láttam leírva , hogy NEM működik úgy...
(#) berghammer hozzászólása Máj 18, 2010 /
 
Sziasztok!

Egy kis segitségre lenne szükségem, hogy hogyan tudok összekötni két avr-t úgy, hogy bájtokat tudjak köztük küldözgetni oda-vissza majd a küldött adatoknak megfelelően vezérlni a lábakat.

Az összeköttetéshez vezetéket szándékozom használni.
Az adatátvitelt a lehető legkevesebb vezetéken szeretném megvalósítani.
Nem szeretném használni az RXD és TXD lábakat. (Mert azok már foglaltak.)
Olyan megoldást keresek ami nem igényel plussz funkciót az avr-ben, hanem a digitális portokat használja.

Az egyszerüség és az ár sokkal fontosabb szempont az adatátvitel sebességgénél (bizonyos határok közöt (min 4bájt/sec))

A segitséget előre is köszönöm.
(#) gtk válasza AtomCity hozzászólására (») Máj 18, 2010 /
 
Milyen kornyezetben volt fejlesztve ?
Tedd fel a modositott kodot, majd leforditja valaki.
(#) (Felhasználó 4577) válasza berghammer hozzászólására (») Máj 18, 2010 /
 
Vagy szoftveres SPI, vagy a beépített UART a lábak megváltoztatásával.
(#) Topi válasza (Felhasználó 4577) hozzászólására (») Máj 18, 2010 /
 
Vagy a direkt IC-k közötti kommunikációra kifejlesztett Inter IC kommunikáció...
Azaz IIC vagy másnéven I2C
(#) puli122 válasza gag hozzászólására (») Máj 18, 2010 /
 
Valóban nem, de jobban is jársz ha egyböl építesz egy usb-s programozót. PL ezt
Tápot is ad a programozandó cuccnak, így ezzel sem kell törődni, nagyon kényelmes. És ráadásul megy a legtöbb programozó szoftverrel.
(#) Menyét válasza AtomCity hozzászólására (») Máj 18, 2010 /
 
Helló!

Lefordítottam neked 2048-al.
Nem tudom neked miért nem megy, nekem nem ír ki semmi hibát.

Amúgy le van írva hogy kell fordítani

eOscope.hex
    
(#) berghammer válasza Topi hozzászólására (») Máj 18, 2010 /
 
Az I2C szimpatikus nekem, de sehol nem találtam hozzá használható leírást ami leírja a szoftveres részét c-ben is. Minden leírás vagy assembler vagy bascom, és minedn leírésban egy avr kommunikál egy perifériával, nem pedig két avr egymással.

Ebben tudnátok nekem segiteni (ha esetleg valakinek van)?
(#) puli122 hozzászólása Máj 19, 2010 /
 
Sziasztok!
Szerintetek ezt a relét ráköthetem kövzetlenül a mega8 kimenetére ?
(#) gtk válasza puli122 hozzászólására (») Máj 19, 2010 /
 
Nem. Kell egy tranyo, es a dioda a relere. Mondjuk bc337 kollector koreben a rele (rajta a dioda), bazisan 7.4-10K.
(#) echo11 hozzászólása Máj 19, 2010 /
 
A kérdésem az lenne, Topi cikkéhez kapcsolódva (hála érte), hogy az itt lévő programozót, hogyan lehetne használni például az AVRStudioval? Sejtem, hogy ez nem valami komoly kapcsolás, de egyenlőre csak próbálkozni szeretnék...

Nagyon kérek mindenkit, aki látja ezt a témát, és ért is hozzá vagy kipróbálta, az írja le a gondolatait.
(#) AtomCity válasza Menyét hozzászólására (») Máj 19, 2010 /
 
Sziasztok!

Nagyon szépen köszönöm Menyét!
Egy kérdésem még lenne hozzád: az összes c és h fájlt egybefordítottad? Tehát az egész software mappában (inc és src) levő fájl össze lett gyúrva és lefordítva?
Amikor én ezeket a fájlokat megnyitottam winavr-rel, és le akartam fordítani, akkor azt hiszem 2 hibát írt ki. De semmi egyértelműt nem, hogy hol a hiba.
Még egyszer köszönöm! Remélem ez a hex jó lesz!
Üdv!
(#) faust02 válasza lazsi hozzászólására (») Máj 19, 2010 /
 
Köszönöm a választ mindenkinek! Világossá váltak a dolgok. Tényleg nehéz kezdőként belecsöppenni egy ilyen témába, de a kitartó böngészés meghozta eredményét!
(#) Menyét válasza AtomCity hozzászólására (») Máj 20, 2010 /
 
Helló!

Szivesen. Természetesen benne van minden fájl, én annyit csináltam hogy átírtam az 512őt 2048ra. Minden más maradt.

Én a "makefile" fájlal fordítottam, parancssorból.
(#) puli122 hozzászólása Máj 21, 2010 /
 
Hello!
Cikket írok, és nem akarok hülyeséget beleírni úgyhogy inkább megkérdezem. A gyári beállítás pl mega8 esetén a belső oszcillátornál 4 vagy 8 Mhz ? Én 8-ra emlékszem, de nem vagyok benne biztos, és az itthon lévőkben már mindben állítgattam.
Köszi
(#) aticska válasza puli122 hozzászólására (») Máj 21, 2010 /
 
Szerintem 1MHz
(#) zombee hozzászólása Máj 21, 2010 /
 
Sziasztok!

ATTiny25-nél futottam bele egy banális hibára.
AVR Doper-el akarom programozni, de ha 1MHz-re van állítva az órajele(8MHz RC + CKDIV8) akkor hibázik. Program egyáltalán nem megy fel, sokszor a "signeture" bájtok is hibásan jönnek át.
10MHz-es kvarccal, vagy 6.4 belső RC tökéletes, CKDIV8 ide vagy oda.
Azaz 800kHz-en is jó volt.
Az AVR Doper ISP frekvenciára is érzéketlen(56-450kHz), illetve a "slow sck" is hatástalan.

Érdekes módon, csak ATTiny25-el van gond, ATTiny2313, ATTiny13, ATMega8-16-32 ezekkel foglalkozom főként, velük soha nem volt ilyen.

Update:
ATTiny2313 is produkálja a hibát, de csak 1MHz-en...
(#) (Felhasználó 4577) válasza puli122 hozzászólására (») Máj 21, 2010 /
 
Az adatlapban benne van, hogy 1MHz.
(#) adamtui_93 hozzászólása Máj 22, 2010 /
 
Hali
Az lenne a kérdésem hogy
  1. USARTWriteChar('a');
ezzel a kóddal csak 1 karaktert tudok küldeni de azt hogy tudom megcsinálni hogy több karaktert küldjön mint pl alma?
(#) vrbst válasza adamtui_93 hozzászólására (») Máj 22, 2010 /
 
Szia!

Csinálj egy függvényt, ami for ciklusban szépen meghívogatja az USARTWriteChar fv-edet.

  1. void USARTWriteString(char *);
  2.  
  3. void USARTWriteString(char *str){
  4.                   char i;
  5.                   for(i=0;str[i];i++) USARTWriteChar(str[i]);
  6. }

Ezután
  1. UsartWriteString("alma");
(#) adamtui_93 válasza vrbst hozzászólására (») Máj 22, 2010 /
 
Hali még1x
azt meg tudod mondani hogy hogyan tudom kiváltani
  1. if(PINC & (0b00000010))   {ZOLD_BE;}
ezt arra hogy ha küldök avrnek pl alma akkor olyan legyen mint ha gombot megnyomtam volna?
(#) adamtui_93 hozzászólása Máj 22, 2010 /
 
Hali lene egy olyan problémám hogy ez
  1. USARTWriteString(ReadADC(1));
mért nem küldi ki az ADC eredményét? Csak egy halom karaktert ir ki össze vissza.
(#) gtk válasza adamtui_93 hozzászólására (») Máj 22, 2010 /
 
Azert mert a ReadADC( ) nem ascii karakterlanccal ter vissza.
(#) gtk válasza adamtui_93 hozzászólására (») Máj 22, 2010 /
 
Itt egy, 16 szamjegyu szam atalakitasara alkalmas fuggveny.Bővebben: Link
(#) trudnai válasza adamtui_93 hozzászólására (») Máj 22, 2010 /
 
Idézet:
„ha küldök avrnek pl alma akkor olyan legyen mint ha gombot megnyomtam volna?”


USART-on keresztul veszel egy stringet, ossze hasonlitod "alma"-val, es ha egyezik akkor a feltetel teljesul -- de had ne irjunk mindent meg helyetted
(#) adamtui_93 válasza gtk hozzászólására (») Máj 22, 2010 /
 
Hali nem értek kimondottan a függvényekhez de beillesztettem hogy hibát ne irjon ki de hogyan hivatkozzak rá hogy az ADC-ből csináljon számot és a csinált számot küldje ki uarton?

usart.c
    
(#) adamtui_93 válasza trudnai hozzászólására (») Máj 22, 2010 /
 
Persze egy értelmű hogy ne ti írjatok meg mindent helyettem csak az eddigi ismereteim sajnos nem terjednek ki a stringek és a függvények világába azért kérdezgetek róluk ennyit és gyakorlom meg probálgatom mi hogy s mint csak magyar dokumentáció róluk nem sok van angolul meg nem értek annyira de ha már itt tartunk valami tutorial szerűséget nem tudsz belinkelni nekem?
(#) gtk válasza adamtui_93 hozzászólására (») Máj 22, 2010 /
 
Angolul minimalisan kell erteni, a szaknyelvet. Es hasznalni a logikat. Ha ennyire nem ertesz a C-hez, akkor elobb tanuld meg, mert ez a projekted meglesz igy kezen-kozon, de a tobbit hogy fogod megirni? Van sok jo C konyv magyarul is,..

Ha bent van a fuggvenyed:


  1. USARTWriteString( itoa( ReadADC(1) ) );
(#) adamtui_93 válasza gtk hozzászólására (») Máj 22, 2010 /
 
Köszi értem amit mondasz és meg is fogadom mert ez igy kész lesz de minden projektemet végigkérdezgetni nem éppen a legjobb megoldás, C könyvet milyet vegyek elég a sima C vagy borland C vagy C++ vagy mind 1 a lényeg mindbe benne van?
(#) Fizikus válasza puli122 hozzászólására (») Máj 22, 2010 /
 
A gyári beállításnál a 8 MHz-es belső oszcillátort használja az AVR, de sok processzorban van CLKDIV8 fuse, mely alapból be van pipálva. Ezt azt jelenti, hogy a proci órajelét HW-esen osztja 8-al. Így a belső 8MHz-es oszcillátorból 1MHz lesz.
Következő: »»   224 / 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