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
Sziasztok!
Elkezdtem ügyködni egy bináris órán atmega8-al. A program kész is, megy az egész, csak a multiplexerbe tört ki a bicskám 10db led-t használok a kijelzésre, 4 az órákat a többi 6 a perceket mutatja. A két sor közt NPN tranzisztorokkal váltok(BC 182) úgy, hogy a kollektoraikba mennek a sorok negítatív lábai, és a PORTBre kötve a bázisaik, és így kapcsolgatom őket. Így néz ki a kód:
A perceket nagyon szépen kijelzi, viszont az órákat, az első sort ami a PB1, azt nem akarja, csak felvillannak. :no: Tudnátok segíteni, hogy lehetne ,hogy egyszerre szépen látszódjon a két érték? Válaszotokat előre köszönöm! Horv
Az a problema, hogy a kiiras utan aktiv marad a legutolso meghajtas, es mivel a kiiras utan 950ms-t varsz, ezert ez fog dominalni. A kiiras fuggveny vegere rakjal egy PORTB=0 sort. Ha ez megvan akkor viszont mind a ketto ugyan olyan halvany lesz, mint eddig az orak. Ezt ugy tudod kompenzalni, hogy a 950ms varakozast csokkented es a kiiras fuggvenyen belul pedig a ket 5ms-ot egyforman noveled ugy, hogy ezeknek az osszege ugyan ugy 960 maradjon vegeredmenyben.
Szia! Köszi megpróbálom!
az 5ms-t használhatok egy változót? pl nov és 950msnek meg csoK? Valahogy így kelljen kinézzen:
? Horv
Nem igy gondoltam, ezek legyenek konstansok. A fenyerot az fogja meghatarozni, hogy a kiirason kivuli kesleltetes es a kiiras fuggvenyen beluli kesleltetes aranya mekkora. Pl most azert csak egy pillanatra felvillanonak - azaz nagyon halvanynak - latod az orakat mert ez az arany ott 5/(960+5). Szerintem kezdetnek vedd le a 960-at mondjuk 0-ra. es a ket 5-5 ms varakozast 500-500-ra.
Kezdem érteni
Ha 500-500re felveszem ,akkor olyasmit kapok mint a két ledes villogó Hol az egyik-másik sor váltogatja magát.
Pontosan. Ha viszont megcsinalod, hogy a ket kiiras felvaltva sokszor ismetlodjon, akkor egyre jobban fog interpolalni a szemed es atlagfenyerot latni a villogas helyett. Tehat ha most pl az 500-at leveszed 10-re, es 50szer berakod egymas utan a kiirast(vagy sokkal szebb, ha egy ciklusba rakod, ami 50szer meghivja), akkor nem villogast fogsz latni, hanem 50%-os folyamatos fenyerot.
áhá! Értem már! Köszi! Most Egyszerre kijelzi a két értéket A percek jók, viszont az órákat is másodpercenként számlája :/ De ha várakozok, akkor megint nem lesz jó... Szóval ezért kellenek az arányok?
Masold be ide, hogy mit alkottal, elvileg jol kene most szamolnia.
Így van most, minden másodpercbe növeli az i-t meg az a-t is. Majdnem egyszerre jelzi ki. Az órákat(i) lekapcsolja amikor az a-t írja ki
A kiiro fuggvenyt ird at ilyenre:
Amugy perceknek es az oraknak aranyosan kene most lepkedniuk es nem egyszerre.
PORTB=0 minden lépésnél lekapcsolja, így nem lesz folyamatos, bocsánat,hogy mindig gondom van vele
Igen, azert van ott, hogy minden fuggvenyhivasnal 10 ms-ig legyen bekapcsolva. Igy, ha 50x hivod meg egy masodpercben akkor mind a ket szam 500ms-ig vilagit egy masodpercben.
Alapbol nem, de ha atallitod a fuse biteknek kvarcra, akkor onnantol kelleni fog.
Eredetileg egy programozó panelt készítek, amibe csak beteszem és felprogramozás után ki is veszem
De ha hozzá tervezem nem lesz problémája vele, hogy van külső kvarc és a belső az AVR-BEN?
Nem, azt a kvarcot hasznalja, amit megadsz neki. Viszont onnantol programozashoz is azt hasznalja.
Sőt, ha külső kvarcra akarjuk állítani, akkor már ez előtt rá kell kötni a kvarcot a kondikkal, különben "kizárjuk" magunkat a prociból, és csak külső órajellel tudjuk átprogramozni a megfelelő órajelre. De gondolom ezt már tudod, csak Te voltál az utolsó, így a tiedre írtam.
Hat celszerubb, de utolag is lehet, csak a visszaolvasas nem fog menni
Külső kvarcra beállítani be lehet kvarc nélkül is. Csak utána nem fog menni már kvarc nélkül.
Csak a visszaolvasás?! Ha elsőnek belső RC-ről megy a proci, majd kvarc nélkül állítom külső kvarcra, akkor jön a szokásos hibaüzenet... De ha ezután teszek rá kvarcot, akkor sem lesz utána programozható, mindig kell külső órajelet rákötnöm. Olyan, mintha az AVR nem tudná berezgetni a kvarcot.
Nekem eddig nem volt ilyen gondom, mindig eleg volt csak a kvarcot rakotni utolag (ilyen esetben). Raadasul amit mondasz annak erosen ellentmond az adatlap ezen resze is:
"The fuse values are latched when the device enters programming mode and changes of the fuse values will have no effect until the part leaves Programming mode. This does not apply to the EESAVE Fuse which will take effect once it is programmed. The fuses are also latched on Power-up in Normal mode."
Érdekes... De majd kipróbálom a tuti kedvéért, ha a kezem alá kerül a próbapanel, most nem ezzel foglalkozom. De a másik amit nem értek akkor: Ha most igaz lenne, amit az adatlapból kimásoltál, akkor miért történik sokakkal az, hogy külső kvarcra állítás után (gondolom ezek szerint kvarc nélkül) kizárják magukat a prociból, és csak külső órajel hatására tudják újraprogramozni az AVR-t? Ahogy megfigyeltem, Te inkább 32 bites procikon dolgozol. Amit bemásoltál idézetet, az 32, vagy 8 bites proci adatlapjából származik?
8272A–AVR–01/10
164A/164PA/324A/324PA/644A/644PA/1284/1284P De mega128x/256x szeriaval is sokat foglalkozok(mega128-al tobb mint 8 eve), es azoknal is ugyan ez van.
Sziasztok!
Az lenne a kérdésem, hogy az Attyni13A-SU és az Attyni13-20SSU teljesen egyforma, ha nem akkor miben tér el egymástól? Kösztök!
Lenyegeben ugyan az maradt, viszont csokkent a fogyasztas, a megengedett tapfeszultseg(alacsonyabb orajelrol mar 1.8V-rol is megy), errata nem valtozott es egy masik fab-ban gyartjak. (ATtiny13A a fiatalabb tipus, ATtiny13 kifuto lesz nemsokara). Ezen felul az SSU vegu 150 mil szeles tokban van, az SU vegu 209 mil szeles tokban van.
Sziasztok.
Asambly -nyelvezetett probálok tanulni . A kérdésem az lenne hogy "OUT DDRA+0, R27" instrukcioba a DDRA után a "+0" mit csinál ?
Az a DDRA cimehez hozzaad nullat(forditasi idoben), es erre a cimre hajtja vegre az utasitast.
Szia!
Megépítettem ezt a programozót. Milyen szoftver kell ehhez, hogy tudjam használni?
WinAVR, ponyprog, bascom,.. barmilyen, ami az stk200-at kezeli.
|
Bejelentkezés
Hirdetés |