Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   123 / 1210
(#) joci1987 válasza hackerfish hozzászólására (») Aug 8, 2011 /
 
Üdv.

Mplab-bal próbálkozok fordítani de hibaüzenetet ír ki. Mit rontottam el?

----------------------------------------------------------------------
Debug build of project `D:\villog\villog.mcp' started.
Language tool versions: MPASMWIN.exe v5.42, mplink.exe v4.40, mplib.exe v4.40
Preprocessor symbol `__DEBUG' is defined.
Mon Aug 08 08:30:10 2011
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Done.
Build aborted. The project contains no source files.
----------------------------------------------------------------------
Debug build of project `D:\villog\villog.mcp' failed.
Language tool versions: MPASMWIN.exe v5.42, mplink.exe v4.40, mplib.exe v4.40
Preprocessor symbol `__DEBUG' is defined.
Mon Aug 08 08:30:11 2011
----------------------------------------------------------------------
BUILD FAILED

Amit küldtél programot próbáltam megérteni igazából a középső (vissza) részre fogjuk rá, hogy értem A Start és a Delay résszből viszont szinte semmit sem érek. Azokat elmagyaráznád részletesen.
(#) trudnai válasza kiskata hozzászólására (») Aug 8, 2011 /
 
Valami lebeg aminek nem lenne szabad. Pl lehet az MCLRE nincs felhuzva (forrasztasi hiba vagy elnezted a rajzot es nem ugy kototted be. Vagy a 100nF keramia nincs bekotve avagy tul messze van a PIC-tol.

Az is lehet, hogy a PGM labat le kellene huzni a folre 10k-val.
(#) Hp41C válasza joci1987 hozzászólására (») Aug 8, 2011 /
 
Szia!
Idézet:
„Preprocessor symbol `__DEBUG' is defined.”

- A programot nyomkövetéses vizsgálathoz fordítja, szerkeszti. Az ablak közepén, felül a Debug módot állítsd át Release módra...
Idézet:
„Build aborted. The project contains no source files”

- A projecthez nem adtad hozzá a forrás állományt.
(#) watt válasza kiskata hozzászólására (») Aug 8, 2011 /
 
A PIC-eket lehet úgynevezett alacsony feszültségű módban is programozni a PGM láb kapcsolja be ezt a funkciót.. Ezt ki szoktuk kapcsolni, ha van normális égetőnk. Ezt a config bitek közül az LVP bittel lehet. Vagy a PGM lábat kell testre húzni egy 10k-val, de ez adott esetben láb és ellenállás pazarlás...
(#) joci1987 válasza Hp41C hozzászólására (») Aug 8, 2011 /
 
Most meg ezt írja ki:

----------------------------------------------------------------------
Release build of project `d:\PICprg\villogo\villogo.mcp' failed.
Language tool versions: MPASMWIN.exe v5.42, mplink.exe v4.40, mplib.exe v4.40
Mon Aug 08 10:29:59 2011
----------------------------------------------------------------------
Most release-re vagy debugra kell állítani? Egyébként ezek mit jelentenek?
(#) watt válasza (Felhasználó 15355) hozzászólására (») Aug 8, 2011 /
 
Szerintem jó helyen kérdez és jókat. A lustaság szerintem nem annyira jó dolog.
(#) Hp41C válasza joci1987 hozzászólására (») Aug 8, 2011 /
 
Szia!
- Debug: A kontroller programját az MpLab -ban kiválasztott debuggerrel (PICKit2, PICKit3, ICD2, ICD3 stb) vizsgálni szeretnéd. A debugger és a kontroller közötti adatforgalmat vezérlő programoz hozzácsapja a lefordított felhasználói programhioz, azt programozza be, indítja és tartja a kapcsolatot a debuggerrrel. Nem fut önnálóan.
- Release: A kontrollerbe csak a felhasználói programot programozza be. Önnálő működesre így kell fordítani.

A forrást hozzáadtad a project -hez?
(#) joci1987 válasza Hp41C hozzászólására (») Aug 8, 2011 /
 
Hogyan kell hozzáadni a forrást a projekthez?
(#) icserny válasza joci1987 hozzászólására (») Aug 8, 2011 /
 
Project --> Add File to Project vagy
Project --> Add New File to Project, attól függően, hogy a forrásállomány már létezik, vagy most hozod létre.

Bővebben: Link
(#) watt válasza joci1987 hozzászólására (») Aug 8, 2011 /
 
Látszik a project Fájl ablak? (View->Project pipa)
Ha igen, akkor egy meglévő asm fájlt a Source Files + jobb gomb -> Add Files, lehet betallózni egyszerűen.
(#) NyariG hozzászólása Aug 8, 2011 /
 
Sziasztok
Led villogtatásban kérnék segítséget!
Azt megtudom csinálni hogy négy led fusson folyamatosan és gombnyomásra változzon meg a futás iránya:
BALRAMENETA
MOVLW B'00000000'
MOVWF PORTD
BTFSS PORTA,1 ;KIHAGYA A KÖVETKEZÖT HA NINCS LENYOMVA A GOMB
CALL JOBBRAMENET ;UGRÁS A JOBBRAMENETHEZ
CALL DELAY
MOVLW B'00000001'
MOVWF PORTD
BTFSS PORTA,1 ;KIHAGYA A KÖVETKEZÖT HA NINCS LENYOMVA A GOMB
CALL JOBBRAMENET ;UGRÁS A JOBBRAMENETHEZ
CALL DELAY
MOVLW B'00000010'
MOVWF PORTD
BTFSS PORTA,1 ;KIHAGYA A KÖVETKEZÖT HA NINCS LENYOMVA A GOMB
CALL JOBBRAMENET ;UGRÁS A JOBBRAMENETHEZ
CALL DELAY
MOVLW B'00000100'
MOVWF PORTD
BTFSS PORTA,1 ;KIHAGYA A KÖVETKEZÖT HA NINCS LENYOMVA A GOMB
CALL JOBBRAMENET ;UGRÁS A JOBBRAMENETHEZ
CALL DELAY
MOVLW B'00001000'
MOVWF PORTD
BTFSS PORTA,1 ;KIHAGYA A KÖVETKEZÖT HA NINCS LENYOMVA A GOMB
CALL JOBBRAMENET ;UGRÁS A JOBBRAMENETHEZ
CALL DELAY
DECFSZ T4,f ;Csökkenti a T4-at, addíg, amig nem nulla
GOTO BALRAMENETA




JOBBRAMENET
MOVLW d'10'
MOVWF T4 ;T4-ba bekerült a 10
JOBBRAMENETA
MOVLW B'00000000'
MOVWF PORTD
BTFSS PORTA,2 ;KIHAGYA A KÖVETKEZÖT HA NINCS LENYOMVA A GOMB
GOTO BALRAMENET ;UGRÁS A BALRAMENET
CALL DELAY
MOVLW B'00001000'
MOVWF PORTD
BTFSS PORTA,2 ;KIHAGYA A KÖVETKEZÖT HA NINCS LENYOMVA A GOMB
GOTO BALRAMENET ;UGRÁS A BALRAMENET
CALL DELAY
MOVLW B'00000100'
MOVWF PORTD
BTFSS PORTA,2 ;KIHAGYA A KÖVETKEZÖT HA NINCS LENYOMVA A GOMB
GOTO BALRAMENET ;UGRÁS A BALRAMENET
CALL DELAY
MOVLW B'00000010'
MOVWF PORTD
BTFSS PORTA,2 ;KIHAGYA A KÖVETKEZÖT HA NINCS LENYOMVA A GOMB
GOTO BALRAMENET ;UGRÁS A BALRAMENET
CALL DELAY
MOVLW B'00000001'
MOVWF PORTD
BTFSS PORTA,2 ;KIHAGYA A KÖVETKEZÖT HA NINCS LENYOMVA A GOMB
GOTO BALRAMENET ;UGRÁS A BALRAMENET
CALL DELAY

DECFSZ T4,f ;Csökkenti a T4-at, addíg, amig nem nulla
GOTO JOBBRAMENETA

De hogy lehet a másik négy ledet folyamatosan egy irányba futatni minden mástól függetlenül.
(#) watt válasza NyariG hozzászólására (») Aug 8, 2011 /
 
Először is használd a KÓD gombot, vagy méginkább csatold a forrást, ha ilyen hatalmas! Így egyébként is olvashatatlan!

A kérdésedre a válasz pedig a BSF, BCF utasításokban rejlik, amikkel egyenként lehet a lábakat adjusztálni, vagy más maszkolós megoldásokban, ahol logikai kapcsolatba kell hozni a kimeneti portot, vagy egy árnyék regisztert egy megfelelő maszkkal és az eredményt kell kivinni a portra.
(#) vilmosd válasza NyariG hozzászólására (») Aug 8, 2011 /
 
Eloszoris : jo lenne code ablakba beilleszteni a programot. Pl igy:
  1. bsf             STATUS,C            ;Activa el carry
  2. Loop            call    Delay               ;Temporiza 250mS
  3.                         btfsc   PORTA,0             ;Está a 0 RA0 ??
  4.                         goto    Right               ;No, rotación a derecha
  5. Left            rlf             PORTB,F             ;Si, rotación a izquierda
  6.                         goto    Loop
  7. Right           rrf             PORTB,F             ;Rotación a derecha
  8.                         goto    Loop
  9.        
  10.                         end                                         ;Fin del programa fuente
Ez egy hasonlo program, itt a RB-re kotott 8 LED fut jobbra vagy balra a nyomogombtol fuggoen.

exampl_8.asm
    
(#) joci1987 válasza watt hozzászólására (») Aug 8, 2011 /
 
Csatoltam egy képet a programról. Szerintem hozzá van adva a file a projekthez.

pic.jpg
    
(#) joci1987 hozzászólása Aug 8, 2011 /
 
Üdv.

Valaki tud ajánlani honlapot vagy könyvet amiben megtalálható a pic programozás alapjai (utasítások stb.).
Lehetőleg olyat ami nem végig a hardver felépítéséről szól, hanem inkább a programozásról és van benne sok példaprogram is. Ezek a pic-ek állnak a rendelkezésemre: PIC12F683, PIC16F636. Ezek megfelelőek egy kezdő pic programozónak?
(#) vilmosd válasza joci1987 hozzászólására (») Aug 8, 2011 /
 
Nezz szet a konyvespolcon.
(#) watt válasza joci1987 hozzászólására (») Aug 8, 2011 /
 
IGen a forrást hozzáadtad. Akkor még próbáld a zöld fogaskerekes ikonnal(project beállítások) beállítani a linker, header stb. elérési útjait. A fordítót is be kell állítani ASM-ra, ha még nem lenne.
(#) joci1987 válasza watt hozzászólására (») Aug 9, 2011 /
 
Amikor elindítom a projektet ez az ablak ugrik elő. Ez mit jelent, melyiket válasszam?

pic2.jpg
    
(#) trudnai válasza joci1987 hozzászólására (») Aug 9, 2011 /
 
Ha hasznalsz linker scriptet akkor relocative mod kell neked amugy absolute. Ha nem tudod mi az a linker script akkor tobb, mint valoszinu nem hasznalod...
(#) watt válasza joci1987 hozzászólására (») Aug 9, 2011 /
 
Az első lépéseket absolute módban tedd. Én még ma is ezt használom főkép! Ilyenkor magadnak kell a memóriát kiosztani a változóid között a CBLOCK-al és az org-al. Előnye, hogy tudod mi hová kerül, és mennyi helyed van még.
(#) joci1987 válasza watt hozzászólására (») Aug 9, 2011 /
 
Üdv.

Még mindig nem fordítja le pedig már mindent megpróbáltam

(Küldök egy képet a programról)

pic3.jpg
    
(#) MPi-c válasza joci1987 hozzászólására (») Aug 9, 2011 /
 
Ebben a PIC-ben (12F683? Képernyőképet inkább png-ben rakj fel, az jobban látható!) nem találsz PORTA, PORTB, TRISA, TRISB regisztereket! Nézd meg a P12F683.INC fájlt!
(#) joci1987 hozzászólása Aug 9, 2011 /
 
Üdv.

Ezt a programot már valaki megírta és én csak átírni próbáltam (ezek szerint nem sikerült ). Egyébként érdemes ezekkel a picekkel kezdeni az alapoktól a programozást: PIC12F683, PIC16F636? És hol találnék olyan program példákat, leírást, stb. ami ezekkel a picekkel dolgozik?
(#) trudnai válasza joci1987 hozzászólására (») Aug 9, 2011 /
 
Mindegyik PIC mas -- ill. nem feltetlenul teljesen mas, de lehetnek oriasi elteresek is. Az adatlap az amibol kiderul mi hogy van, azt mindenkepp meg kell tanulni forgatni. A masik trukk, hogy van egy template nevu mappa valahol az MPASM konyvtarak kozott, azt keresd meg, ha onnan betoltod a megfelelo template file-t es atmasolod a tartalmat a te asm file-odba, akkor onnan konyebb elindulni valoszinuleg.
(#) MPi-c válasza joci1987 hozzászólására (») Aug 9, 2011 /
 
Át lehet írni azt a kódot egyik PIC-ről a másikra csak elő kell venni mind a két PIC adatlapját és meg kell nézni, hogy az eredetinek megfelelő regiszterek, portok, modulok stb. vannak-e a másikban. Itt a PORTA-t és PORTB-t nem használhatod, mert csak 6 IO lába van a PIC-nek, azokat meg GPIO-nak nevezik.
Meg kell nézni az adatlapban - ezt én sem tudom fejből - hogy melyik lábat lehet kimenetnek, melyiket bemenetnek beállítani és úgy kell átírni...
(#) NyariG hozzászólása Aug 10, 2011 /
 
Hali,
most azt szeretném megkérdezni hogy egy 16f877 es piccel lehet-e 3 db 4 kivezetéses léptetőmotort egyszerre hajtani, úgy hogy három poti segítségével állíthassam külön külön a sebességeket?
Ha igen akkor le írhatnátok hogy hogyan (nem program kell csak a logika)
(#) watt válasza NyariG hozzászólására (») Aug 10, 2011 / 1
 
Lehet. 12 láb kimenet(tranyókkal megerősítve), 3 A/D bemenetre a potik(potik kimenete 0..5V). Az A/D értékétől függően(0..1023) meghatározni a létetési frekit és kiadni sorban a hozzá tartozó kimenetre. Ha középállástól függően jobbra balra kell forognia a motoroknak, akkor el kell osztani a 0..1023 tarományt ketté. Kb. ennyi.
(#) vilmosd válasza NyariG hozzászólására (») Aug 10, 2011 / 1
 
Tobb megoldas is lehetseges. Ugye az elso reszfeladat,az AD-k periodikus beolvasasa. Ezt legegyszerubben talan a RTCC interrupttal lehetne megcsinalni. Az IT jon 100 uSec gyakorisaggal, ami bebillent egy jelzobitet, ami a foprogramban majd beinditja az ervenyes csatornan a konverziot, majd valt a kovetkezo csatornara. Igy elered, hogy mindig van friss adatod a potik allasarol. A leptetomotorok vezerlese egy kicsit bonyolultabb, mert itt kell 3 szamlalo amibe betoltod a 3 poti erteket, majd az IT beutesekor csokkented a szamlalot amig el nem eri a nullat. Amikor elerte a nullat, bebillentesz egy jelzobitet a leptetomotor vezerlesehez, majd ujra feltoltod a poti ertekevel. A foprogramban pedig a jelzobithez tartozo motort lepteted eggyel. Ez igy folyamatosnak fog latszani. Majd kesobb keresek egy stepperes ASM peldat (meg nagyon koran van, es meg nem reggeliztem).

Ja meg annyit, hogy illik a PIC-et 20 MHz-rol jaratni, hogy mindenre jusson ido.
(#) joci1987 hozzászólása Aug 10, 2011 /
 
üdv,

Már sikerült egy folyamatosan világító led programja, de szeretnék már villogó ledet látni
Írtam egy programot de valamiért nem villog a led vagyis úgy látom, hogy gyorsan kialszik és utána kigyullad.
Mi lehet a rossz a programban.
Másik a bemenet ki is van kommentelve a programból, mert arra ezt írja ki:
Error[128] : Missing argument(s)
A Start és a Main közötti részt nem én írtam, hanem a pic könyvéből másoltam ki. De ha jól értem a gp3,2 digitális bemenet az 5,4,0,1 digitális kimenet.
Köszönöm előre is a segítséget. Remélem nemsokára villogni fog a led

villogo.asm
    
(#) NyariG válasza joci1987 hozzászólására (») Aug 10, 2011 /
 
Szerintem csak gyorsan csinálja és nem látod hogy villogna. Növeld a várakozást.
Következő: »»   123 / 1210
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem