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 Idézet: „Hát, sokunknak új volt ez az stdbool.h-s valami.” Nekem is uj volt, de nem jelentettem volna ki, hogy nincs boolean tipus. Arra emlekeztem, hogy van valmi boolean, de a reszleteket nem tudtam, mert sosem volt ra szuksegem. Amikor 1992-ben C forditot irtam HD64180-as gepre, akkor meg nem letezett ez a tipus ![]() Idézet: „Leellenőriztem és ha uint8_t használsz bool helyett, akkor is ugyanazt kapod fordítási eredménynek, tehát lehet használni. Jobban olvasható lesz tőle a kód, de semmi pluszt nem rak hozzá” Nem mindig ugyanazt forditja belole. A _Bool tipus, ahogy a neve is mondja, ketallapotu. Egy _Bool valtozo erteke csak 0 vagy 1 lehet. Pl. egy _Bool valtozoba barmit toltesz, ami nullatol kulonbozo, akkor 1 lesz a valtozo erteke. Nezd meg, hogy ebbol mit fordit: _Bool bb; bb = 10; De eppen errol beszelek, hogy nem ez a modja a nyelv megtanulasanak, hogy hallasz valamit, akkor csinalsz egy gyors tesztet, es ezek alapjan kijelenetesz valamit. Azert irjak ezeket le, hogy ne kelljen tesztelgetni, probalgatni, aminek a vegen gyakran (mint most is) hamis eredmenyt kapsz.
Jo nagy butasagokat beszeltem. Szepen megvan az 5V a kondin (10mV szinusz van rajta), mikozben a terheleoaram a szimulaciomban 10 es 14mA kozott ugral 1MHz-cel, a betap oldalon meg szep egyenes az aram. Viszont az aggaszto, hogy bekapcsolas utan 16kHz-cen beleng az egesz. 0-10V kozott hintazik az elejen, es 5 ms alatt megnyugszik, mindezt egy 500 Ohm terheles mellett. Mondjuk ez a belenges nincs, ha eleve lassan all be az 5V az LC tag elott.
Jol beleelted magad. Gondolom az 500 ohm-ot u/i-bol (5v/10mA) vetted Lehet hogy a pillanatnyi aramfelvetel ennel nagyobb ?. Nehany 10..100µF meg hozzaadva szinte biztosan nem rezonal 16kHz-en.
Ugy szimulaltam, hogy a bekapcsolastol szamitott elso 5ms-ban 500 Ohm a terheles, utana meg 10mA/14mA valtakozik 1 MHz-cel kapcsolva. (En irtam a szimulacios programot.)
Ha 100mA es 10mA kozott ugral az aram, akkor mar 450mV szinusz lesz a tapon, az mondjuk eleg sok. De ennyi idore nem folyik 100mA. Ha csak kicsi (50ns) 100mA tuskek vannak, akkor csak +/-70mV a mozgas a tapon.
Elnézéset, hogy megint írok, teljesen mindent deklaráltam lcd.h, lcd.c és csak hibát ír ki.
Idegességből csináltam egy új projectet, és ami a site-on van azt irtam bele, és include-oltam a "lcd.c"-t Bővebben: Link A következő a hiba mind a 2 programnál amelyik ezt a lcd.c-t használta: (lcd.c-ben van a hiba) error: 'PORTA' undeclared (first use in this function) lcd.c:120: error: (Each undeclared identifier is reported only once lcd.c:120: error: for each function it appears in.) Azt nem értem, hogyha valaki ír valamilyen projektről a neten akkor miért nem tudja helyesen a kódot is megadni...... A hozzászólás módosítva: Szept 25, 2013
Letöltöttem egy másik lcd.h javított fájlt, most csak egy warining van: warning: large integer implicitly truncated to unsigned type
és egy 16ms os delay függvény miatt irja ki, lebontottam két 8 ms os delayra és nincs warining ![]() A hozzászólás módosítva: Szept 25, 2013
Rákeresel itt a fórumon: WinAVR telepítése és használata
És az útmutatás szerint telepíted. Open Project: Software\MyLCD.pnproj És az eredeti forráskódod elsőre hibátlanul lefordul!
Sziasztok,
Attiny25-t használok egy servo vezérlésre. A 3-as lábon (PB4) megy ki a OC1B vezérlő jel. Ugyanakkor a 2-es lábat (PB3) más kimenetre használnám DE azon megjelenik a OC1B negáltja. HOgy lehet ezt feloldani, hogy lehet függetleníteni a PB3-t a PB4-től? Gacserus
Kód?
Tipp: - PB3 kimenetre állít (I/O) - hibás a kódod A hozzászólás módosítva: Szept 26, 2013
Hello!
Ahogy en nezem az adatlapban, a GTCCR regiszter ket bitje hatarozza meg: COM1B1=1, COM1B0=1/0 Ebben az esetben az OC1B negaltat nem hajtja meg, csak az OC1B-t. Nezd meg az adatlapon, mert a COM1B0 bittol fuggoen negalja vagy nem az OC1B kimenetet.
Üdv ki olvassa soraim!
A problémám: Addig piszkáltam egy ATmega324P WDT-jét, míg odáig jutottam vele, hogy a RESET láb nem funkcionál. (Szóval nem sikerült belőnöm a WDT-t) Tehát nem tudom újra programozni. (Nem kontaktus hiba) Van ilyen? Van rá megoldás? Köszönöm.
Bocsánat, kontaktus hiba volt. Gáz...
Sziasztok,
Van egy kitshop.eu-s atmega128-as beépített JTAG-es panelem. Jó ideje nem használtam, viszont mikor legutóbb használtam még működött. AVR Studio 4.17-est használok, és használtam anno is. A mellékelt képen látszik, hogy mikor debugolni akarom, akkor STK500-ként ismeri fel, és memória olvasási hibákat ír ki. Próbáltam F11-gyel léptetni, de nem ugyan abban a helyben áll a debugger. Tudom, a fuse bitek idézhetnének elő ilyen hibát, de egyáltalán nem nyúltam hozzájuk. Próbáltam a programot egy T-Bird-ön is, ott viszont ugyan ez a program a lépésenkénti futtatásban úgy jelent meg, hogy csak a while(1) ciklusban lehet break point-ot elhelyezni. Tudnátok segíteni, hogy mi lehet a baj?!?!
Sziasztok! Használja valaki EZT a programozót 64 bites rendszerben?
A hozzászólás módosítva: Szept 28, 2013
Csak azért kérdem, mert képtelen vagyok drivert találni hozzá, ami működik az Atmel Studióval
Ki kell kapcsolni a driver aláírás ellenőrzést.
A hozzászólás módosítva: Szept 28, 2013
Köszi, így működik. Viszont ezt minden windows indításkor el kell játszani, ha használni akarom a programozót.
Sajnos igen...
Neten találtam egy leírást amivel végleg ki lehetne kapcsolni, de azzal nem működött. Ha találsz rá megoldást írd már meg légyszíves.
Sziasztok!
WINAVR-el csinálom a programomat és egy változót akarok késeltetési időnek, de a "_delay_ms(valtozo)" nem működik! Hogy lehet ezt működésre bírni?
Kicsit részleteznéd a "nem működik" részét?
Egyik bemeneten figyelek 2 jelet.
A két jel közötti időt mérem és eltárolom egy változóba. Ez eddig működik! De amikor a két jel közötti időt akarnám késleltetési időnek beállítani, akkor a következő hibába futok: _delay_ms(time);
Sikerült!
Kutakodtam egy kicsit és kiderült hogy csak számot lehet megadni! De egy függvénnyel megoldódott!
Azért kösz! Üdv Sanyi!
Mindegy, hogy szamot vagy valtozot irsz, annak ugyanugy mukodnie kell. A hiba az, hogy nincs "time" nevu valtozod. Ezt irja ki a fordito is:
"time" nincs deklaralva. A nem deklaralt azonositokert csak egyszer szol minden fuggvenyben...
Sziasztok kb 1 órája sikerült az az ATtiny13A avremet elállítani a beső oscilátort 128khz re levettem hogy megnézzem úgy menyire lassú. Azóta a programom szépen fut de nem tudom sehogy sem átprogramozni. Levettem az ISP órajelét 1.21khzre de így se működik. hogyan bírnám visszaállítani az órajelet?
Gondolom a CKDIV8 is be volt kapcsolva. Nem reménytelen, programozótól függ! Doper és tuxgraphics-os STK500 nem viszi, mk2 (klón is) és STK500 (ill. javított tuxgraphics-os) már igen.
Köszi a segítséget. A CKDIV8 nem volt bepipálva viszont akkor a topi féle Doperemmel nem fog működni vagy esetleg nincs hozzá valami ujj FW ami már tudja azt is ?
A Doper alapból kb. 23kHz-es ISP frekit alkalmaz(megmértem!), de sajnos ez csak egy átlag.
Amikor programoz, kb. 50-60kHz, ezért nem viszi a 128-asat. Elvileg van egy "SLOW_SCK" jumper is rajta, az leviszi pár kHz-re a frekit.
Egyszer ugyanígy jártam, már majdnem kész volt a projektem, erre véletlenül rálököm az alacsony órajelre a fuse biteket, Topi féle HEstore-os STK500-as programozóm volt, esélytelen erre a feladatra. Viszont volt másik próbapanelre feltűzött AVR-em, odalapoztam az adatlapban a programozás részhez, és arra gyorsan egy fuse bit programozót megírtam SPI-re, épp hogy csak annyit, törölje a Fuse beállítást, állítsa az eredetire. Sok macerától mentett meg.
![]()
Van egy mega32 meg egy mega48-asom tesztpanelon de spi-t még sose programoztam csak uartot esetleg megvan még a forrásód? Tanulmányozom az spi használata avr-el de nem szeretném teljesen tönkrevágni az avr-t.
|
Bejelentkezés
Hirdetés |