Fórum témák
» Több friss téma |
Miért akarod használni a WDT-t? Ha kikapcsolod a WDT-t akkor menni fog a program.
Szerk.: Bővebben: Link
Akkor most on vagy off!
Nekem csak ez van: #include __CONFIG_CONFIG1H, B'00100011'; 010 = HS oscillator, PLL Diabled. 12MHz-ES KRISTÁLY ; Oscillator system clock switch option is disabled (main oscillator is source) __CONFIG_CONFIG2L, B'00000110'; Brown-out Reset disabled, PWRT enabled __CONFIG_CONFIG2H, B'00110110'; WDT on, OSZTÁS 8000 , 30mp __CONFIG_CONFIG3H, B'10000000' ;
Hogyha használni akarod a WDT-t akkor 'on', ha nem akkor pedig 'off'.
Köszi!
És abban tudsz segiteni miért nem villogja végig a 100 és a 150mp-t? Azt csinálja hogy az elején villog kettöt, aztán meg tovább egymás után a 2 timer. Mintha a 2 ledvillogást hivnám meg elsönek.
Sziasztok!
Egy szoftveres problémám lenne: MPLAB C18-ban szeretném használni a C-ből ismert >> bitenkénti forgató operátort egy unsigned char változón. Tehát így: unsigned char mask = 126; mask >> 1; És ha követem a szoftveres debuggerben (MPLAB SIM), akkor azt tapasztalom hogy a változó értéke változatlan marad a forgatás ellenére, semmi hatása sincs a parancsnak. Van valakinek valami ötlete hogy ez mitől lehet? Vagy hogyan kell máshogy megoldani ezt a műveletet? Üdv, Marci
Szerintem próbáld inkább úgy, hogy:
mask >>= 1; vagy mask = mask >> 1; mert ahogy te írtad, úgy is elvégzi a léptetést viszont nem adtad meg, hogy utána hova mentse, így legfeljebb a munka regiszterben marad
Az a baj, hogy a programrészletből az sem látszik, hogy hol indul (te nyilván tudod), az sem derül ki, hogy mit is akarsz valójában (másodperces nagyságrendő időközönként le- vagy felkapcsolni a LED-et? Ez nem kifejezetten fedi a villogtatás fogalmát).
Azt sem értem, hogy ha CALL-lal hívod meg a LEDVILLOGO eljárást (ha ez eljárás akar lenni), akkor annak miéert nincs RETURN a végén? Hogy fog az visszatérni?
Teljesen igazad van, kipróbáltam, működik, zseniális vagy! Tényleg örülök neki, mert nagyon bosszantott a dolog. (Bár eszembe jutott hogy kettővel való szorzással ill. osztással tudom orvosolni a bajt, de így elegánsabb) Köszönöm a segítséget!
Sziasztok!
Én egy fűtésautomatizálás projekten dolgozok. A részletekbe nem mennék bele, mert a kérdésem szempontjából nem lényeges. Megcsináltam egy (nem hivatalos) kapcsolási rajzot az általam elképzelt áramkörről. A kérdésem az lenne, hogy az SN75176 -os IC ami az RS-485-ös adatátvitelre szolgál majd egy másik PIC mikrokontrollerrel, és az RJ-45 ös hálózati csatlakozó bekötése helyes-e? Amúgy a képen egy PIC18F67J60-as mikrokontroller látható. Aminek az adatlapja ezen a linken érhető el: adatlap Válaszaitokat előre is köszönöm!
Sziasztok!
Kicsit elörébb jutottam, igy müködik is csak elég hülyén néz ki. Le lehet az ismétléseket röviditeni? BTFSS INPUT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT
Végtelen ciklusra lenne szükséged vagy megvan hogy hányszor kellene ismétlődnie?
Szia!
Persze, csak ciklust kell rá szervezni ( mint a késleltetésben csináltad ! ), DECFSZ utasítást nézegesd meg ! Steve
Nem végtelen, ciklusonként (több lesz) pl. 1 ciklus 45mp. pl 10 timer, a következö 15mp. 5 timer. Egy folyamatosan gyorsulo led lesz.
Nézd meg ezt az oldalt!
Itt kitudod választani, hogy melyikre van szükséged!
Szia!
Köszi, nézem, de nem sokat értek belölle.
Szia!
Idézet: „Egy folyamatosan gyorsulo led lesz.” Válassz egy alapidőt és azt mondd meg egy változóval, hogy hányszor ! pl.
Ez így egy 5 s-os késleltetés lesz ( a változtatáshoz csak a VALTOZO értékét kell változtatni!) és szerintem a ciklusaidat is lehet hasonóan szervezni! Steve
Itt a 26. oldalon találsz információt a DECFSZ utasításról!
Szia!
Ne haragudj, egy kicsit nehézkes számomra, elég kezdö vagyok pic terén.
[OFF]
Szia! Idézet: „Ne haragudj” Nem haragszom ! Ha már megnézted 5x és még mindig nem érted, akkor írd le, hogy mi nem világos! A viccet félretéve: sokat kell olvasni és használd az MPLAB szimulátorát, amiben láthatod, hogy mi történik belül! Hidd el, hogy így lehet tanulni, az eleje nagyon "nyögvenyelős", de ha megérted, akkor a többi információ is fog Rád "ragadni", ill. fogod tudni az adatlapokat használni ( én is, mint gyakorló programozó, még sokat tesztelgetek, mert a feladatok soha nem egyformák :yes: !) ! Ne add fel a "csüggedést", hanem olvass sokat ! Steve
Sok minden nem világos, rajta vagyok, soronként próbálom értelmezni, de minden sorra másik 10 van. Nem azt várom hogy valaki megírja, de szerintem egy felkommentál (magyarul érthető nyelven) program részből is sokat lehet tanulni. Olyasmi mint elsőben, előbb tanuld meg az összes betűt, utána már lehet írni. Mplab Sim próbálom, de mit kellene nézni? A netet már átkutattam hogy hol lehet használatáról magyarul infót találni, eddig nem sikerült. Tanulásképp ezt is megpróbáltam, a led nem villog, program fut, nincs hiba. Na ez tudja bosszantani az embert.
Az előző lapon belinkeltem egy oldalt. Ott az összes assembly parancs működése le van írva. Azokat szerintem nézd át (fogd fe úgy mint ha azok lennének a betűk) .
MPlab-hoz pedig itt egy leírás: Bővebben: Link
Akkor már csak egy kérdésem lenne, ha BTFSS INPUT al inditom el hogy tudom a folyamatot leállitani ha BTFSC INPUT ?
BTFSS INPUT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BSF LED CALL TIMER_1MP BCF LED
BTFSS parancs annyit csinál hogyha az INPUT 1 akkor átugorja a következő sort.
Tehát ha az INPUT-od 1 akkor a 'BSF LED' sort átugorja.
Tehát ha igy csinálom akkor megszakítja a folyamatot ha az input átmegy 0-ba
BTFSS INPUT BSF LED CALL TIMER_1MP BCF LED CALL TIMER_2MP CLRWDT BTFSC INPUT ;itt megszakitja BSF LED BTFSC INPUT ;itt megszakitja CALL TIMER_1MP BTFSC INPUT ;Tehát akkor itt megszakitja BCF LED
Az a baj hogy ezekből a kis kódrészletekből nem sok mi derül ki. Ha elmondanád hogy mit kellene csinálni akkor többet tudnánk segíteni.
Végül is amit beraktál megszakítja. Csak lenne jó tudni hogy mi van az utolsó 'BCF LED' után.
Input bemegy, (láb lehúz) led elkezd villogni timer-er és a sorokkal összehoztam 45mp-ig egy sebességgel, utána 15mp.ig gyorsabban villog. Megszakitani a folyamatot (Input elenged) bármikor tudjam. Kb ennyi.
Írtam egy kis programot. Én így oldanám meg.
Szerk.: A beállításokat, késleltetéseket neked kell már beállítani. Ebből igazából a főprogram ami neked fontos!
Köszönöm, holnap kiprobálom, mára már elég volt.
Szia!
Nem szabad ilyen gyorsan haladni, amíg nem érted a közbenső lépéseket! Többször leírtuk már, de Neked mégegyszer: 1.program: 1 LED bekapcsolása mindenféle Ny nélkül! 2. program: 1 LED bekapcsolása NY-al! 3. program: 1 LED kikapcsolása NY-al! 4. program: 1 LED villogtatása! 5. program: 2 LED ellenfázisban villogtatása! 6. program: LED be-ki NY-ra ! és így tovább... Ha ezek szerint haladsz, mindegyiket le is szimulálva, akkor már sokat fogsz tudni a PIC működéséről és akkor kell bonyolítani ( eltérő időzítések, hosszabb-rövidebb gombnyomás, 7 szegmenses, LCD, AD, soros port, stb. !) ! Ne sértődj meg, de a mostani módszered szerintem olyan, mintha tudnál vezetni Trabantot és ezen felbuzdulva repülőgépet akarnál irányítani ( hiszen még az alapjaival sem vagy tisztában! ): beleírsz a programba, közben meg nem érted teljes mértékben amit eddig írkáltál ! Steve
Sziasztok! új vagyok még a fórumon de már sokszor olvastam,de még csak most regisztráltam.nekem olyan kérdésem lenne,hogy pic16f84 re irt ASM-et átírtam pic16f628A-ra szimulátorban működik is de mplab azt írja hogy (Use of this instruction is not recommended.)Használata az utasításnak nem ajánlott. Erről lenne szó:tris utasítás probáltam ezt:BSF status, Rp0,movlw 0x00,movwf TRISB,BCF állapot, Rp0 igy igy a kimenetek működnek de a bemenet nem reagál.ez egy 5 fázisú léptető motor vezérlése lenne.ha valaki tudna segíteni ebben nagyon megköszönném!még egy kérdés asm -et felraktam hozzá. ez csak egy részlet ;; 333 : _trisa_flush
goto _2764__vector e_2894_put: ; 0110 _2785__vector: ; 0110 p_2785__trisb_flush: ; 0110 ;; 305 : bank movfw trisb movf H'2F',w ;; 306 : tris 6 tris H'06' e_2785__trisb_flush: ; 0112 return _2764__vector: ; 0113 p_2764__trisa_flush: ; 0113 ;; 298 : bank movfw trisa movf H'2E',w ;; 299 : tris 5 tris H'05' e_2764__trisa_flush: ; 0115 return END |
Bejelentkezés
Hirdetés |