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 |