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   282 / 840
(#) zolee1209 válasza lajos1969 hozzászólására (») Nov 21, 2010 /
 
Szívesen!

Ez volt az utolsó, hogy valakinek is privátban válaszolok!
(#) Robi98 hozzászólása Nov 21, 2010 /
 
Sziasztok!
WinAVR-ben próbálltam programozni,de sajnos akadályokba ütközött. Alul a kimeneti ablaknál és a létrehozott mappa helye után a következőt írta ki: '' undefined reference to daley ms' '' Ez valószínűleg azért van mert először a delay-t daley-nek írtam.Aztán későb rájöttem, hogy máskép kell írni, ezért ki is javítottam. Ami az érdekes,hogy miután elmentettem, bezártam és később ,újra megnyitottam, a kódban ugye már a kijavított szó volt,de miután újra a lefordításra kattintottam megint a régi hibaüzenet jött ki.Hát én ezt nem értem :no: .
Ja és még egy újabb különös észrevétel:a mappa létrehozási helye és a hibaüzenet olyan mint ha link lenne, de ha rákattintok akkor elkezd villogni a kurzor ott ahol kattintottam. Bármilyen jó tanácsnak nagyon örülnék és előre köszönök minden válasz.
(#) augre válasza Robi98 hozzászólására (») Nov 21, 2010 /
 
mutasd meg a c kódot amit írtál!
(#) Reggie válasza Robi98 hozzászólására (») Nov 21, 2010 /
 
Esetleg tobb helyen is elirtad. De igy vakon tenyleg nehez.
(#) Robi98 válasza augre hozzászólására (») Nov 21, 2010 /
 
Itt a kód:
  1. #include <avr/io.h>
  2. #include <util/delay.h>
  3. //-------------------------
  4. int main(void) {
  5. //-------------------------
  6.  
  7. DDRB=(1<<PB3)|(1<<PB4);
  8.  
  9. while(1) {
  10.  
  11. PORTB|=(1<<PB3);
  12.  
  13. _delay_ms(500);
  14.  
  15. _delay_ms(500);
  16.  
  17. PORTB&=~(1<<PB3);
  18.  
  19. PORTB|=(1<<PB4);
  20.  
  21. _delay_ms(500);
  22.  
  23. _delay_ms(500);
  24.  
  25. PORTB&=(1<<PB4);
  26.  
  27.           }
  28.                  
  29.                   }
(#) Reggie válasza Robi98 hozzászólására (») Nov 21, 2010 /
 
Es e melle a kod melle mi a hibauzenet?
(#) nolex hozzászólása Nov 21, 2010 /
 
Ilyen hasonló tesztpanel van-e USB-s kiszereléssel?
(#) Robi98 válasza Reggie hozzászólására (») Nov 21, 2010 /
 
Sajnos a hibaüzenetet nem tudom elküldeni mert akár hányszor jelölöm ki hiába a másolás(Copy) el van homályosítva.Megjegyezni pedig nem tudom mer beállításokkal eggyüt nagyon hosszú.Ennek valószínűleg az az oka,hogy egyes szövegrészek olyanok mint egy link,de mégis ha rákattintok a kurzort szúrja be oda ahová kattintottam.
(#) Reggie válasza Robi98 hozzászólására (») Nov 21, 2010 /
 
Printscreen, indits el egy paint-et, beillesztes es mentsd el kepkent.
(#) Reggie válasza nolex hozzászólására (») Nov 21, 2010 /
 
Legegyszerubb, ha raraksz egy usb-soros konvertert.
(#) Tony hozzászólása Nov 22, 2010 /
 
Sziasztok, ezt valaki kitudná fejteni nekem mert már nem 1x találkoztam ilyennel a fórumokba és most építettem meg az AVR égetőt FT232-es segéd IC-vel:

"
VIGYÁZAT: a fuse bit átállítása a proci használhatatlanná tételét okozza, nagyon óvatosan bánjunk ezzel az opcióval. Nekem is egy procim bánja a próbálgatásokat.
"
A forrás:
Bővebben: Link

Erre tényleg nincs semmilyen megoldás? Ha van hogyan?
Ez milyen fuse bit állapot esetén érvényes? És mért van ez?

Én PIC-be nem látok ilyen hibát itt mindig van hozzáférés.

Üdv:A.
(#) Tony válasza Tony hozzászólására (») Nov 22, 2010 /
 
OK végre találtam leírást nem magyar nyelven, de látom van mindenre megoldás csak nem értem mért fogalmaznak úgy hogy már kuka a az IC.

Szóval megválaszolom akkor én röviden
CKSEL3..0 ha rossz az érték akkor nincs rezgés a Kvarcon, de külső órajel generátorral megoldható.

SPIEN, DWEN és RSTDISBL szintén elérhetetlenné teszi az ISP programozást de egy HVSP programozóval ez is orvosolható.

Ha tévedek valahol írjatok.
(#) kovacsj hozzászólása Nov 22, 2010 /
 
Atmega16 és LCD

Sziasztok!
Egy kis segítséget szeretnék kérni!
Egy Atmega16 és egy LCD párosításával kínlódok két napja. 8-bites módban megy, de 4-bitesben nem akar menni. Az adatportok D7-D4 a PORTA7-PORTA4-re vannak kötve az RS a PORTC6 az ENABLE a PORTC7-en van.
A kijelzőn krix-kraxok jelennek meg a kívánt szöveg helyett és nem működik a háttér világítás sem.
8-bitesen működik.

Mi lehet a baj?
(#) lajos1969 hozzászólása Nov 22, 2010 /
 
Sziasztok!
Lenne ezzel a kapcsolással egy kis gondom teljesen kész van csak a ledek nem akarnak világítani.
Valószínű/azt mondják/, hogy az attyni13 nincs rendesen felprogramozva/beállítások,/ fuse, frekvencia stb./ nincs megfelelően beállítva. Eddig csak picet programoztam/égettem/ az avr-eket nem nagyon ismerem.
Itt vannak a dokumentációk.
Jó lenne ha valaki tudna nekem segíteni.
Előre is köszönöm!
Itt a linkje:http://easyelectronics.ru/3d-led-globus.html
(#) Reggie válasza Tony hozzászólására (») Nov 22, 2010 /
 
Jol latod. Amugy igazan nem lesz kuka az ic, mert parhuzamos programozassal(vagy HVSP-vel, ez tipusfuggo) mindig helyre lehet hozni, legfeljebb csak az SPI/JTAG-en keresztul nem fog menni. (Ugyanis parhuzamos programozashoz kivulrol kap orajelet mind). Viszont nagyon kevesen rendelkeznek parhuzamos programozoval, ezert szajhagyomany utjan ezt terjedt el.
(#) Reggie válasza kovacsj hozzászólására (») Nov 22, 2010 /
 
Tipikus hiba szokot lenni az, hogy nem megfeleloen inicializalod az LCD vezerlo ic-t, es igy az nem tud rola, hogy 4bites uzemmodban akarod hasznalni. Tolts le egy HD44780 adatlapot, es ott van folyamatabras pelda, hogy lepesrol lepesre mit kell kikuldeni ahhoz, hogy jol inicializald. De par oldallal visszabb valakinek adtam egy rovid mintaprogramot, ami 4 bites uzemmodban inicializal es kiir egy A betut.
(#) Reggie válasza lajos1969 hozzászólására (») Nov 22, 2010 /
 
Ha jol latom, akkor siman belso RC oszcillatort hasznal az AVR (legalabbis a kapcsolast nezve nem latok kulso kvarcot vagy orajelet). Ebbol kiindulva, ha tovabbra is tudod programozni/visszaolvasni az AVR-t, akkor az orajel beallitasokat tuti nem szurtad el. (Ha van orajel csak nem megfelelo erteku, akkor meg mukodne az aramkorod csak rossz idozitessel)
!! Vigyazz, szoftver es szoftver kozott van kulonbseg. Van amelyiknel a bepipalt allapot a programozott(AVR Studio), mig masoknal a bepipalt allapot a nem programozott (PonyProg) !! Ha sima soros letoltod van, akkor a legjobb, ha kiolvasod a fuse biteket eloszor, megnezed, hogy milyen allapotban van a pipa az SPIEN-nel. Mivel tudsz vele kommunikalni ezert ez fogja reprezentalni a programozott bit allapotot.
Az alabbi modon programozd be a fuse biteket:
SELFPRGEN: 1 (nem programozott)
DWEN: 1 (nem programozott)
BODLEVEL1: 1 (nem programozott)
BODLEVEL0: 1 (nem programozott)
RSTDISBL: 1 (nem programozott)
WDTON: 1 (nem programozott)
SPIEN: 0 (programozott)
EESAVE 1 (nem programozott)
WDTON: 1 (nem programozott)
CKDIV8: 1 (nem programozott)
SUT1: 1 (nem programozott)
SUT0: 0 (programozott)
CKSEL1: 1 (nem programozott)
CKSEL0: 0 (programozott)
(#) Tony válasza Reggie hozzászólására (») Nov 22, 2010 /
 
Szuper köszönöm a válaszod

akkor építek olyat is. Csak nem tudom még melyiket elvileg van olyan változat is hogy AVR Doper HVSP

ha van jobb amit érdemes építeni kérem írjatok!

Ja és melyik az a láb amelyik elviseli a 12V-ot csak ha olvasok ne vezessem magam félre

minden infónak örülök és előre köszönöm!
(#) Reggie válasza Tony hozzászólására (») Nov 22, 2010 /
 
Csak a reset lab viseli el a 12V-ot. A 8 labu ick-nel tipikusan hvsp van, de mas tipusoknal siman parallel programming van, azaz minden tipushoz ez nem lesz jo. Az adatlapok "Memory Programming" fejezeteiben minden reszletet megtalalsz.
(#) boomerang hozzászólása Nov 22, 2010 /
 
Szeretném a segítségeteket kérni.
Adott egy mega8-as kontroller, egy MAX232-es ic, és egy USB-rs232 átalakító kábel melyekkel soros kommunikációt akarok megvalósítani.
mega8---))max232---))usb-soros kábel, ez az összerakási sorrend.
A lényeg annyi, hogy bármit akarok küldeni a kontrollerről, a terminál programban (windows) mindig ugyanaz a karakter jelenik meg.
Tesztelgettem, a panelen gombnyomásra illetve végtelen ciklusban késleltetéssel is küldözgettem adatot, ment, de rendre ugyanaz a karakter látszódik a terminálban.

Valakinek okos ötlet ?
köszi
(#) Ricsi89 válasza boomerang hozzászólására (») Nov 22, 2010 /
 
Az usb-soros átalakító általában ttl jelet ad ki, vagy olyat, amilyen feszről az átalakítást végző IC megy. Szerintem a max232 elhagyható.
(#) Tony válasza Ricsi89 hozzászólására (») Nov 22, 2010 /
 
ezt inkább kimérném nekem úgy rémlik van ott 6V is de lehet hogy tévedek.
@boomerang: És fordítva ha PC küld mit fogad? Na és sorozattba jön v. csak 1x?
(#) Tomi_Bp hozzászólása Nov 22, 2010 /
 
Sziasztok! Nem akarlak a teljes kóddal terhelni titeket, ezért csak kis részeket kimásolva a problémára koncentrálva írom.
  1. signed int x1, x2;
  2. float x3;
  3.  
  4. x1 = 50;
  5. x2 = 500;
  6. x3 = x1 / x2;
, akkor az x3nak 0,1 értékűnek kellene lennie, de valami miatt az ATMega16-osom szerint 0. Én arra gondoltam, hogy a fordítási optimalizációm miatt lehet?! Képen a beállításaim. Előre is köszi!
(#) kovacsj válasza Reggie hozzászólására (») Nov 22, 2010 /
 
Az a kód nekem sajnos valamiért nem működött.
Viszont a javaslatod alapján az adatlapon található útmutatás figyelembevétele mellett eljutottam odáig, hogy kivilágosodik a kijelző, és az első sorban tömör fekete négyzetek jelennek meg. Én is egy karaktert szerettem volna írni oda, de eddig ez a legjobb eredményem.
Hogyan kell írni 4-bites módban?

lcd_RS = PORTC6
lcd_EN = PORTC7

D4 = PORTA4
D5 = PORTA5
D6 = PORTA6
D7 = PORTA7

Köszönöm előre is!
(#) boomerang válasza Tony hozzászólására (») Nov 22, 2010 /
 
Az AVR-rel fogadni még nem próbáltam, nekem a küldés kellene..... Most gombnyomásra küldök egy K betűt, de tök mindegy hogy milyet..., lényeg hogy a terminálban vagy egy ilyen furcsa C betű jelenik meg, vagy pedig több darab L. Nem az amit küldök a kontrollerből.

Ha módosítottam a baud rate-t, akkor nem is ment szóval szerintem nem baud rate hiba. Bár nem tudom...
Van még ötleted ?

A konnekciók is jók úgy vélem.
(#) augre válasza boomerang hozzászólására (») Nov 22, 2010 /
 
hello

nekem a baud rate miatt küldött más karaktereket, miután beállítottam ment.

3. UART/USART hibák 99,9% a rossz órajel miatt van

órajel?

písz
(#) gtk válasza Tomi_Bp hozzászólására (») Nov 22, 2010 /
 
  1. x3 = (float) x1 / x2;
(#) kovacsj válasza kovacsj hozzászólására (») Nov 22, 2010 /
 
Közben sikerült megoldanom. Találtam rá egy libraryt.
Feltöltöm, hátha kell valakinek.

AVR-LCD4b.zip
    
(#) Tomi_Bp válasza gtk hozzászólására (») Nov 22, 2010 /
 
Köszönöm szépen! Egy régi problémámra adtad meg a választ!
(#) lajos1969 válasza Reggie hozzászólására (») Nov 22, 2010 /
 
Köszönöm szépen az információt ha kipróbáltuk akkor majd jelenkezem.
Következő: »»   282 / 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