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   806 / 837
(#) Massawa válasza Massawa hozzászólására (») Jún 17, 2019 1 /
 
Söt van 24 bites expander si TCA6424, sajnos kész modul nincs, pedig jol jönne.
(#) wbt válasza Kovidivi hozzászólására (») Jún 18, 2019 /
 
Köszönöm, hogy helyettem ékesen megfogalmaztad, már kétségbe estem
Talán annyi helyesbítés, hogy amit beküldesz egy LEDnek, azt benyeli, a többit küldi tovább)
(#) mr.Cara hozzászólása Júl 17, 2019 /
 
Üdvözlet mindenkinek !
Van két léptető motorom : egy NEMA17 és egy NEMA23-as . egy tekercselőt szeretnék velük hajtatni. A17-es a huzalvezérlőt a 23-as az orsózót hajtaná. A léptetőkhöz TB6600 meghajtó van kéznél .Egy szokásos 4 soros LCD lenne a visszajelzéshez. ATMega328 dolgoztatná a gépet.
Tudja egy mega328-as egyszerre a vezérlőket irányítani (lassan indítani/megállítani) + a számlálást elvégezni + a huzalátmérőből a huzalvezetőt megfelelő sebességgel mozgatni ?
Köszi a segítséget !
(#) wbt válasza mr.Cara hozzászólására (») Júl 17, 2019 /
 
Sebesség kérdése az egész. Minden esetre a stepperek vezérlése megszakításból menjen, a kijelző meg főprogramból, így biztosított a stabil forgás.
(#) szabi95 hozzászólása Júl 17, 2019 /
 
Üdv!
Először használok Atmega 328P uc-t és olyan gondom akadt, hogy akármilyen órajelet állítok be, mindig nagyon lassan fut rajta minden. Például egy 60ms-es delay kb 1 másodpercig tart. 16MHz -es kristállyal szeretném használni, a fuse biteket erre állítottam: L Fuse 77; H Fuse DF; E Fuse FF. Mi lehet a gond?
(#) Kovidivi válasza szabi95 hozzászólására (») Júl 17, 2019 /
 
8-as osztót kapcsold ki, DIV8.
(#) szabi95 válasza Kovidivi hozzászólására (») Júl 17, 2019 /
 
Volt pár olyan próbálkozás is, de semmi hatása nem volt.
(#) Kovidivi válasza szabi95 hozzászólására (») Júl 17, 2019 /
 
Én nem próbálkoznék a helyedben, hanem kiolvasnám a FUSE BIT-eket, és "kikódolnám" az adatlapban található leírás alapján. És akkor ki fog derülni, hogy mi a hiba. De mondok egyszerűbbet is: keress egy FUSE BIT calculatort, és írd be az értéket, az mindent elmond.
(#) szabi95 válasza Kovidivi hozzászólására (») Júl 17, 2019 /
 
Kiolvastattam a burn-o mattal, és meg is lepődtem. Teljesen más érték volt benne. Úgy tűnik ha megváltoztatom a beállításokat, de külön nem megyek rá a fuse bitek beírására akkor nem csinálja meg. Érdekes, máskor mindig megcsinálja. Köszönöm! (arra nem gyanakodtam hogy esetleg nem írja bele. A fuse calculatort is nézegettem, az alapján is próbáltam pár beállítást)
(#) fifadani hozzászólása Júl 26, 2019 /
 
Sziasztok!

Szeretném Tőletek megkérdezni, hogy van-e valakinek egy egyszerű könyvtára az nrf24L01-hez, c nyelven?

Köszönöm szépen!
(#) Ivan93 válasza fifadani hozzászólására (») Júl 27, 2019 / 1
 
Szia!
Nem éppen könyvtár, inkább csak függvények, ezt én készítettem régebben.
ATmega328-ra írtam. Kitöröltem felesleges dolgokat, így lehet hogy Neked elsőre nem fordul majd le az egész példa, de a függvényekhez nem nyúltam. A program várja a beérkező adatot, majd visszaküldi.
(#) fifadani hozzászólása Júl 29, 2019 /
 
Köszi! Kipróbálom, amint lehet.
(#) glaci hozzászólása Aug 12, 2019 /
 
Sziasztok!
Korábban, májusban, már kérdeztem erre vonatkozólag, de kielégítő és továbblendítő választ nem kaptam. Most újra felteszem a kérdést:
Idáig piceket programoztam, amikkel nem volt sok gond. A programot megírtam c-ben, lefordítottam, kaptam egy .hex fájlt elővettem a pickit2, általam épített klont, majd néhány kattintás után már bent is volt a program a picben.
Aztán ráleltem bontásból több 10 db AT89C2051, AT89S5224 valamint ATMEL3216PU processzorokra és szeretnék velük valamit kezdeni, de olyan sok negatív infót találtam a neten az atmel processzorok programozásáról, hogy félve nyúlok hozzá.
Azt kérdezném,hogy ha mikkroc fejlesztővel irok programot ami a fordítás után egy .hex fájlt ad, milyen programmal és eszközzel tudom a processzorba bejuttatni? Ha szükséges, csinálnék hozzá eszközt is. Van zomboee által közzétett stk500 programozóm. Ez elég vagy más kell? Örömmel vennék minden segítőkész hozzászólást!
A hozzászólás módosítva: Aug 12, 2019
(#) TavIR-AVR válasza glaci hozzászólására (») Aug 12, 2019 /
 
A 89C2051 illetve a 89S52 belül egy 8051-es chipet tartalmaz. A programozása nem lehetséges a STK500-zal (jellemzően nem ISP/SPI-n át programozódnak). Én nem biztos hogy bajlódnék belül: kicsi memória, korlátozott tudás.

A Mega32-16PI egy ATEMega32 - na ezzel lehet mit kezdeni és a STK500 is programozza...
(#) glaci válasza TavIR-AVR hozzászólására (») Aug 12, 2019 /
 
Köszi a választ!
Igen valóban kicsi a memória, de a pic16f628-nak is kicsi, mégis használjuk, ha nem robosztus programot akarunk írni, haem csak egy hőmérőt, vagy kijelzőmeghajtást, stb.
Ennek ellenére, ha tudnál segíteni, hogy milyen programmal és milyen programozóval lehetne őket életre kelteni én szívesen "bajlódnék" velük egy keveset.
(#) aviator17 válasza glaci hozzászólására (») Aug 14, 2019 /
 
Sziasztok!

ATMEGA128 PWM-et próbálom működésre bírni Timer3-al. Ha jól értelmezem az adatlapot, nekem úgy tűnik mintha ellentmondás lenne benne, erre szeretnék rákérdezni.

Azt mondja az adatlap, az OCR regiszterrel hasonlítja össze a TCNT0-t a rendszer miközben felfelé számol és ha eléri a TCNT0 az OCR-ben tárolt értéket akkor az OC láb állapotot vált függően attól, hogy a COM bitek hogyan állnak (invertált, vagy nem invertált a PWM)

A WGM bitek állásától függően meg lehet adni azt is hogy honnan vegye a TOP értéket a rendszer, ahol nullázza a TCNT0-t, itt van egy olyan lehetőség hogy az OCR legyen a TOP. Ebben az esetben viszont soha nem fog tudni állapotot váltani az OC, mert az OCR az állapotváltási és a nullázási pont is egyben, tehát ez így nem tud működni.

Jól látom a helyzetet?
(#) csatti2 válasza aviator17 hozzászólására (») Aug 14, 2019 /
 
Nem. A WGM bitekkel a timer módját állítod be. A CTC mód (amire te gondolsz) az nem PWM generációra való, hanem amikor sima időzítőre van szükséged vagy adott időhosszúságú négyszögjelet szeretnél generálni. Természetesen lehet vele PWM szerű jelet is generálni de a valóságban nem PWM ilyenkor a kimenet (nem a kitöltési tényezőt állítod be, hanem az impulzusok hosszát, illetve követési idejét).
Az adatlapban megtalálhatod a különböző módokhoz tartozó idődiagramokat, szerintem az érthetővé teszi majd a működését és a különböző módok közötti eltéréseket.
(#) phr3ak hozzászólása Aug 29, 2019 /
 
Atmega16u2-t programoztam és meglepve tapasztaltam, hogy nincs konfiguráció a hex fileban. Valóban az atmelnél nincs erre dedikált memóriaterület?
(#) Vámos István hozzászólása Aug 29, 2019 /
 
ATTINY412-t szeretnék programozni. A HEX-file-om már megvan. Hogy lehet rá feltölteni? Sajnos vegyész vagyok, nem igazán szakmabeli. Az Attiny412 bár be van ültetve a tervezett panelre, de minden lábkivezetés elérhető "dugaszolós" vezetékkel.
(#) vargham válasza phr3ak hozzászólására (») Aug 29, 2019 /
 
Az alap konfigurációt a fuse bitekkel állítod be. Ez valóban nem része a hex fájlnak, külön kell felprogramozni. Mindegyik ATMega így működik.
(#) rolandgw válasza Vámos István hozzászólására (») Aug 29, 2019 /
 
- Atmel ICE
- Arduino
- MPLAB Snap, kétesélyes, bizonytalan.
(#) Szasza9668 válasza Vámos István hozzászólására (») Szept 11, 2019 /
 
Szia!

Nekem van programozóm amit rá lehet dugni a tüskékre. stk500 klón.
Ha kéred segítek szívesen!
A hozzászólás módosítva: Szept 11, 2019
(#) rolandgw válasza Szasza9668 hozzászólására (») Szept 11, 2019 /
 
Az UPDI-t melyik stk500 kezeli? Ez egy xmega3 magos Tiny.
(#) Vámos István válasza Szasza9668 hozzászólására (») Szept 11, 2019 /
 
Kedves Szasza9668!
Nagyon köszönöm válaszodat. Már kezdtem föladni a reményt.
Hogy tudnálak elérni? Én Pesten lakom. Szívesen felkeresnélek a panelommal és a kész HEX file-al.
Nem tudom ezen a fórumon lehet-e címet cserélni? E-mail-em ***************
Üdv a találkozás reményében.
A hozzászólás módosítva: Szept 12, 2019
Moderátor által szerkesztve
(#) vinibali hozzászólása Szept 23, 2019 /
 
sziasztok,

van egy 8 bites AVR-rel szerelt 3D nyomtatóm. ami mindaddig jól működött a gyárilag szállított RepRap szoftverrel és a később általam fordított és rátöltött Marlin 1.1.9-cel, ameddig rosszul nem programoztam fel ISP-n keresztül és elfelejtettem rátölteni a bootloader-es fw-t, helyett a simát töltöttem fel ISP-n keresztül.
utána persze sikerült a bootloadert és main fw-t egymás után feltölteni, de azóta nem érzékeli az endstop-ot auto-home funkciónál.
állítólag ez egy ismert probléma: X axis only moves in one direction and/or Endstops do not work
de a forrásből jövő fw beállítások: Sanguino
és a megfelelő fuse értékek mellett sem akar megjavulni a dolog. (én állított be fuse értékek, mert az első feltöltés után FF volt minden):
  1. [user@comp]: /media/ramdisk>$ sudo avrdude -c usbasp -p m1284p
  2. avrdude: AVR device initialized and ready to accept instructions
  3. Reading | ################################################## | 100% 0.02s
  4. avrdude: Device signature = 0x1e9705 (probably m1284p)
  5. avrdude: safemode: Fuses OK (E:FD, HE, L:FF)
  6. avrdude done.  Thank you.


attól tartok, hogy valamiért nem veszi fel a processzorban lévő fuse beállításokat az alaplap, vagy a bootloader felülcsapja ezt.
visszatöltöttem az eredeti full dump-ot, de természetesen azzal sem történik semmi. műszerrel kimérve az endstop-ok működnek.
volt már valakinek ilyen problémája ATmega vezérlős nyomtatóval?
van valakinek tapasztalata bootloaderes használattal?

köszi
(#) vinibali válasza vinibali hozzászólására (») Szept 26, 2019 /
 
megoldva: felcseréltem az X és Y tengelyek motorjainak a kábeleit   
(#) Massawa hozzászólása Szept 27, 2019 /
 
ATmega328P ADC6,7
Használta már valaki ASM-ben a 328p két extra analog bemenetét? Sajnos a gyári leirás eléggé lyukas. Ezek csak bemenetek, digitális funkcio nincs rajtuk igy nyilvánvalo, hogy nem kellenek a DDR stb parancsok. Az Arduino nyelvében pofon egyszerü, de az ASM-ben nem sikerült semmit utmutatot az Atmeltöl találni. A kötelezö ADC beállitásokat ugy ahogy ismerem és nemrégen használtam egy digitális portrol, de erröl a kettöröl még soha. Csak az egyik bemenetét kellene olvasni.

Kösz.
(#) Kovidivi válasza Massawa hozzászólására (») Szept 27, 2019 1 /
 
Ugyanúgy kell beolvasnod, mint a többi bemenetet. Átállítod a belső multiplexert A6-ra, vársz kicsit, kiolvasod. Nincs benne semmi extra egyébként. Alapból bemenetre van állítva, csak ki kell olvasnod.
(#) Massawa válasza Kovidivi hozzászólására (») Szept 27, 2019 /
 
Kösz.
(#) zaza99 hozzászólása Szept 28, 2019 /
 
Sziasztok!

Szeretném egy nano tartalmát kiolvasni egy uno segítségével, de elakadtam.
A képen látható módon kötöttem össze.
Az Avrdudess programmal próbálkoztam, de nem tudom beállítani, hogy az uno-t programozóként lássa.
Következő: »»   806 / 837
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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