Fórum témák
» Több friss téma |
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
Semmi baja nem lesz, hogyha 20kHz fölötti PWM-mel vezérli a motort. Legalább tényleg nem fog sípolni. A vesztesség mindenesetre nőni fog a végfokban a magasabb kapcsolgatási frekvencia miatt.
Arra kell ügyelni, hogy a FET/IGBT/Tranzisztor vagy akármi is képes legyen erre a sebességre, meg persze a flyback dióda is.
Sajnos a kapcsolásodhoz a RESET lábat is be kell állítani, nemcsak az órajelet.
Nem rontottad el, így kell csinálni. Csakhát utána nem tudod programozni. Biztos, hogy nem működik egyáltalán? Ha letöltötted a programot, beállítottad a RESET-et, jó az órajel frekvencia, akkor mennie kellene.
bbb, gondolom Linux alól próbálod, mert a honlap Linux kerneles driverről is ír.
Ha az lsusb -v után látod az ezközt, akkor driver hiba lesz a probléma oka.
Szia!
Akkor mégse értem a gondolatmenetedet. Az IF sor (benne a megszakításban) végignézi a komparátorokat, ez eddig szintén ok. De hogy tudja az az egy sor ki is meg be is kapcsolni az átmeneti tároló adott bitjét(bekapcsolás OK, de kikapcsolás nem)? Ezt megint nem értem. Tudsz esetleg konkrét kódot/kódrészletet mutatni? @sikolymester: EZT a FEt-et használom a kapcsolásban. Szerintem bírja a 20kHz-et. Én is a zúgás/sípolás miatt választottam ekkora frekvenciát. Üdv Kiborg A hozzászólás módosítva: Jan 13, 2013
Baj nem lesz, csak éppenséggel nem azt teszed amit akarsz. A motorok impedanciája 10 kHz felett már olyan nagy, hogy az impulzusokat alig tudod rajta átnyomni, azaz eléggé felesleges a munka. (Amugy ez a kérdés már sokszor ki lett itt is, meg máshol is tárgyalva.)
Ha valoban a PWM jellel akarod a motor vezérelni (azaz kihasználni a PWM adta lehetöségeket, szuper lassu, de erös indulást, precizios fordulatszám vezérlést stb.), akkor sokkal kisebb freki kell. Ha csak az energiát akarod átvinni, akkor lehet akár 20 kHz is, csak a motor nem egészen ugy reagál erre ahogy müködne lassabb frekin. (Amugy a frekvenciát érdemes az adott motorra optimalizálni - mert szinte mindegyik másképp reagál). Abszolut nem a diodákról meg a tranzisztorokrol van szo, hanem egyszerü fizikárol.
Szia!
Egy szénkefés modellmotorról van szó. Üdv Kiborg
Gondoltam - annak kimondottan nem jo az ilyen ultrahang.....
Az átmeneti tárolót azért használom, hogy ha több komparátor van, a sok IF miatt késlekedés lenne.
A legvégén az átmeneti tároló értékét átviszem a PortX-be, azaz itt be-és ki is kapcsolja őket. Az átmeneti tárolót pedig a létrehozásakor nullázni kell, ez lehet hogy lemaradt.
Sziasztok!
Xmegás problémába futottam bele. Egy ATXMEGA 256 A3 AU szivat. Szeretném használni az A ADC konverterét. Hellyel közzel működik is. A gond, hogy egy 4k7-1k feszosztót mérek vele, amit a felsőbb tartományokban helyesen mér, de amikor 200 mV körüli jel jut az ADC-re, akkor elkezd hamisan mérni. De nem úgy hamisan, hogy rossz értéket ad a mérés, hanem visszadolgozik a feszosztóra. Amikor pl 0,21 V-ot kap a feszosztó akkor, ott 36 mV-nak kellene a feszosztó kimenetén lenni, és ha nincs összekötve a feszosztó az AD lábbal, akkor annyi is. Ha rákötöm, akkor meg 55 mV-ot ra felhúzza. Készítettem egy diagramot is, hogy hogyan módosítja a feszosztót. A 10. mérési pontban annyira eltorzul , mintha nem egy 4k7-1k , hanem egy 4k7-1k5 feszosztó lenne eredetileg. Már próbáltam mindent, ami eszembe jutott. Bemenetnek van konfigurálva, PINnCTRL-oknál kikapcsolva a digital input buffer... Signed, unsigned módban is, de valamiért visszadolgozik. Valami ötlet? Márió
Szia!
Nincs véletlenül bekapcsolva a porton a belső felhúzó ellenállás? Üdv Kiborg
Itt már máshogy kell konfigolni, mint atmeganal. Itt a PINnCTRL-al lehet állítgatni, hogy milyen típusú legyen a kimenet/bemenet és itt ki van minden kapcsolva, ahogy az adatlap javasolja analóg dolgokhoz még a digital input buffert is kikapacsoltam.
Márió
Üdv!
Mostani alkalommal úgy gondoltam, hogy egy SPI-s EEPROM-mal ismerkedem (25LC320). Valami, mint általában, most is hiányzik... Egyből írni akartam a chipet, de nem ment, így váltottam a "szimpla" chipben lévő státusz regiszter olvasásába és némi módosításába (írás engedélyesés és tiltás). Hogy megtudjam, mit is érek el, a kiolvasott adatokat egy 74HC595-es shift registerrel és ledekkel iratom ki. Mellékeltem a kódokat. Mint általában most is biztos sok hiányossága van. Az egész kódból csak a ROMRDSR() (eeprom.h-ban), SPIWR() (SPI.h-ban), SPI_Init() (SPI.h-ban) macrokat (ha jól tudom ezeket hívják macronak) használom. 2 hibaforrásra gondoltam: 1. hogy a biteket fordítva töltöm fel, MSB - LSB felcserélése 2. az adatok írásánál a ROM az SCK felfutó élére shifter, az olvasásnál meg a lefutó élre (ha jól értettem az adatlapot) Ha nem ezek közül az egyik, vagy mind2, a hiba akkor mi lehet? AVR: ATMega8535 belső oszcillátor @ 8Mhz, 4-4,5V SB
Igen, az oldal utasítását követtem, hogy állítsam be a RESET lábat, persze azt már nem írta, hogy utána már csak HVSP-vel lehet gyilkolászni...
Windows alól próbálom, mivel úgy gondolom, ha működik, akkor itt is mennie kellene. A windows viszont azt mondja, hogy leállította az eszközt mert az hibát jelzett. Illetve a másik kedvence, hogy amikor rádugom, akkor mondja, hogy az eszközt nem lehetett felismerni (lásd a mellékletekben). Viszont felcsillant az a remény, hogy egy kedves barátomnak van egy barátja, aki Atmelekkel foglalkozik, s ő valószínűleg tud majd segíteni egy HVSP programozóval Na meg úgy legalább meg tudjuk majd nézni, hogy valóban azt töltöttem-e bele, meg úgy állítottam-e be, ahogy kell. Azt már csak halkan merem megjegyezni, hogy nem gondoltam volna, hogy ekkora szívás lesz vele. Én ha valamit kiadok a kezemből, hogy más is utánam tudja csinálni, akkor azért az ilyen "apróságokat", minthogy ha letiltod a RESET lábat utána nem tudod úgy programozni, ahogy eddig, azért ki szoktam írni. De sebaj, ahogy a PIC12F629-nél is belefutottam az OSCCAL kitörlésének és helyreállításának élményébe, úgy az Atmel világ egyik alapsz*ba is sikerült beleszaladni Hát ezt is megjegyzem egy életre... A hozzászólás módosítva: Jan 13, 2013
bbb, "az eszközt nem lehet felismerni:" A Windows akkor eszközt LÁT a túloldalon.
Ha egy ellenállást ráraksz az USB portra, nem fogja kiírni, hogy nem lehet felismerni az eszközt...
Sziasztok.
Lehet én vagyok a nagyon béna de nem kapcsol be a led ha a PIND1 es lábon jelet kap. vagy én értelmeztem rosszul? Elképzelés: PIND - PD lábon kap 1 jelet ekkor az AVR jelet ad a PB-PORTB4 es lábon de nem jön össze.
A while után a ; le is zárja a ciklust. Így a következő sor csak egy sima saját függvény meghívás.
A hozzászólás módosítva: Jan 13, 2013
nemértem miert nem megy. pedig mennie kene
Többek között az is baj amit tecsa írt, de programodnak is vége lesz hirtelen (1 lefutás után), ez nem egy célszerű dolog.
Próbáld így ! Az is megérne egy misét, hogy miért C4-nek hívod a makrót, amikor nem a C portra hat, bár ettől működni kellene, csak nehezen lesz érthető a kód.
A hozzászólás módosítva: Jan 13, 2013
Igen, csakhogy ilyenkor van az, hogy az eszköz nem jól működik, valami gebasz van a "fejében". Ha az "Ismeretlen eszköz" néven illeti, akkor meg már hiába is adnék neki megfelelő drivert, nem ismeri fel, hogy az jó lenne hozzá.
Rossz órajelről müködik a processzorod, mivel program feltöltés előtt nem állítottad be a megfelelő oszcillátort a fuse biteknél. Mivel a reset lábadat elvesztetted, nem tudod mostmár programozni. Marad a fuse doctor vagy a másik mikrovezérlő.
Amit kaptam kódot semmit se csinál. rákötöm a PD1 re azt a VCC re kötöm semmi,GND semmi.
A C4 az elözö projectem ahol egy Led villogot es gondoltam itt is működni fog csak anyival hogy akkor kapcsol be mikor kap egy jelet az egyik oldalt. USBASP ém van égetésnél ezt kapom mindig: Error Setting USBASP ISP Clock. ettöl független ráégeti de zavar. Mitöl lehet? A hozzászólás módosítva: Jan 13, 2013
Hogyaza...
Kicsit felbosszantott, hogy elvileg minden jól van benne, mégis hibás... Megnéztem megint az eredeti kapcsolási rajzot, meg az enyémet is. Most nekilátok kijavítani a különbséget a kettő között. Ugyanis az én rajzomon a D+ van felhúzva VCC-re, az eredetin meg a D- !!! Nem nagy dolog kijavítani, ha megtörtént, akkor beszámolok a végeredményről.
Felcseréltem a LED be és KI parancsot hogy lássam hol a hiba.Valamiért a bemenetet nem érzékeli hogy a PD1 en bármi is történne.
Se GND se VCC agra nem reagal. Attiny2313 AVR hasznalok van egy Attiny45 ösöm is.
Ha felcserélted és akkor sem megy, akkor ott valami más lehet a baj, hiszen az if mindkét ágát kipróbálva menni kellene legalább az egyik esetben.
Idézet: „USBASP ém van égetésnél ezt kapom mindig: Error Setting USBASP ISP Clock. ettöl független ráégeti de zavar. Mitöl lehet?” Biztos vagy benne, hogy rátölti? Szerintem túl nagy az ISP frekvencia, állítsd lejjebb.
igen rátölti máskép nem menne lehet egy noob kérdés de Programozoban allitsam lejjeb igaz? marmint amivel rá égetem?.
kiprobaltam a PD5 ös lábbal de semmi....
Esetleg feltehetnéd a fordított asm file-t.
Köszönöm ez volt a jo megfejtés.
asm?? Atmel Studiot hasznalok és GCC C project kent irom a programot nem Asemben.
Örülök! Nem Ismerem az Atmel Studiot (nem használok Atmel procikat). A C fordító által generált assembly file-ra gondoltam, de szerencsére már tárgytalan!
|
Bejelentkezés
Hirdetés |