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   468 / 840
(#) blackdog hozzászólása Aug 15, 2012 /
 
Sziasztok! ismét

Nagyon tetszik nekem ez a játék az MCU-val. És mindig jönnek elő gondok is persze. Most RS232.
Adatot fogadni csak úgy tudok, hogy 1-1 karaktert. Így:
  1. unsigned char uart_data_rx(void) {
  2.  
  3.   while(!(UCSR0A & (1<<RXC0)))  {}
  4.  
  5.   return UDR0;
  6.  
  7. }

Ez a kód csak akkor működik, ha egy karaktert küldök el. Pl elkültöm az a betűt akkor ez letudom kezelni az AVR-ben. Viszont én szeretném elküldeni neki PC-ről a z010 karakter az a helyett.
Ezt így próbálom feldolgozni ISR-ben:
  1. ISR(USART_RX_vect) {
  2.  
  3. char data;    
  4.  
  5. data = uart_data_rx();
  6.  
  7. if(data == 's') { rele_set(99);  }
  8. else if(data == 'x') { rele_set(0); }
  9. else if(data == 'z010') { rele_set(1); }
  10. else if(data == 'b') { rele_set(2); }
  11. else if(data == 'c') { rele_set(3); }
  12. else if(data == 'd') { rele_set(4); }
  13.  
  14. }

Viszont, ha úgy próbálok ellenőrizni, hogy data == 'z010' akkor már a fordító is panaszkodik:
../alap.c:265:17: warning: multi-character character constant
Hogyan kell köbb karakter fogadni és kezeli?
(#) sgt válasza blackdog hozzászólására (») Aug 15, 2012 /
 
Álljon már meg gyászmenet. Te vállaltad a projektet, te fogod kapni érte a lóvét, és jó formán velünk csináltatod meg? Oké persze, ha nagyon megakadsz akkor segít az ember, de ez már kezd egy kicsit sok lenni, nem gondolod?

Erre a problémádra is van egy nagyon egyszerű megoldás. Már itt a fórumban is előjött.
(#) blackdog válasza sgt hozzászólására (») Aug 15, 2012 /
 
[off] El sem indult az a bizonyos menet.
Most még csak próbálkozom és tesztelget. Összeraktam a hardwer-t próba panelen. Működik az SPI, RS232, RS485, LCD amit egy menüs rendszer vezérel.
C#-ban írom hozzá a PC-s progi-t. Soha nem kértem segítséget. Sőt csak részekre kérdeztem rá soha nem kellett step-by-step megoldás. Azt is bevallottam, hogy kedő vagyok még C-ben ilyen low szinten.
Természetesen, ha valaki csatlakozik az elképzeléseimhez és minden bit-ben mellettem áll akkor honorálom. Én a jövőben szeretném pénzre váltani az ismereteim mert a befektett energia is pénz. Szerinted más hogyan csinálja? Én még így is jobb mint a kínai. De, ha ez gond akkor maradok magamnak és megoldom. Max. nem egy hanem két-három nap alatt. Egyéb gondolataim privátban....
(#) sikolymester válasza blackdog hozzászólására (») Aug 16, 2012 /
 
Pont arra gondoltam, amire sgt kolléga is, még mielőtt olvastam volna a kommentjét.

Egy kis önállóság lehet nem ártana.
Én eddigi életem során összesen kb 20 fórum kérdést tettem fel. Beleértve minden problémát amivel valaha találkoztam.

Ennek két oka van:
1: Általában mindent kigooglizok 10 perc alatt. Annyi idő alatt pedig biztos nem jön válasz fórumon.
2: A legtöbb dolgot már úgyis megkérdezték.

Kérdésedre a válasz: Tedd egy ringbufferba az interruptban az érkezett byteokat. Feldolgozáshoz használd utána a string.h függvényeit.
(#) blackdog válasza sikolymester hozzászólására (») Aug 16, 2012 /
 
Rendben felfogtam mindent. Közben megtaláltam az ANSI C könyvemet.
Azért kérdezek csak mert tapasztaltabb emberek talán mondanak olyan dolgot is ami én kezdőként nem vennék észre. Csak azt nem látom, hogy miből veszitek a step-by-step kérdésemi. Volt egy csomó elméleti az igaz, de sose kértem, hogy helyettem oldjátok meg. Sokmindent megcsináltam már magam. Na mindegy. Amit eddig csináltam az működik a többire meg úgy is rájövök akkor.... Maradok néma szitelettel.
Amit írtál a kérdésemmel kapcsolatban azt este kipróbálom.
(#) lalus hozzászólása Aug 17, 2012 /
 
Sziasztok!

Az Attiny 13-as avr-t ha már egyszer égettem bele programot akkor azt már nem lehet javítani? tehát más programot nem tudok beleégetni? az már benne marad?

Előreis köszi a segítséget!
(#) mzozo95 válasza lalus hozzászólására (») Aug 17, 2012 / 1
 
Égess bele egy másikat, kb 10000szer lehet újraírni, ami addig benne volt azt átírja(vagy törli) az új program és csak az lesz benne a flash memóriájában azután...
(#) lalus válasza mzozo95 hozzászólására (») Aug 17, 2012 /
 
Köszi! pont erre voltam kíváncsi!
Tökéletes válasz..)
(#) pogany.tamas hozzászólása Aug 18, 2012 /
 
Sziasztok,

Vettem egy I2C LCD kijelzőt, ilyet: Bővebben: Link
Az Arduino library, amit lent mellékeltek hozzá működik, az a kérdésem, hogy "natív" libraryt, amit attiny-hoz tudnék használni, hasonló funkcionalitással ismertek-e, használtok-e?
(#) TavIR-AVR válasza pogany.tamas hozzászólására (») Aug 18, 2012 /
 
PCF8574 bővítő van rajta.

Bascom-AVR kód jó?
(#) zombee válasza pogany.tamas hozzászólására (») Aug 18, 2012 / 1
 
Gondolom valami ilyesmi kell. Az én művem.
Ez master oldali, az init, read, write, start és stop részeket használd, a többit vágd ki ha nem kell!

i2c.h
    
(#) thomas3 hozzászólása Aug 18, 2012 /
 
Sziasztok!
Kerestem neten de nem találtam az Atmel által használt kódok jelentését. Pl Atmega16A-AU
Adatlapból látom a különbséget, hogy az 'A' micsoda de az 'AU'-re nem tudtam még rájönni.
Előre is köszönöm a segítséget!
(#) zombee válasza thomas3 hozzászólására (») Aug 18, 2012 / 1
 
Az utolsó két betű a tokozás és a (működési) hőmérséklet, így, sorrendben.
A tokozás a lényegesebb, "A"=TQFP, "P"=DIP, S="SOIC", "M"=QFN/MLF.
Az utolsó betű a hőtűrés, "C"=Commercial(0-70°C), "I"=Industrial(-40-85°C), az "U" neve most nem jut
eszembe de ugyanaz mint az Industrial, csak RoHs(többek közt ólom-és halogénmentes).
(#) thomas3 válasza zombee hozzászólására (») Aug 18, 2012 /
 
Köszönöm szépen!
(#) trudnai válasza zombee hozzászólására (») Aug 18, 2012 /
 
U = Unleaded nagy valoszinuseggel...

(azaz olom mentes)
(#) pogany.tamas válasza zombee hozzászólására (») Aug 19, 2012 /
 
Kipróbálom, köszi
(#) shield hozzászólása Aug 20, 2012 /
 
Sziasztok!

Az lenne a kérdésem, az ATMEGA8-P tönkre mehetett-e attól, hogy hibás panel miatt a 21-es láb testre volt kötve? Az AVR-es tranyó teszterről van szó. Bekapcsoláskor a kijelzőn egy sorban 0-kat és nyilakat ír ki és közép tájon értelmezhetetlen karakter szerűség látható.
A választ előre is köszönöm.
(#) zombee válasza shield hozzászólására (») Aug 20, 2012 /
 
A 21-es láb az AREF, azaz ha a "rendes" GND lábon megkapta a földet akkor kizárt hogy ettől tönkremenjen!
Ha a kijelzőre hülyeségeket ír ki akkor nagy valúszínűséggel az adatvonalak valamelyikén
zárlat/szakadás van, de megeshet hogy a kijelző rossz vagy nem támogatja a 4 bites módot.
(#) shield válasza zombee hozzászólására (») Aug 20, 2012 /
 
Az LCM3-ba is ilyen kijelzőt raktam, holnap megcserélem őket. Lehet hogy a szalagkábelben van szakadás. Az is elég furcsa ha csatlakoztatok hozzá valamilyen alkatrészt akkor sem változik semmi. Ilyenkor nem kellene azért valami változásnak lenni a kijelzőn?
(#) zombee válasza shield hozzászólására (») Aug 20, 2012 /
 
Amíg nincs rendes kommunikáció addig ne is várj rendet a káoszban!
Egyébként, akár az AVR rossz, akár a kijelző, egy fekete csíkon kívül nem látnál semmit. Azaz mindkettő jó...
(#) brugo hozzászólása Aug 21, 2012 /
 
Szervusztok,

Bele szeretnek kostolni az AVR-ek C nyelvu programozasaba. Azt szeretnem kerdezni, hol talalhato annak a C nyelvnek ( itt elsosorban az utasitasokra stb. gondolok ) a leirasa amit az AVR compiller megemészt ? A PIC-eknel letezik a CCS, MCC18 ,High-tech C stb. mindegyiknek van ugynevezett User's Manual-ja amibe szepen reszletesen le van irva minden utasitas ,fuggveny stb. amivel majd lehet dolgozni es amit az illeto fordito megemészt. Ilyen leiras az AVR-ek eseteben hol talalhato ? mondjuk ami az AVR Studio 4 - el kompatibilis.
(#) mzozo95 válasza brugo hozzászólására (») Aug 21, 2012 /
 
Kezdésként gyakorlatilag bármilyen C könyvet elővehetsz, jó alapnak akár egy c++ könyv is. A neten pedig rengeteg cikk van a portokról, adc-kről amik az AVR hardveréhez kellenek. Akár az msp430as cikkek is jók, csak meg kell keresni az avr adatlapjában a portok (stb) nevét...
(#) brugo válasza mzozo95 hozzászólására (») Aug 21, 2012 /
 
Köszönöm szépen . Igy igen nagy az Entropia maradok a PIC-nél . (Honnan tudjam, hogy mit jegyezzek meg az illető könyvből ami ott van egész operácios rendszereket írtak vele.)
(#) mzozo95 válasza brugo hozzászólására (») Aug 21, 2012 /
 
Igazából csak a fő függvényeket, operátorokat stb kell megjegyezni. PIC-et milyen nyelven programoztál? Ha C nyeléven, gyerek járék lesz áttérni AVR-re.. Esetleg ami sokag segít az Fizikus robotika cikksorozata: Bővebben: Link
Itt minden szépen le van írva, kezdőknek is tökéletes!
(#) brugo válasza mzozo95 hozzászólására (») Aug 21, 2012 /
 
Köszönöm szépen !
(#) brugo hozzászólása Aug 21, 2012 /
 
CCS C-ben írtam egyszerübb programokat de közbe láttam,hogy komolyabb programozok ( akiktöl ihletödtem ) áttértek más forditóra High-Techre stb.tehát akkor a CCS se jó ? egy állandó ugrálás ide- oda.Ezért arra gondoltam, hogy az Atmelnek van egy jó compilátora semmi variáció nélkül ( nyelvjárások nélküli ) de sajnos a dokumentáció hiánya megneheziti a megbarátkozást. Ugyanez vonatkozik az AVR Studiora annak sincs egy olyan leírása mint az MPLAB User Guide.
(#) sikolymester válasza brugo hozzászólására (») Aug 21, 2012 /
 
Az AVR-eknek GCC forditoja van. Legalabbis az ingyenes fordito az a GCC. Ennek a neve AVRGCC. C99 szabvannyal kompatibilis. A C library leirasat itt talalod: AVRLibc

Ha igazan melyen szeretned tudni, hogy hogyan zajlik a forditas AVR-re, akkor tovabbi irodalom a gnu make program leirasa.

Hogy maga a studio 4 hogyan megy az nem bonyolult. En special a studio 4 helpjet olvasnam el a helyedben.
(#) trudnai válasza brugo hozzászólására (») Aug 22, 2012 /
 
Figyi, mielott hirtelen felindulasbol mindent lef*kaznal irdd mar be a googliba a megfelelo szavakat! Az, hogy valamit nem tudsz, nem szegyen, csak ne vondd le a kovetkezteteseket, hogy amirol nem tudsz az nem is letezik...

Elso talalat... hoppa...

A masik, hogy a CCS es a HiTech NEM AVR, tehat az nem ide tartozik (amugy a valasz: Igen, a CCS nem jo...)
(#) sgt válasza brugo hozzászólására (») Aug 22, 2012 /
 
Ne vonj párhuzamot a PIC és az AVR között. Teljesen máshogy épülnek fel az MCU-k, teljesen más elven van felépítve az adatlap, teljesen más a support, teljesen más a leírások/példa progik struktúrája. Az IDE, a fordítók is teljesen másak. (Ez vonatkozik minden más gyártó által készített MCU-ra is.) Mielőtt elmerülnél benne, próbáld elfelejteni a PIC-es múltadat, és ne próbáld összemérni a kettőt, ha könnyedén szeretnél megtanulni programozni AVR-en.

A helyedben az assemblyvel kezdeném az ismerkedést. Gondolom a PIC-el is így kezdted.
(#) brugo hozzászólása Aug 22, 2012 /
 
Köszönöm szépen !

Most már csak egy AVRISP mkII hiányzik és indulhat a játék.
Következő: »»   468 / 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