Fórum témák
» Több friss téma |
Bocs a rossz beillesztésért. Mindjárt be is égetem az általad javasoltat.
Egy kérdés: hogyan lehetne állitani a ki-be kapcsolási időt emberi mértékkel (másodperc) ?
Az általam javasol kódban legegyszerűbben úgy, hogy többszörözzük a call DelayLoop sort. Ugyebár egy sor majdnem 0,2 másodperc, ha ötször egymás alá beszúrjuk akkor kb 1 másodpercet kapunk. Persze van erre más megoldás is, de az bonyolultabb.
Bemásoltam, Build Failed hibával leáll.
Bocsánat! Figyelmetlen voltam. Két helyen maradt benne hiba.
A hiba:
Helyesen:
Ez kétszer szerepel a kódban, mindkét helyen át kell írni!
Elöször: Kössz a türelmedet.
Most már csak az a baja, hogy Build-nél leáll: The project contains no source files. Ezt mivel csináljam neki?
Én úgy szoktam, hogy egy szövegszerkesztővel (Notepad++) létrehozok egy egyszerű nevű asm-et, pl ezt most 16f690_blink.asm néven mentettem el. Az MPlab nem nagyon szereti ha túl mélyen van a fájl, célszerű pl így: C:\PIC\16f690_blink.asm
Aztán projekt wizard-dal létrehozom a projektet és amikor kéri belinkelem neki a fájlt. Idézet: „Persze van erre más megoldás is, de az bonyolultabb.” Lehetne esetleg erről beszélni (mert 3 perc az nagyon sok sor) vagy inkább elégedjek meg mára ennyivel és valamikor folytatnánk? Persze az eddigi segítséget is köszönöm.
Esetleg ezt lehetne megpróbálni szép sorjában:
1. a CBLOCK-ba egy Delay0 -át beírni 2. a DelayLoop rutint átírni így:
Ez így már egyszeri meghívásra kb 50 másodperc kéne, hogy legyen. Nem tudom mennyire kell pontosan a 3 perc. Ha pontosan kell akkor más megoldást kell alkalmazni. A hozzászólás módosítva: Júl 30, 2015
Gondolom, valami ciklusba kellene tenni a DelayLoop-ot.
pl: itt movlw 0xFF delayloop declw goto itt
Annyira nem kell pontosan a 3 perc csak kb. A 3-4 mp. viszont fontos.
Amit az elöbb írtam a ciklusra, az csak egy elképzelés, nem komoly. A hozzászólás módosítva: Júl 30, 2015
Na meg hibás is. így gondoltam:
movlw 0xFF itt delayloop declw goto itt
De szerintem egyelőre ennyi elég, nem rabolom az időd tovább. Majd legközelebb folytatom, addig olvasgatok a témáról.
KÓDGOMB!!!
De egyébként meg teljesen rossz. Egy alternatíva:
Amennyi értékkel feltöltjük a szamlalo1 és 2 regisztereket annyiszor fogja meghívni a késleltető rutint.
Én ezt szoktam használni. Beütsz 180 másodpercet és adja a rutint. Persze igazából timer vagy CCP a megoldás és megszakítás.
Az első körben. Másodszor mindkettő 0-ról indul.
Ez a PIR1,SSPIF nem akar működni sehogy sem. Átírtam a egészet így:
Szerintetek?
Akkor így:
A hozzászólás módosítva: Júl 31, 2015
Ez jónak ígérkezik, délután kipróbálom.
Egy kérdés: a goto $-2 konkrétan hova ugrik, mert kipróbáltam egy másik variációt és úgy néz ki, hogy valamit rosszul számolok ki és végtelen ciklusba fut.
Az utasítástól kettőt vissza. Tehát itt a call DelayLoop sorra. De ezzel csak óvatosan, mert könnyű elrontani, jobb a címkék használata csak ahhoz meg lusta vagyok.
A hozzászólás módosítva: Júl 31, 2015
Köszi, lassan azt hiszem, kezdem érteni.
Még egy kérdés: a PicKit2-vel MpLab alatt tényleg nem lehet realtime debugot használni, vagy csak én nem tudom beállítani?
Ha jól emlékszem az adatküldésnél nem kell a BF bitet és az ACKSTAT bitet vizsgálni elég ha az R/W bitet figyeled. Elnézést ha rosszul emlékszem
Nem minden PIC-nél lehet. De csak a a debug-nál kell a PICKIT2-öt beállítani. Utána mennie kell ha a PIC tudja. De egy ilyen programnál a szimulátor is tökéletesen használható.
Köszi szépen a segítséget. Én is hasonlóra gondolok, de úgy voltam vele inkább megkérdem.
Értem.
Amúgy ha én a külső 20Mhz kristály frekvenciáját szeretném használni a 48Mhz helyett az időzítésnél , azt be tudom állítani ? Arra gondoltam hogy a FOSC átállítom 20Mhz re , bár nem tudom hogy ez nagyon nagy baromság-e . Tudtok segíteni ?
Nem értem pontosan mit szeretnél. Az FOSC-t nem lehet állítani max a PLL-t ki vagy bekapcsolni. Ha 20 MHz-et akarsz akkor teszel egy ilyen kavicsot a picre, beállítod HS-t és kész.
Azt írtad, hogy 1us megszakítást akarsz csinálni és így villogtatod a ledet, de túl lassú. Hát ha egyáltalán látod, hogy villog akkor biztos nem jó, mert az 1us-t biztos nem látod. Mert az ugyebár egymillió felvillanás másodpercenként. Szóval mi is a cél? Ha jól számolom a Timer0 2,5-öt lép minimum 1us alatt, innen kell elindulni. A hozzászólás módosítva: Júl 31, 2015
A cél szoftveres pwm jel előállítása timerel, léptetőmotorok vezérléséhez. (azért kell szoftveres mert 4db motort kell vezéreljek)
|
Bejelentkezés
Hirdetés |