Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
15-16os lábon 4megás kvarc, 22-22pF-al.
A 10 (RB4) és 11es(RB5)-ös láb lehúzva testre 3k3-al. Ide egy-egy nyomógomb menne, ami +5v ra felhúzná. A 6-7-8-9(RB0-RB3) egy-egy led mutatná a működést. Ebben a helyzetben, mikor elindítom a szimulációt, szépen kapcsolgatja egyszerre a 4kimenetemet. De élőben már nem szólal meg.
A LED-eknél van ellenállás ( volt már ilyen probléma! ) ?
Steve
Üdv,
Van egy alkalmazásom 18F4620-on. A programot MC18-ban írtam. Használok egy órakvarcot, amely segítségével interruptokat okozok másodpercenként. Szeretnék SEC_IDLE módban sleepelni, de sehogy sem jön össze. Alapból az OSCCON regiszterben a következők vannak:
Ez azt jelenti, hogy a cucc 8Mhz belső óráról jár. A timer 1 initjében a következők vannak:
A főprogramban sleepelek, az interruptban meg váltogatok egy ledet. Effektus: Ha az OSCCON SCS1:SCS0 00 azaz a PRI_IDLE módba megyek akkor jó. Mihelyst azonban a sleep előtt SCS1:SCS0 01-et állítok be nem jönnek az interruptok. A kvarc rezeg, néztem.
A PIC és az égető tuti jó, a próba PIC-be égettem bele működő pogit (LCD-s óra) indul kapásból.
Az MCLR lábnál mire gondolsz?
Az MCLR-t fel kell húzni tápra (+5V-ra) egy 10k-s ellenállással ( a beállításaid szerint nem belsőt használsz! ) ! Ezeknek elvileg jelentkezni kellene más projektnél is ( kivéve, ha ott nem külső MCLR-ed volt beállítva! ) !
Steve
Nekem ez az első saját projektem.
Olyat már csináltam nem is egyet, hogy kész progit beégetni meg hasonlók. Ezt még megpróbálom… Üdv: Zoltán
Nagyon szépen köszönöm a segítséget, elindult valóban a dolog. MCLR 10K-val fent tápon.
És mindent úgy csinál ahogy szeretném. Életem első saját magam megírt progija, és működik
Hali!
(#1011166)-re tudja valaki esetleg a választ? Üdv: András
Lenne egy olyan kérdésem:
PIC-et tudok-e úgy vezérelni, hogy írok egy programot windows-ban emi hex kódokat küld neki. A PIC-ben pedig valami egyszerű kis firmware van ami csak a hex-nek megfelelően mondjuk léptet egyet a stepper motoron. Kezdő vagyok. Azért gondoltam egy ilyen megoldásra, mert c#-ban tudok programozni valamennyire és akkor elég lenne a PIC-nek valami kis egyszerű progi, a windows alkalmazás meg levezérelné. Lehet volt már ilyenről szó... Akkor bocsi. De nem nagyon tudom átbogarászni mind a 998 oldalt. Keresőben meg nem találtam így semmit.
Sziasztok
Egy "apró" hibát követtem el egy PIC programban (16F628A+32768Hz kristály), melynek hatására mindkét port minden lába kimenetre lett állítva és aktív 1-es szintet ad ki. Ennek következményeként a PICKIT2 nem látja az eszközt, nem tud vele kommunikálni, így nem tudom kijavítani a programot. Tudom, egyszerű (lehet) a megoldás, de nem tudom, merre induljak... Köszönöm a segítséget előre is.
Üdv!
VPP First módban kellene megpróbálni a programozást.
Lehet ilyen firmware-t irni igen. Hogy van-e ilyen keszen? Nem tudom, kellene gondolom tobb orat Googlizni mire kielegito valaszt kap az ember -- en meg nem hallottam ilyenrol, ami persze nem zarja ki, hogy nincs, de ugy gondolnam annyira azert nem elterjedt, ha ennyi ev kulfoldi forumokat es levlistakat is olvasgatva meg nem hallottam ilyenrol.
Olyan van, hogy Forth ill Basic interpreter, ahol a programodat a firmware-be agyazott interpreter dolgozza fel. Azert azt halkan jegyzem meg, hogy a PIC nem szamitogep! Ilyenekbol epithetsz magadnak kavefozo automatikatol kezdve motor vezerlon at atomraketa iranyzekig mindent. Mindegyikhez mas-es mas aramkor kell, ezert nincs egyetemes megoldas "PIC vezerlore". Vannak sokmindenre hasznalhato panelek, mint pl az AVR-re epulo Aurdino, vagy a Microchip altal keszitett Aurdino kompatibilis 32 bites PIC panel. Nezd meg ezeket.
Üdv!
Már több assembly kódban láttam a CLRC utasítást, ami az MPASM assembler Pseudo-utasítása. Megnéztem az MPLAB-ban, azt írja hogy ez az utasítás egyenértékű a BCF 3,0-val, tehát a STATUS regiszter 0. bitjének (vagyis a C bitnek) 0-ra állításával. A PICem adatlapjában viszont az áll, hogy a STATUS regiszter C bitje "ellenáll" mindenféle write utasításnak, tehát akkor a CLRC-nek is, nem? Mit érthetek szerintetek félre? Marci
Nem szabadna, hogy ellenalljon! Be tudnad idezni az adatlapbol azt a szoveget ami ezt mondja?
Ezt írják az adatlapban: "If the STATUS
register is the destination for an instruction that affects the Z, DC or C bits, then the write to these three bits is disabled. These bits are set or cleared according to the device logic." továbbá: "For example, CLRF STATUS will clear the upper three bits and set the Z bit. This leaves the STATUS register as 000u u1uu (where u = unchanged). It is recommended, therefore, that only BCF, BSF, SWAPF and MOVWF instructions are used to alter the STATUS register, because these instructions do not affect the Z, C or DC bits from the STATUS register." Ezekből a részletekből következtetek arra, hogy a C bitet nem tudom módosítani, és ezért nem nagyon értem a CLRC pseudo utasítást sem
Félreértetted az adatlapot! Azt mondja: olyan utasítással TUDOD módosítani a STATUS regisztert, ami mellékhatásként nem módosítja a státuszbiteket. Tehát a BCF, BSF utasításokkal minden további nélkül lehetséges, s ennek felel meg a CLRC makró is.
Köszönöm a választ, akkor még úgy látszik van mit csiszolnom az angol nyelvtudásomon...Tehát akkor a TO és a PD bitek a státuszbitek, és ezek azok amiket nem tudok módosítani, ugye?
Bocs, hogy értetlenkedek, de a magyar PIC felhasználói kézikönyvben ezt írják a status regiszternél:
"A STATUS regiszter beállításánál ajánlott utasítások a következők: BCF, BSF és MOVWF; mivel ezek végrehajtásának eredménye nincs hatással a Z, DC és C jelzőbitekre." De a BCF STATUS,C utasítás megváltoztatja a C bit értékét, nem?
Arrol van szo, hogy ha az utasitas valtoztatna a STATUS biteket, akkor azt a harom bitet nem engedi modositani (ugy ertem ha az utasitas nem akkor, vagy nem csak akkor valtoztatja ezeket, ha a STATUS regiszter a cel regiszter). A BCF BSF MOVWF es SWAPF ha megnezed az adatlapban, nem valtoztatja, tehat ezekkel nyugodtan bibelodhetsz a STATUS regiszteren ill annak bitjein (flag-jein).
Köszönöm, azt hiszem most sikerült megértenem hogy miről is van szó
Sziasztok. Próbálok asm-ben programozni egy 12g675-ős pic-et. De valamiért nem megy. Az egyes lábán szeretnék villogtatni egy ledet. De valamiért nem kapcsolja.
Tudom hoányzik a KESIK rész. Benne van a programban csak nem rakom fel ide mert akkor már nagyon hosszú lenne. Aki látja hogy mit rontottam el az kérem segítsen.
Már nem tudom törölni az előző hozzászólásomat de már megvan a hiba. Azért nem villogott mert bemenetre ámítottal a ledet
Nem is szükséges törölni ha megoldódott a probléma. Szerintem így volt korrekt a dolog, hogy megírtad a megoldást.
Sziasztok! Építenék szívesen egy digitális órát a közeljövőben, ha az előzöm projektemet befejeztem.
A lényeg az lenne, hogy PIC vezérelje, méghozza vagy 16F873 vagy 18F24J10-el. Ne a DCF77-et linkeljétek egyből, mert a vevőt nem akarom megvásárolni.. Kész projekteket várok : kapcsolás és .hex file.al Hogyan vitelezzem akkor ki? A nyákot én tervezném! Üdv |
Bejelentkezés
Hirdetés |