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
Hello!
Nem ismerem a win-avr-t, de az előttem szóló tanácsához még annyit tennék hozzá: - milyen avr-t akarsz programozni, mert a winavr atmega88-at ir, és 8MHz-es frekit, a programban viszont csak 1MHz van irva (vagy a kódban lévőt veszi figyelembe?) - ezzel a sorral minden stimmel? Idézet: „
Sziasztok!
ATmega16 -ban A Timer1 modult hogyan tudom menet közben be és kikapcsolni??? ilyesmivel próbálkoztam:
be bekapcsol ki is kikapcsol de másodjára nem müködik 36khz jelet szeretnék előállítani OCR1A lábon és kapcsolgatni szeretném.
Elég fáradt voltam az este .
Igen az általam használt AVR "ATMEGA88-20PU" A kiemelt sor, a valóságban így néz ki:
A programban jó volt, csak ide került valahogy rosszul Hogy pontosan milyen frekvenciát használok azt nem is tudom, az biztos hogy a belső RC tagot. Valahol olvastam hogy az 1MHz-s a belső RC de nem biztos. A kódban azért szerepel ez a sor:
mert "FZIKUS" kódja alapján próbálkozom, ott láttam ezt a sort, és próbaképpen bemásoltam, de semmi hatása, próbáltam e sor nélkül is, de sehogy nem fordul a kód, sehogy nem látja a GIFR és GICR regisztereket. Nem értem mi lehet a baja
Kikapcsolni úgy tudod, hogy minden bitet ahová egyest tettél 0-át teszel.
Sőt szerintem elég ha csak a COM1A0 -ba írsz 0-át. Olvasd el FIZIKUS "WIL-I" cikksorozatának első részét, inkább a PWM ről beszél, de elmagyarázza a regiszterek TIMER lényegét is.
Bővebben: Link
Ennek utána néztél már?
Adatlap 113-ik oldal...
Idézet: „ CS12 CS11 CS10 Description 0 0 0 No clock source (Timer/Counter stopped). ” Vagyis elég ezt a három bitet nullázni. szerk.: Azt elfelejtettem írni, hogy ez a TCCR1B regiszterben található. Így teljes.
Váó biztos ez lesz a baj, sajnos most nem vagyok az AVR égetőm közelébe ahogy hazaérek ki is próbálom.
EZER KÖSZÖNET novarobot
Nincs mit! De azért figyelj arra, mit írnak neked segítségül!
Na most leírtam, amit valószínűleg te is tudsz...
Sajnos a C-hez nem értek, de ha adott bitet 1-gyel VAGY-olok, egy lesz, de ha ugyanazt a bitet 1-gyel ÉS-elem, akkor az nem marad egy?! A kódod első két sorára gondolok. :hide: Én nem használom ezt a formát asm-ben, így nem tudom, bocsánat, ha nagy hülyeséget hoztam fel. Idézet: „Valahol olvastam hogy az 1MHz-s a belső RC de nem biztos.” 8Mhz a belső osszcillátora. Ezért:
Itt egy példaprogram atmega88 IT-re.
Hogyan lehet c-ben megoldani, hogy ha az atmega8-on van 3db nyomógomb, ami 3 különböző dolgot kapcsol, azt 1db gombbal helyettesíteni lehessen, pl hőfok kijelzés esetén 3 hőfok kiírattatását ne három gomb végezze, hanem egy gombbal lehessen léptetni.
Hali!
Mivel anno ez nyílt anyagként volt fent a neten, így gondolom nem gond, ha felrakom most, miután nem elérhető már az eredeti helyen.
Szerintem nem. Olyannyira nem, hogy a kapcsrajzot épp a napokban kerestem, úgyhogy köszönet érte
Amúgy ez a doksi fent van a kando.tk-n is. Kár, hogy hamarabb nem jutott eszembe.
Köszi a segítséget, Kandó-s vagy? vagy csak ismerted a wiki oldalukat?
Én a Kandó-ra járok, de programozásom csak a jövő félévben lesz, és nem ismertem még azt az oldalt. Most Szeretném pont az AVR-t a soros portra kötni, ezért nagyon jól jött a mintakód amit belinkeltél.
Ezt a részt kellene egy gombá gyúrni
Ha az adatlapon nem talaltal GICR ill GIFR regisztert akkor azert nem talalja a fordito sem mert nincs. Meg kene keresned az adatlapon a megfelelo regisztereket es azt kell hasznalni. Egyebbkent melyik ic-t hasznalod? Mert atmega20 nincsen.
A probléma megoldódott, ATMEGA88-20PU AVR-t használtam, és más volt a regiszterek neve.
Egy ATmega8-16PU processzort szeretnék prógramozni a Topi féle AVR programozóval, de sehogyan sem jön össze.
ISP-vel való programozásnál nem tud belépni a programozói módba és az ISP frekvencia értékétől függetlenül mindig olyan hibaüzenetet küld, hogy ellenőrizzem az ISP frekvenxiát. Parallel/High voltage programozásnál pedig nem ír ki hibát a programozás közben, hanem az ellenörzésnél mondja azt, hogy nem egyezik meg a beírt program. (Nem az a baj, hogy a beírt program rövidebb mint a kiolvasott, hanem a kettőnek semmi köze egymáshoz.) Mit csinálok rosszul?
En gombnyomaskor egy valtozo erteket novelnem es ezt vizsgalva irnam ki a kulonbozo ertekeket. Valami ilyesmit tennek egy vegtelen ciklusba, vagy kulso megszakitast hasznalva az ISR-be (a gombot pergesmentesiteni kell!):
En annyit valtoztatnek, hogy visszafele lepkednek, igy a fordito optimalisabb kodot tud generalni a mikrovezerlod szamara. Valahogy igy:
Hello! Mivel még nem jött meg a programozóm, ezért csak az AVRStudio-t próbálom belőni. Az első bajom az, hogy ha kimásolom és beillesztem a kódot erről a weblapról, akkor nem hajlandó lefordítani, de ha a megjegyzéseket és a sorszámokat törlöm, akkor minden OK, de citromsárga körrökkel (2db) ezt kapom: " c:/winavr-20100110/lib/gcc/../../avr/include/util/delay.h:85:3: warning: #warning "F_CPU not defined for
Ez volt a hiba. Nagyon köszönöm a segítséget :yes: :yes: :yes: . (Elnézést hogy csak most tudtam reagálni)
Ha nincs beállítva a belső, akkor igen külsőt kötöttem rá. Maga a programnak az a lényege, mert először ellenőrizni akartam a helyes működést. Értelemszerűen van még header fájl, meg main meg ilyenek, hogy szintaktikailag helyes legyen.
Jó magam kandós műszeres, és F1-en vagyok.
Előre is elnézest kérek ha már valaki válaszolt a kérdésemre, de eddig nem találtam...
BASCOM-AVR-t használok, de nem ismeri a GICR regisztert. Emiatt nem tudom compilálni a programomat. A BASCOM verzió 1.11.9.0 . Segítséget kérek ! Előre is köszönöm ! Idézet: „c:/winavr-20100110/lib/gcc/../../avr/include/util/delay.h:85:3: warning: #warning "F_CPU not defined for "” Ez csak annyi, hogy define-ban nem írtad oda a header fájlok alá a frekit. Pl:
1ms-nél kisebb pl.:
Errornál van baj, warningnál működhet. Idézet: „nem írtad oda a header fájlok alá a frekit.” Fölét akartál írni ugye?
Melyik kérdésről is van szó pontosan? (nem találom)
Hogyan lehet ezt összehozni?
Mindig hibát ír ki a codevison:"Error: C:\cvavr2\Project\main.c(197): missing ';'"
Szia!
Így:
vagy így:
|
Bejelentkezés
Hirdetés |