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   179 / 840
(#) trudnai válasza herzsolt hozzászólására (») Jan 24, 2010 / 1
 
Orulok, hogy sikerult megoldani! De azert az indentalassal kapcsolatos tanacsokat is vedd figyelembe! Az nem fogja a programodat szintaktikailag vagy szemantikailag befolyasolni, azonban Neked sokkal konyebb dolgod lesz atlatni, hogy mit is csinal vagy mit is kellene csinalnia.

Az okolszabaly, hogy minden kezdo kapcsos zarojel utan a program sorokat beljebb kezded (indentalod), majd minden bezaro kapcsos legyen vissza teve az eredeti poziciora, es akkor igy a jovoben latni fogod, hogy mi van a cikluson vagy felteteleken belul es, hogy miert nem kerul ra arra a szerencsetlen kodreszletre a vezerles.

Tehat mindig valahogy igy nezzen ki a forras:
  1. int valami()
  2. {
  3.     ...
  4.     ...
  5.     while(..)
  6.     {
  7.         for ( .. ; .. ; .. )
  8.         {
  9.             ...
  10.             ...
  11.             if ( ... )
  12.             {
  13.                 ...
  14.             }
  15.             ...
  16.             ...
  17.         }
  18.         ...
  19.         ...
  20.     }
  21.     ...
  22.     ...
  23. }
(#) herzsolt válasza trudnai hozzászólására (») Jan 24, 2010 /
 
Köszönöm az építő jellegű tanácsodat.
(#) janyjozsef hozzászólása Jan 24, 2010 /
 
Sziasztok!

AVR studio-ban beállítom a text color és egyéb színeket.
Igen ám! De ha kilépek és újra indítom, akkor ezek a beállítások elvesznek. És minden alapszínben pompázik.

Mit rontok el? Vagy el kell menteni külön?

AVR 4.18
WIN7

Köszi a válaszokat.
(#) zsuscsinyo válasza janyjozsef hozzászólására (») Jan 24, 2010 /
 
Szia! A Win7 előszeretettel védi a fájlokat a "Program Files" mappában, próbálj meg rendszergazda jogosultságot állítani a parancsikonon, vagy telepítsd a mappán kívülre, lehet ez lesz a probléma, mivel én jártam már úgy, hogy emiatt nem tudtam beállításokat menteni.
(#) papa22 hozzászólása Jan 24, 2010 /
 
Sziasztok!
Nemigazán értem a PWM használatát már szét turtam a Bascom sugóját és nemértem mit hogyan kell, valaki tudna egy oldlt ahol le irják érthetöen vagy esetleg egy minta programot? A cél az az lene hogy inteligen házak mostanában nagyon elkeztek érdekelni és elkeztem irogatni programokat avr re.
lényeg az lene hogy ha UART-rol jön valami adat azt egy megszakitás rutinban le elenörzöm hogy meg eggyezik e az elöre beprogramozot azonositoval ha igen akkor figyel hogy mijen adatok szolnak neki és itt jön a PWM rész hgy ha elküldöm neki hogy 50% akkor PWM-el beálitja a fényeröt a megadot értékre illetve beálitaná haérteném hogy programozamle
elöre is köszönöm a segitséget
(#) Lucifer hozzászólása Jan 25, 2010 /
 
Nem tudja valaki véletlenül milyen argumentummal lehet rávenni az avr-gcc-t arra, hogy létrehozzon asm fájlokat is a fordítás során?
(#) janyjozsef válasza Lucifer hozzászólására (») Jan 25, 2010 /
 
Nem lehet rávenni.

Futtasd debug módban és a view menüben disassembler.
(#) janyjozsef hozzászólása Jan 25, 2010 /
 
Az AVR nem menti a beállításokat Win7 alatt-ra a megoldás: Rendszergazdaként kell futtatni.

Köszi zsuscsinyo!
(#) Lucifer válasza janyjozsef hozzászólására (») Jan 25, 2010 /
 
De lehet, igaz arra még nem jöttem rá, hogy egyszerre tudjon asm-et és binárist is prezentálni, felteszem nem is lehet.

A buildtől eltekintve így lehet a projektedet asm-ben megtekinteni:
  1. #!/bin/bash
  2.  
  3. for i in *.c
  4. do
  5. avr-gcc -Wall -mmcu=atmega8 -c -Os $i -S -o asm/$i.asm
  6. done
(#) trudnai válasza Lucifer hozzászólására (») Jan 25, 2010 /
 
De ha ilyan jol megtalalod magadtol is akkor miert kerdezed? Sokkal profibbnak tunsz, ha elobb megprobalod magad megoldani a kerdest, es ha nagyon nem megy akkor kerdezel
(#) Melphi hozzászólása Jan 25, 2010 /
 
Sziasztok megépítettem a a Topi féle AVR-Doper, USB-s ISP programozó-t kérdésem az volna hogy milyen programot ajánlatok hozzá ami egyszerű és csak felprogramozni szeretnék vele ,és mást nem.
Köszönöm.
(#) labu01wx hozzászólása Jan 25, 2010 /
 
Sziasztok!
Az normális ha az avr megfagy ha adc-t 0V-ra kötöm és fut tovább a program ha megszakítom a kapcsolatot(adc és föld között)?
(#) (Felhasználó 4577) válasza Melphi hozzászólására (») Jan 25, 2010 /
 
Szia!

Topi és Zsirosdani cikkeiben találhatsz pár programot:
http://www.hobbielektronika.hu/kapcsolasok/nyolc_labbal_i_resz.html

Érdemes a többi részt is elolvasni.
(#) vzoole válasza labu01wx hozzászólására (») Jan 25, 2010 /
 
Ez nem normális...

De nem ártana ha feltennéd a teljes szoftvert és a kapcsolási rajzot is.
(#) labu01wx válasza vzoole hozzászólására (») Jan 25, 2010 /
 
A kapcsolási rajz a PB2 kivételével megegyezik.
A PB2-ön van egy ilyen poti fszültségosztónak.
A lényeg, hogy folyamatosan nő a led oszlop magassága, még el nem éri a max értéket(ezt lehet potival állítani), ezután el kezd csökkenni és így tovább.
Ez megy is, de az a gond, hogy ha a potit minimumra állítom, akkor megfagy, de ha ismét feljebb tekerem folytatódik a program.
Igazából mindig megfagy, ha 0V-ra kötöm az adc-t.
(#) Istike88 válasza labu01wx hozzászólására (») Jan 25, 2010 /
 
Ha jól értem akkor ez a program azt hívatott csinálni hogy van egy led oszlop aminek a magassága folyamatosan változik, és a potival azt állítod be, hogy melyik led legyen a maximum?

Mert ha így van akkor tulajdonképp nem fagy meg hanem az oszlop magasságát 0-ra állítottad, és így nem jelez ki semmit.

Vagy pedig amikor méred az ADC-n a feszt a while ciklusban akkor osztod 64-el, de ha földre kötöd az adc-t akkor a mérés eredménye 0 és 0/64 nincs értelme.
(#) vzoole válasza labu01wx hozzászólására (») Jan 25, 2010 /
 
Így próbáld meg:
  1. adc = ( MeasureADC(1)+1 ) / 64;
(#) labu01wx válasza Istike88 hozzászólására (») Jan 26, 2010 /
 
A 0/64-nek van értelme 0/64=0. A nullával való osztás nincs értelmezve (64/0)
(#) labu01wx hozzászólása Jan 26, 2010 /
 
Kis módosítással már jó is: a program nem írt a ledsorra, ha i=adc=0, ezért a kijelzőn az előző érték maradt.
Módosítva:
  1. switch (fel) {
  2.                   case 1:
  3.                           if (i<adc) {SendData(CreateBar(i) | peak); i++; m_delay_10ms(30);}
  4.                         else {fel=0; i=adc;}
  5.                           break;
  6.                   case 0:
  7.                          
  8.                           if (i<=adc) { SendData(CreateBar(i) | peak); i--; m_delay_10ms(30);}
  9.                             else i=adc;
  10.                           if (i==0) fel=1;
  11.                           break;
  12.                 }
(#) Istike88 válasza labu01wx hozzászólására (») Jan 26, 2010 /
 
Jajj. Most jó hülyét csináltam magamból Igazad van!
(#) vzoole válasza Istike88 hozzászólására (») Jan 26, 2010 /
 
Én meg simán elhittem... az se jobb
(#) Istike88 válasza vzoole hozzászólására (») Jan 26, 2010 /
 
Legyünk pozitívak, legalább kipróbáltam a képlet szerkesztőt
(#) Melphi hozzászólása Jan 28, 2010 /
 
Helo valaki meg tudná mondani hogy avr programozohoz elkeztem feltölteni a atmega8 ba a hexeket szépen ment is utánna beálítottam a fuse biteket (ponyprogban) ajánlásra csak a sut0-át pipáltam ki felakartam égetni és egyböl hibát dobott ki , mosmár nem ismeri fel egyáltalán ez miért lehet?
(#) (Felhasználó 4577) válasza Melphi hozzászólására (») Jan 28, 2010 /
 
Kizártad magadat a chip-ből. Szerintem mást is beállíthattál.
Ha ennyire nem sikerül, akkor szerintem inkább kérj meg valakit, hogy programozza fel neked.
(#) Melphi válasza (Felhasználó 4577) hozzászólására (») Jan 28, 2010 /
 
Akkor kuka ? akkor nem tudom miért mondták hogy csak a sut 0 legyen kipipálva
(#) (Felhasználó 4577) válasza Melphi hozzászólására (») Jan 28, 2010 /
 
Szerintem mást is elállíthattál.
Talán még fel lehet éleszteni külső kvarccal.
(#) vzoole válasza Melphi hozzászólására (») Jan 28, 2010 /
 
Bővebben: Link

üi.:
Fuse beállítása után volt rajta kvarc?
(#) Melphi hozzászólása Jan 28, 2010 /
 
Nem nem volt ,nekem alap hejzetben semmi nincs kipipálva ezt montam is az illetőnek ő azt mondta h a sut0 legyen csak kipipálva ezt is tettem, az a helyzet hogy attinyi26-ot nagyon sokszor programoztam ,de ott konkrétan mutatták hogy melyiket kell kipipálni de az avr programozo vezérlőjénél senki nem tudott konkrétumot mondani pedig nagyon sokat érdeklődtem.
Így nézett ki amit beálítottam.
(#) vzoole válasza Melphi hozzászólására (») Jan 28, 2010 /
 
Ha átálítottad külső kvarcra, de nincs rajta kristály akkor nem tudsz kommunikálni az AVR-el.
Akassz rá egyet és úgy próbáld meg.
(#) (Felhasználó 4577) válasza Melphi hozzászólására (») Jan 28, 2010 /
 
És a kettő 22pF-os kondenzátort se felejtsd el!
Ha nem megy 16MHz-essel, akkor próbáld meg 1MHz-essel.
Következő: »»   179 / 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