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   532 / 840
(#) Stefan válasza fekete123 hozzászólására (») Ápr 21, 2013 /
 
Szia!

Érdekes, nem tudom az a második || minek van ott... töröld ki.
  1. #elif defined(__AVR_ATmega3290__) ||\
  2.       defined(__AVR_ATmega6490__)


Milyen AVRed van?
A hozzászólás módosítva: Ápr 21, 2013
(#) Gorwick hozzászólása Ápr 21, 2013 /
 
Sziasztok!
Mostanában vettem egy STK500 boardot, minden jumpert a kezelési utasítás szerint dugtam rá, de mégis ennél az egyszerű programnál minden led kigyullad:

int main(void){
DDRB=0xff; -> B port összes bite kimenet
PORTB=0x00; - B port összes bite lowba van.
while(1)
{}
}

A ledek persze a B portra vannak kötve. Én rontottam el valamit vagy valamit félre dugtam?
Kérem segítsetek.
(#) csabeszq válasza zombee hozzászólására (») Ápr 22, 2013 /
 
zombee, ha komolyan szeretnéd, az atmega168-as támogatást megcsinálhatom hozzá, mert vannak 168-as Arduino-k is.

Igazából azért hanyagoltam idáig, mert 1200 Ft egy 328P és igény nem volt 168-asra idáig.
(#) erdoszoli válasza Gorwick hozzászólására (») Ápr 22, 2013 /
 
Szia!

Ez nekem azt jelenti hogy a ledek a board-on fel vannak húzva, és amennyiben a port lábat nullába rakod zárod az áramkört és így égnek a ledek. Ha a port lábat "H" szintre húzod akkor nem égnek.
(#) zombee válasza csabeszq hozzászólására (») Ápr 22, 2013 /
 
OK, köszönöm.
Egyébként a PC oldalon tudom-e valahogy integrálni a dolgot egy saját progiba?
Nekünk az kell hogy egy távirányítóban használt ATMega48 kimenő periódusidejét kell mérni.
Ha jelentősen eltér a 43ms-től akkor kiszámolja hogy melyik HEX fájl fog kelleni az AVR-hez,
beprogramozza és újra megméri a periódusidőt. PC oldalon ezzel még lesz munka, érzem.
Csak az a kérdés hogy az RS-232 kommunikáció, a protokoll amit használsz az mennyire kezelhető.
Egyébként egy fél műszak alatt leprogramoztam hogy lekérdezi az OSCCAL értéket az IC-től,
az alapján egy táblázatból kiválasztja a HEX fájlt és beprogramozza.
Az ellenőrzéshez mégis kell az oszcilloszkóp, és az esetek 30-40%-ában korrigálni kell.
Az analizátorral felszabadulna az oszcilloszkóp, és teljesen automata lehet az égetés.
Már ott tartok hogy az RS-232 CTS jelét használom a progiból, de az egy kicsit problémás(még).
1000 darabos tétel mellett ez nem kevés időmegtakarítást jelent...
A hozzászólás módosítva: Ápr 22, 2013
(#) possim hozzászólása Ápr 22, 2013 /
 
Sziasztok!
Most kezdem AVR-ekkel foglalkozni, így igen csak kezdő vagyok ebben a témában. Segítséget, illetve tanácsot szeretnék kérni. Az a problémám, hogy vettem egy USBASP V2.0-at és nem hajlandó minden AVR-t felismerni. Értem ezalatt, hogy a /-8PU/ felismeri, de a /-16PU/at nem ez mitől lehet? Esetleg valami beállítási hiba? STK200-al mennek a 16-osok is, illetve felismeri, szóval az AVR-ek jók. Előrre is köszönöm válaszaitokat.
(#) zombee válasza possim hozzászólására (») Ápr 22, 2013 /
 
Az USBASP sajnos nem az aminek mondják.
P*fátlanul egyszerű és olcsó, de ez meglátszik a használhatóságon is.
Ha nem akarsz beruházni másik programozóba(3500-ért már használható+gyors STK500-at kapsz),
akkor építs egy Dopert, az még mindig jobb és fillérekből megvan.
Ha van MAX232-d és nem félsz használni, akkor a tuxgraphics-os STK500 a Te embered.
(#) csabeszq válasza zombee hozzászólására (») Ápr 23, 2013 /
 
Zombee, az Arduino bootloader-ét érdemes használni.

Ez úgy megy, hogy RS-232-n csatlakozol a PC-hez és a programomból kihámozhatod, hogy hogyan kell kapcsolódni a bootloaderhez.

A terepasztalomat 5m-es RS-232-es kábel fogja összekötni a PC-vel, ezen fogom tudni majd felprogramozni. Kicsit módosítottam a bootloader-t, hogy ne külső RESET-re induljon, hanem WATCHDOG resetre. A terepasztalon a "firmware update" ezután úgy fog menni, hogy beküldök egy csomagot, az Watchdog resetet indít el, utána már programozhatom a bootloaderen át.

Nem biztos, hogy neked pont az én programom kellene, lehet, hogy szimplán az optiboot bootloaderrel jobban járnál.
(#) zombee válasza csabeszq hozzászólására (») Ápr 24, 2013 /
 
Köszönöm.
Már látom, a Te cuccod arra való hogy valaki kész eszközt és szoftvert vehessen a kezébe.
Nekem pedig egyszerűbb lesz megírni egy programot AVR-re, főképp azért mert csak
egy csatornát használok, az RS-232 porton pedig elegendő a HI és LO állapotban
töltött időt elküldeni, amit egy egyszerű PC program nagyszerűen tud majd kezelni.
Sőt, talán még az STK500-asomba is be lehet programozni ezt a módot,
mivel a mérendő jelet az ATMega48 az SCK lábon adja ki...
A hozzászólás módosítva: Ápr 24, 2013
(#) Sipy hozzászólása Ápr 24, 2013 /
 
Sziasztok, megépítettem a csatolt programozó hardvert hogy ATTINY2313-t programozzak bascom avr alatt. Az elsõ programot sikeresen megírtam, nem talált hibát a program és a szimulátorban is jól futott. Beletölteni a chipbe viszont nem sikerült. Próbáltam beállítani a chipet de nem találtam ATTINY2313-t csak ATTINY22, ATTINY12 és ATTINY15. Na meg gondolom a hardver fajtája se mindegy, próbáltam stk500 és stk200/stk300-at is. Több ötletem nincs viszont ami jó jel lehet hogy magától beáll bizonyos 90S2313-ra. Az lenne az?
(#) Sipy hozzászólása Ápr 24, 2013 /
 
Csak sikerül végre csatolni...
(#) FMSound hozzászólása Ápr 24, 2013 /
 
Üdv!

Egy ideje nem használtam a he store kit-es avr programozom, szeretném használni, de valami hiba van. A fuse biteknél hiányzik egy pipa, kifotoztam a hiba üzenetet. Mit nem veszek észre?? Mi a gond?
Köszi előre is!
A hozzászólás módosítva: Ápr 24, 2013
(#) rigo_mate válasza Sipy hozzászólására (») Ápr 25, 2013 / 1
 
Használd a PonyProg letöltő programot. Bővebben: Link
(#) FMSound hozzászólása Ápr 25, 2013 /
 
Tegnap este nem sikerült csatolni a képet, a hibaüzenetről, remélem most menni fog.
(#) FMSound hozzászólása Ápr 25, 2013 /
 
Most sem sikerül csatolnom a fájlt hogy lehet ez??? Elég fontos lenne az AVR-ek felprogramozása, de így nem látjátok mi a probléma.....
(#) Sipy válasza rigo_mate hozzászólására (») Ápr 25, 2013 1 /
 
Van egy olyan érzésem hogy ez jó lesz, köszi szépen! Otthon kipróbálom
(#) FMSound hozzászólása Ápr 25, 2013 /
 
Rájöttem közben, hogy bmp tipusú képeket nem sikerült feltöltenem, így most átkonvertáltam jpg-re így oks! Ez a hiba programozás közben, a signature bytokat sem tudom kiolvasni!

Mi lehet a baj?

Köszi előre is!
A hozzászólás módosítva: Ápr 25, 2013

AVR 2.JPG
    
(#) Robi98 hozzászólása Ápr 25, 2013 /
 
A régi számítógépemet lecseréltem egy újra és most az a probléma adódott,hogy a winAvr nem ismeri fel a programozót. A számítógép tökéletesen felismeri, a drivereket feltelepítettem, a giveio.instalt lefuttattam, a libus-drivert is feltelepítettem. Amikor rákattintok, hogy make program, kiirja hogy can't open device. HID módban is kipróbáltam, ugy sem sikerült. Lehet, hogy a libus win32 nem támogat valamit? A gépen windows 7 van eddig xp volt, valamint mos 64 bites a processzor, eddig 32 volt
A hozzászólás módosítva: Ápr 25, 2013
(#) erdoszoli válasza FMSound hozzászólására (») Ápr 25, 2013 /
 
Szia!

Eddig 3 esetben kaptam ilyen üzit:
-1 : Nem a jó IC típust választottam ki véletlenül ( kizárható gondolom )
-2 : ISP frekit lejjebb kellett venni ( Proci órajelének minimum 4ed része legyen az ISP freki , ha kisebb se baj)
-3 : Kábel szál szakadás valahol...
(#) FMSound válasza erdoszoli hozzászólására (») Ápr 25, 2013 /
 
Köszönöm, megvizsgálom a kábelek, lehetséges hogy az usb kábelben van szakadás? Különben annyi változás történt az usb terén ,hogy egy pci-os usb kártyát használok, mert a mostani alaplapomnak tönkrement az usb része. Kábel: ezt a kábelt használom nyomtatóhoz is, ott eddig nem volt gond....

Még annyi hogy a fuse biteknél ez a helyzet... a kábelszakadás okozhatja ezt ?

Köszi előre is!
A hozzászólás módosítva: Ápr 25, 2013

AVR 3.JPG
    
(#) Sipy válasza rigo_mate hozzászólására (») Ápr 25, 2013 /
 
Na letöltöttem, fut is jól de sajnos ezzel sem tudom beletölteni Már multiméterrel átnéztem többször is a programozót, a rajz szerint jónak kellene lennie. Működhet egyáltalán a rajz amit megépítettem? Te milyet használsz? Tudok építeni másikat, vannak itthon busz ic-k meg minden ami kell. Ami feltűnt az hogy az avr tápfesze mindössze 2.1 volt, és amikor a ponyprog megpróbálja írni bele írni a programot akkor még jobban leesik, pedig szerintem még amúgy is kevés. Pedig tegnap amikor a bascommal próbáltam akkor 4.2 voltot kapott, ezt az esést betudtam a 3 db 220 ohmos ellenállásnak. Ha mondjuk egy telefontöltőről vagy az usb portról táplálnám meg az gond lenne?
(#) erdoszoli válasza FMSound hozzászólására (») Ápr 26, 2013 /
 
Szia!

Usb kábel hibája nem hiszem mert ha nem kapna tápot azon keresztül a programozó akkor a gép se ismerné fel. Ha a kábel adatszálai sérültek volna akkor a nyomtató se menne, és ezt a programozó felületet se tudnád az AVR Studióból elővarázsolni szerintem.
Én a cél áramkör és a programozó közti kábelra gondoltam.
Amit beraktál képet, azon az látszik hogy nem tudta kiolvasni a FUSE Biteket a cél IC-ből ezért igazából ott randomszerűen akármi állhat...

A képből ítélve STK500-at használsz, ez a gyári Board? Mert pl megtörténhet olyan hogy régen mikor használtad akkor írtál rá egy olyan progit ami külső kvarcról működött, és most pl nincs a Boardon kvarc?!? Vagy épp nem érintkezik...
A lényeg hogy az "ISP Mode ERROR" hibaablakot akkor kapod ha nincs kapcsolat a programozó és a cél IC között.

Zoli
(#) skimen hozzászólása Ápr 26, 2013 /
 
Sziaszok!

Had kérdezzem meg, hogy szoktátok azt megoldani, hogy
ha levesszük a tápot az AVR-ről, akkor néhány adatot mentsen
eepromba?
Most egy reset áramkör adna megszakítást, hogy 4,3 volt alá csökkent
a táp, de nem mindig menti el az összes adatot.

Üdv!
(#) csabeszq válasza skimen hozzászólására (») Ápr 26, 2013 /
 
Az EEPROM-ba írás eszméletlen lassú.
Próbálj meg 1000 byte-ot kiírni, észre fogod venni.

Nem mindegy, hogy mennyi idő alatt esik 4,3V-ról nullára a feszültség.
(#) zombee válasza skimen hozzászólására (») Ápr 26, 2013 /
 
Ahogy előttem már megválaszolták, az EEPROM írás elég lassú, ezért előbb fog kikapcsolni.
Ha nagyon leesik a feszültség a proci még lehet hogy ketyeg, de az EEPROM írás már nem megy!
Én a helyedben egyrészt nagyobb pufferkondit használnék, és valahogy meg kell oldani
hogy a kikapcsolás azonnal érzékelhető legyen. Például egy diódával a pufferkondi elé...
A hozzászólás módosítva: Ápr 26, 2013
(#) dvid12 hozzászólása Ápr 26, 2013 /
 
Sziasztok egy olyan kérdésem lenne, hogy a megszakításokban lehet globális változók értékét befolyásolni vagy nem (nekem nem ment )??

ezzel próbáltam:
  1. #include <avr/io.h>
  2. #include <util/delay.h>
  3. #include <avr/interrupt.h>
  4.  
  5. int mode=0;
  6.  
  7. ISR (INT0_vect)
  8. {
  9.         mode ^= 1<<0;
  10. }
  11.  
  12. int main()
  13. {
  14.         DDRB = 0b011101;
  15.         PORTB = 0b000010;
  16.         MCUCR = 1<<ISC01;
  17.         GIMSK = 1<<INT0;
  18.         sei();
  19.        
  20.         while (1)
  21.         {
  22.                 if (mode>0)
  23.                 {
  24.                         PORTB = 0b000011;
  25.                         _delay_ms(500);
  26.                         PORTB = 0b000110;
  27.                         _delay_ms(500);
  28.                         PORTB = 0b001010;
  29.                         _delay_ms(500);
  30.                         PORTB = 0b010010;
  31.                         _delay_ms(500);
  32.                         PORTB = 0b000010;
  33.                         _delay_ms(500);
  34.                 }
  35.                 else
  36.                 {
  37.                         PORTB = 0b011111;
  38.                         _delay_ms(500);
  39.                         PORTB = 0b000010;
  40.                         _delay_ms(500);
  41.                 }
  42.         }
  43. }

Lécci segítsetek
A hozzászólás módosítva: Ápr 26, 2013
(#) Seton válasza dvid12 hozzászólására (») Ápr 26, 2013 /
 
A topic tetején a sárga boxban első pont:
1. Ha ISR-ben használsz globális változót, az legyen "volatile"

Próbát megér.
(#) lajos1969 hozzászólása Ápr 27, 2013 /
 
Sziasztok! Lenne egy kérdésem.
Ez így most külső 8Mhz-re van beállítva?
A hozzászólás módosítva: Ápr 27, 2013
(#) karika200 hozzászólása Ápr 27, 2013 /
 
Sziasztok!

Egy ATmega8 MCU-val szeretném a következőt elkövetni, ehhez kérnék útmutatást: az egyik megszakítás lábat felhasználva szeretném a mikrovezérlő lábára tett LEDet kapcsolgatni. Célom, hogy amíg ott az 1-es a megszakítás lábon, addig legyen ott az 1-es a LED felé eső lábon is, de amint 0 lesz a megszakításon a LED is aludjon ki. Ha jól gondolom ehhez nem elég simán a megszakításkor lefutó függvénybe beírni, amit szeretnék, mert a kikapcsolásról akkor még nem gondoskodtam, másrészt nem tudom, hogy a megszakítás hogyan fut le. Ha jól tudom, akkor ez szabályozható: felfutó élen, lefutó élen vagy amíg tartom a megszakításon az 1-et. Erre ha lenne valakinek egy mintaprogramja, tutorialja és megosztaná velem azt megköszönném.

A feladatnak látszólag semmi értelme, hiszen elég lenne ehhez egy nyomógomb, de a probléma egyszerűsítve lett a könnyebb értelmezhetőség miatt.

Köszönöm!
(#) FMSound válasza erdoszoli hozzászólására (») Ápr 27, 2013 /
 
Köszönöm az eddigi segítséget, de sajnos még mindig nem jó.
Skoppal végig mértem a programozó kimeneteit, mindegyik ponton van jel, a miso lábon is van vissza irányú jel a programozó számára. Nem tudom mit tegyek, lehet hogy valamitől mégis a programozandó avr-ek, mind a három darab vált alkalmatlanná ISP vel való programozásra? Talán valami zavar kikapcsolta a SPIEN-t ?(mert én nem voltam!!!) Ha a spien kikapcsoljuk akkor is ilyen üzenet jelenik meg? (bár szerintem az avr studio csak ezt a hiba üzenetet küldi mindig.... ezt azért gondolom mert ha a programozandó avr-t lehúzom, tehát csak a programozó lóg az USB-n akkor is ezt dobja ki)

Köszi előre is!!
Következő: »»   532 / 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