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   510 / 839
(#) Sick-Bastard válasza zombee hozzászólására (») Jan 19, 2013 /
 
OK. Köszönöm szépen a választ!

Már gondolkoztam is nagyobb uC beszerzésében, nehogy akkor rendeljem meg amikor már kellene. Az említett típusokon felül a legnagyobbal is szemezgetek az ATMega1284-essel, persze csakis a DIP-esek közül.
(#) csabeszq válasza Sick-Bastard hozzászólására (») Jan 20, 2013 /
 
Nekem is elindult az I2C újabb 7 óra ütemes szívás után.

Három interruptom volt: TIMER0 + ADC + TWI. A CPU idő 99.9%-át az első két interrupt lefedte, a TWI-re nem maradt semmi, lehúzta a SCL vonalat és várt. Azt hittem IC hiba először, mert az SCL folyamatosan nullában volt (a slave így jelzi, ha időt kér a kérés feldolgozására). Felnyomtam az órajelet 8MHz-re, ez pedig megoldást jelentett.

A másik probléma az ATMEL példaprogramjával volt, ergo tök hülyeség volt az egész, 3 kérés után leállt a teljes kommunikáció. Úgy írták meg, hogy az interrupt a kérést bemásolja egy pufferbe, amit a fő szál feldolgoz és feltölti a kimeneti puffert. Teljes káoszhoz vezetett az egész.

Amíg a kérést nem dolgozza fel a program teljesen, addig a TWINT-et tilos 1-be rakni. A hardver a TWINT beállításáig alacsonyan tartja az SCL-t és mindenki vár. A példaprogram sikeresen beállította a TWINT-et és reménykedett, hogy a fő szál még azelőtt megkapja az adatokat, hogy a Master az olvasást megkezdené.

Hát nem jött be, időnként a régi kérés adatait küldte vissza.


A hozzászólás módosítva: Jan 20, 2013
(#) FMSound válasza TavIR-AVR hozzászólására (») Jan 20, 2013 /
 
Feltelepítettem az AVR studio 4 es változatát, de így sem igazán akar működni. Esetleg leírná valamelyikőtök mit is kéne tennem?
Köszi
(#) zombee válasza FMSound hozzászólására (») Jan 20, 2013 /
 
Hol keresed a programozót? Milyen win-ed van fent?
(#) FMSound válasza zombee hozzászólására (») Jan 20, 2013 /
 
Xp-m van, nem tudom hogy hol keressem, miképp lenne célszerű?
(#) zombee válasza FMSound hozzászólására (») Jan 20, 2013 /
 
Tools --> Program AVR --> Connect
Innen STK500-at választod ki, majd a COM portot ami alá települt.
Ha nem ez az ablak jön vissza akkor látja már a programozót.
(#) Reggie válasza csabeszq hozzászólására (») Jan 21, 2013 /
 
Ez meg ugy istenes. En 2 nem dokumentalt hardverhibat is talaltam az egyik 32 bites szeria TWI-jeben.
A hozzászólás módosítva: Jan 21, 2013
(#) Robi98 hozzászólása Jan 21, 2013 /
 
Sziasztok!
Szerettem volna készíteni AVR programozásos kísérleteim során egy olyan programot, hogy egy ATtiny 45-ös ic szoftveresen generált PWM-el változtatja egy LED fényerejét félmásodpercenként.

Valaki eltudná mondani, hogy mi lehet a hiba?
  1. #include <avr/io.h>
  2. #include <util/delay.h>
  3.  
  4. int timer=0;
  5.  
  6. uint8_t szamlalo(void)
  7. {
  8.  
  9. timer++;
  10. _delay_ms(1);
  11.  
  12. if(timer==256) timer=0;
  13.  
  14. return timer;
  15. }
  16. //________________________________
  17.  
  18. void hasonlito(unsigned char x)
  19. {
  20. while(szamlalo()<x) PORTB|=(1<<PB3);
  21. while(szamlalo()>=x) PORTB&=~(1<<PB3);
  22. }
  23.  
  24. //___________________________________
  25.  
  26. int main(void)
  27. {
  28. DDRB|=(1<<PB3);
  29.  
  30.    while(1)
  31.    {
  32.    hasonlito(127);
  33.    _delay_ms(500);
  34.    hasonlito(255);
  35.    _delay_ms(500);
  36.    }
  37. }
(#) FMSound válasza zombee hozzászólására (») Jan 21, 2013 /
 
Amikor elindítom a programot ez az ablak jön be, a képen látható.
Ez után mit csináljak?
Köszi
(#) zombee válasza FMSound hozzászólására (») Jan 21, 2013 /
 
Cancel.
(#) FMSound válasza zombee hozzászólására (») Jan 21, 2013 /
 
Rendben, és utánna? )
File/open/ ...hex akkor egyből megint bejön ez az ablak...
(#) zombee válasza FMSound hozzászólására (») Jan 22, 2013 /
 
Ne haragudj, de most szivatsz minket? Nem fogja senki a kis kezecskédet! Tessék rákeresni!
(#) FMSound válasza zombee hozzászólására (») Jan 22, 2013 /
 
Ez egy AVR kezdőknek topik.... szerintem itt nem gáz ezt megkérdezni, mert ahogy olvastam nem pont kezdő témákról van itt szó. Gondolom akik sokat használtátok nem lenne megerőltető .... elmondani....
Azért kösz a segítséget...
(#) Fizikus válasza Robi98 hozzászólására (») Jan 22, 2013 /
 
A program main reszebe, a while(1) ciklusba be kell tenni a szamlalo() fuggvenyt, mert kulonben nem valtozik a timer valtozo erteke.
A Te megoldasod nem a legelegansabb. Szoftveres PWM-et Timer-rel szoktak letrehozni, a timer tulcsordulaskor letrejovo megszakitas hasznalataval beallitva az PWM jel pontos idoziteset. Valahogy ehhez hasonloan:
Szervovezerles szoftveres PWM-el
A hozzászólás módosítva: Jan 22, 2013
(#) sikolymester válasza FMSound hozzászólására (») Jan 22, 2013 /
 
(#) zombee válasza FMSound hozzászólására (») Jan 22, 2013 /
 
Csak már előtted legalább 20-szor megkérdezték. A másik, hogy ott van előtted, próbálkozni kell.
Köszönjük sikolymester, nagy voltál!
(#) FMSound válasza zombee hozzászólására (») Jan 22, 2013 /
 
nagyon nagyon kedvesek vagytok....
(#) sikolymester válasza FMSound hozzászólására (») Jan 22, 2013 /
 
Nem akarok fejtágítást tartani, de akkor röviden:
A fórum azért van, hogy a felmerült kérdések, amik megválaszolásra kerültek, azok megmaradjanak, mint kordokumentumok. Máskülönben lehetne csak privátban intézni a kérdezz-feleleket.

Tehát végeredményben: nem teszünk fel olyan kérdést, amire valahol valami fórumon már megszületett a válasz. Ha nem tudsz angolul, akkor itt van egy kis keresés segédlet:

Írd be ezt a google -ba: hex avrstudio site:http://www.hobbielektronika.hu
Ezzel a jelen oldalon keresi a hex és avrstudio szavakat.
És mit ad isten, az első találat egy videót is tartalmaz.

Jelen fórum lakói csak szabadidejükben válaszolnak a kérdésekre. Egy kis talpraesettséget elvárunk ezért a kérdezőktől.
(#) FMSound válasza FMSound hozzászólására (») Jan 22, 2013 /
 
Igen igaz teljes mértékben.
Az említett videó sokat segített, nem gondoltam hogy ennyi mindenre figyelni kell, ha annyit mondtatok volna hogy ezt annál hosszabb téma, mint hogy egy kommentben érthetően le lehessen írni, felfogtam volna No de nem baj... Az legelső lépéseken túl vagyok. Viszont egy újabb kérdés, ha nem baj...
Próbáltam minden úgy beállítani mint ahogy Topi videójában is látható, mit nem csináltam jól szerintetek? Képen a hiba üzenet
(#) sikolymester válasza FMSound hozzászólására (») Jan 22, 2013 /
 
Signature-t helyesen kiolvassa?
(#) FMSound válasza sikolymester hozzászólására (») Jan 22, 2013 /
 
Úgy gondolom igen, ha azt kiolvassa akkor a programozó látja az avr-t? Jól gondolom?

(#) sikolymester válasza FMSound hozzászólására (») Jan 22, 2013 /
 
Ha a signature kiolvasása helyes, akkor mennie kellene a többinek is.
Táp helyesen be lett kötve?
(#) Robi98 válasza Fizikus hozzászólására (») Jan 22, 2013 /
 
Köszönöm a választ, sokat segített!
(#) ColT hozzászólása Jan 23, 2013 /
 
Hülye kérdés.
Akaork pár dolgot akasztani egy Arduinora. Pl. DS1307, Max7219, NRF24L01. Ezek közül többről csak olyan rajzot láttam, amin az SCK be van kötve... (Pl. a 7219 és az NRF igényli.)
Kérdés :
- mindenképpen kell-e ezeknek az SCK
- ha igen, akkor hogyan lehet megoldani, hogy kettő IC tudja használni?

Bárki segít, köszi
(Feltettem a kérdést az Arduino topicban is, de ott nincs nagy élet...)
(#) csabeszq válasza ColT hozzászólására (») Jan 23, 2013 /
 
A hardveres I2C mindenképpen az SCK és SDA lábakon folyik (GND-k összekötve).

Szoftverből is lehet I2C-t csinálni, akkor tetszőleges két lábat kiválasztva tudsz kommunikálni a másik csippel, csak kell programozni rendesen, vagy találni megoldást, aki már megcsinálta.

Én javaslom a hardveres változatot. Mármint ha az SCK-n jelenleg mondjuk egy LED van, akkor azt tedd át másik lábra. Egyszerűbb, megbízhatóbb, mint szoftverrel szórakozni.

Egyébként minek kell neked 56 byte-os NV SRAM? Egy ATmega328P-nek legalább 1k van alapból (EEPROM)?
A hozzászólás módosítva: Jan 23, 2013
(#) sikolymester válasza ColT hozzászólására (») Jan 23, 2013 /
 
Az SPI -nél a chip select segítségével lehet több eszközt is bekötni. Minden IC-re külön CS vonal kell. Az I2C -nél pedig 7biten lehet címezni az eszközöket. Tehát mindkettő alkalmas arra, hogy egy master több slave legyen.
SCK csak SPI-nél kell.
A hozzászólás módosítva: Jan 23, 2013
(#) kurosaki hozzászólása Jan 23, 2013 /
 
Sziasztok.
Kérdésem lenne AVR hez mit ajánlotok mivel tudnám jol mérni a fényeröt? mármint hogy Bizonyos Fénynél kapcsoljon be az eszközöm automatán? L-53 P3C jo erre? vagy A995011 ez kellene? AVR hogyan tudná értelmezni a kapot jelet? mármint feldolgozni egy kijelzön pl: 10% os a fény viszony (csak példa) előre is köszönöm
(#) zombee válasza csabeszq hozzászólására (») Jan 23, 2013 /
 
I2C-nél csak SCL és SDA van, SPI-nél pedig MOSI, MISO, SCK, /CS.
Utóbbinál a /CS az választható hogy melyiken legyen, de mindig a master(itt arduino) adja.

Ha AVR-t programozol és nem arduino-t, akkor master esetében a /SS nevű lábat KIMENET-ként
kell beállítani, még akkor is ha nem ezt használjuk /CS-re hanem valami mást.
(#) zombee válasza ColT hozzászólására (») Jan 23, 2013 /
 
Alkatrészt akasztani pedig úgy tudsz a legegyszerűbben hogy meghajlítod az egyik lábát kampósra,
majd az arduino valamelyik tüskéjére ráhúzod. Ahogy a karácsonyfát díszítitek otthon.
(#) zombee válasza kurosaki hozzászólására (») Jan 23, 2013 /
 
Erre a legegyszerűbb egy mezei LED. Nem árt ha
- víztiszta
- piros
- nagy szórásszögű(tehát nem 25°-os)

Ezt közvetlenül is rákötheted az ADC-re, de úgy, hogy az anód(hosszabb láb) menjen a földpontra.
Ugyanis generátorüzemben a LED fordított polaritású feszültséget ad ki.
Következő: »»   510 / 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