Fórum témák

» Több friss téma
Fórum » PIC programozás
 
Témaindító: G-Lex, idő: Okt 24, 2005
Lapozás: OK   19 / 66
(#) watt válasza kaqkk hozzászólására (») Máj 8, 2009 /
 
Ez nem a nyelvtől függ. Azt el tudom képzelni, hogy a fordító megoldja a helyes beállítást, de ha nem, akkor lehet ilyen összevisszaság. A PIC-et nem érdekli, milyen nyelven állítod be azt amit be kell, csak legyen beállítva. Tehát járj utána, hogy a fordító miként kezeli ezt a kérdést(helpben pl.)
(#) kaqkk válasza watt hozzászólására (») Máj 8, 2009 /
 
A parsic egy graikus fejlesztő és a helpjében sem teláltam semmit erről , én arra gondolok hogy amíg csak az első két AD bemenet van használva addíg kéri a referenciát ha már 3-vagy 4 AD - használok akkor már automatikusan átállítja (de erre rákérdezek a progi topikjában )
(#) icserny válasza kaqkk hozzászólására (») Máj 8, 2009 /
 
Nem kell kétségbeesni! A PARSIC által generált assembly forráskódban megnézed, hogy mit ír az ADCON1 regiszterbe (0x9F a címe), s összehasonlítod az értéket az adatlap 112. oldalán levő táblázattal.

Az alsó 4 bitbe (PCFG3:0 bitek) írt bitkombináció olyan legyen, hogy a hozzá tartozó sorban azoknál a lábaknál legyen A, ahol analóg bemenetet akarsz, a VREF+ és VREF- oszlopban pedig VDD és VSS álljon, akkor nem kell külső referencia.
(#) kaqkk válasza icserny hozzászólására (») Máj 8, 2009 /
 
köszi szépen megpróbálom
(#) okes hozzászólása Máj 15, 2009 /
 
Szevasztok!

kezdő vagyok és kellene egy segítség. Kézhez kaptam egy "házi" basic stamp 1et. 3 pinre egy kijelző csatlakozik. ezt tudom kezelni, de a pin3 és pin4 re i2c lenne vezetve. Ezt persze úgy képzeljétek el hogy vezetékkel két soros (rs25... az egér csatlakozó ) csatalakozóra van kötve, így lehet csatlakoztatni és cserélni az i2c-s dolgokat. Na most van egy real-time órám nevezetesen a rs5c372a. a problémám pedig az hogy a programom mindig lefut még akor is ha nincs csatlakoztatva az óra. persze kiolvasni sem tudok semmilyen adatot.
A nyugta vizsgálatánál lehet a probléma mert mikor megvizsgálom hogy
if ora_sda=1 then Ack_var
továbmegy, és ahogy néztem azé mert a lábamon mindig 0 van, üres állapotban is.

valószínűleg az ismeret hiányom okozza a problémát
de bármilyen segítséget, kész programot vagy teljesen más megoldást elfogadok
(#) El_Pinyo válasza okes hozzászólására (») Máj 15, 2009 /
 
Szia!
Idézet:
„a lábamon mindig 0 van, üres állapotban is”

Ez arra enged következtetni, hogy elfelejtettél felhúzó ellenállásokat kötni az SDA és SCL vonalakra. Felhúzó ellenállásnak pl. 10 kOhm- t szokás használni.
Üdv.
(#) Hp41C válasza El_Pinyo hozzászólására (») Máj 15, 2009 /
 
Szia!

A kijelző és az óra is ugyanarra a portra van kötve a 16C54-en. Kereszthatás jöhet létre a két funkció között.
- Ha a kijelzőbe ír a program ( bsf, bcf pic assembly utasítással és még mások is, ha az a port a cél), az I2C-n a két bit ekkor bemenet. Ekkor az említett utasítások beolvassák a portot, elvégzik a műveletet, az eredményt vissza írják a porrtra. Ez így renben is lenne, de mialatt a kijelzőhöz tartozó bitet átállítja - az I2C-hez tartozót elrontja. Az ok a következő. Az I2C-n a bit éppen nem hajtja a vonbalat, a felhúzó ellenállás miatt a beolvasáskor magas szintet érez, és ezt a magas szintet vissza is írja a kimeneti regiszterbe. Ha az I2C majd meg akarja hajtani a vonalat, akkor neki az alacsony szint kellene, ami az utasítás végrehajtása elott ott volt.

A megoldás : A közvetlen port írás helyett az adatokat egy memóriában készítsd elő (bármilyen utasításokkal) és onnan másold a portra. (Csak másolás legyen - ne végezzen más műveletet.)
(#) Ricsi89 hozzászólása Máj 15, 2009 /
 
Helló!
Van egy P16pro programozóm, amivel régebben simán programoztam 16F628-as pic-et. Most, mivel szükségem lett volna egy programozásra, elővettem és az egyszer már vele programozott pic-et akartam újraprogramozni, de a verify résznél mindig hibát ír. A pic eddig egy karakteres lcd tesztelőben volt használva és egy óra program volt benne. Mielőtt programozni akartam, azelőtt is használtam és ment. Most viszont nem tudtam sehogy sem felprogramozni. Minden beállítás ugyanaz volt mint régen. Megtaláltam egy másik ilyen pic-et is, de azt sem akarta felprogramozni. Ezért arra gondolok, hogy a pic jó, de valami nem stimmel a programozóval, ami kizárt, mert a polcon volt mostanáig és senki sem nyúlt hozzá. Eddig mindig a Winpic-el programoztam, mert ezzel hiba nélkül ment mindig. A többi programmal nem akart menni. valaki tudna segíteni, hogy hol keressem a hibát?
Üdv: Ricsi
(#) Mosellateam hozzászólása Aug 7, 2009 /
 
Sziasztok!

Hol találok magyar nyelvű application note-okat a PIC mikrokontrollerekhez?

Előre is köszi!
(#) potyo válasza Mosellateam hozzászólására (») Aug 7, 2009 /
 
A gyári application note-ok fordítására gondolsz? Szerintem ilyen nem létezik...
(#) Mosellateam válasza potyo hozzászólására (») Aug 7, 2009 /
 
szia!

Hát igazából nem tudom mert Topi egyik írásában olvastam hogy létezik magyar app note a PIC-ekhez és nagyon jól jönne mert az angolokból nehezebb megérteni egy kezdő számára(mint én).


(#) littlejoe válasza Mosellateam hozzászólására (») Aug 8, 2009 /
 
Tessék egy régebbi pic fordítása:
(#) sunyo1 válasza dcsabi hozzászólására (») Aug 8, 2009 /
 
Szia.A hobbi elektronika oldalon talaltalak meg, ott utalsz egy PARSIC nevü progira, sehonnan nemtudom letolteni tudnál ebben segiteni??
Elore is kosz
(#) Mosellateam válasza littlejoe hozzászólására (») Aug 8, 2009 /
 
köszönöm szépen, ilyenre gondoltam. esetleg ha lenne még az nagyon jól jönne. előre is köszi.
(#) sunyo1 hozzászólása Aug 14, 2009 /
 
Hali Mindenki.
Kezdő PIC-es vagyok. A TMR0-on sikeressen tuljutottam .Kerdesem a kovetkezo :, hogy lehet a TMR1-et engedelyezni es idözitönek hasznalni, megszakitast eloidezni vele ?valojabann en azt szeretnem ,hogy a pic16f628-as 30percenkent kapcsoljon ki-be egy kimenetet. Mellekelem az edig elert asm-et.
elore is koszonom a valaszt




LIST P=16F628 ; Device number (PIC16F628)
#INCLUDE
;ERRORLEVEL -224 ; suppress annoying message because of tris
;ERRORLEVEL -302 ; suppress message because of page change

;--------------------- Configuration -------------

;_BODEN_OFF equ H'3FBF' ; Brown out detection off
;_CP_OFF equ H'3FFF' ; Kodvédelem kikapcsolva
;_PWRTE_ON equ H'3FF7' ; Power-on reset enabled
;_WDT_OFF equ H'3FFB' ; Watch dog timer off
;_LVP_OFF equ H'3F7F' ; Alacsony szintü programozas ki
;_INTRC_OSC_NOCLKOUT equ H'3FFC' ; belső RC Oscillator
;_MCLRE_OFF equ H'3FDF' ; RA5_funkcio input

__CONFIG _CP_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _PWRTE_ON & _LVP_OFF & _BODEN_OFF & _MCLRE_OFF
;------------------------------------------------------
cblock 0x20
STATUS_TEMP
W_TEMP

ismetles_ido
ismetles_int
;--------------------------------------------
endc

org 0
goto start
org 4 ;megszakitas vektor
btfsc INTCON,T0IF ;tmr0 megszakitas?
goto isr ;igen

start
bcf STATUS,RP1 ;bank1
bsf STATUS,RP0
movlw b'01111111'
movwf TRISA
movlw b'00000000'
movwf TRISB
bcf STATUS,RP0 ;bank0
movlw 0x07
movwf CMCON
bsf STATUS,RP0 ;bank1
movlw b'00000111' ;elooszto tmr0-hoz
movwf OPTION_REG
bcf STATUS,RP0 ;bank0
bsf INTCON,GIE
bsf INTCON,T0IE
;-----------------------------------------

O
BTFSS 0X5,0
GOTO O
isr
movwf W_TEMP ;a W másolása a W_TEMP-be
swapf STATUS,W ;a STATUS bitcserés másolása a W-be
movwf STATUS_TEMP ;a W (STATUS) másolása a STATUS_TEMP-be
clrf STATUS ;a 0. memórialap kiválasztása
btfsc INTCON,T0IF ;Timer0 túlcsordulás vizsgálata
goto t0i ;ugrás, ha a Timer0 túlcsordult
t0i ;a túlcsordulási esemény lekezelése ...
bcf INTCON,T0IF ;a jelzőbit nullázása
bsf 0x5,7 ;it fut
goto ende ;ugrás a szubrutin végére
ende
swapf STATUS_TEMP,W ;a STATUS_TEMP bitcserés másolása a W-be
movwf STATUS ;a STATUS_TEMP másolása a STATUS-ba
swapf W_TEMP,F ;a W_TEMP bitcseréje
swapf W_TEMP,W ;a W_TEMP másolása a W-be
retfie ;visszatérés a megszakításból ...

;-------------------------------------------------------


end
(#) sunyo1 hozzászólása Aug 15, 2009 /
 
Sziasztok
kezdö PIC-es vagyok.Van egy JDM programozom.és WinPic800.3.64 ver.programom hozzá.Beteszem az uj pic16f628-at. felismeri dev ID 0x07C0 minden ok .Tudtam is programozni mármint led villogtatas stb.Egy idő óta nem ismeri fel a 16f628-at és dev .Id-nek meg azt mondja ,hogy 0x3FFF.vagy 0x0000 stb.Már vagy 6db ujjat elcsesztem igy!!! Mi lehet a hiba oka? lehet-e a dev iD irni vagy az gyarilag rogzitett a pic-be.
valaszt eloer is kosz sunyo1
(#) watt válasza sunyo1 hozzászólására (») Aug 15, 2009 /
 
Ezt olvastad?
A DEV ID(eszköz azonosító) nem módosítható, be van vésve a PIC-be. Minden típusnak más.
(#) sunyo1 válasza watt hozzászólására (») Aug 15, 2009 /
 
Szia watt
Eloszor is kosz a gyors valaszt Most ketsegbeestem ,miért ?azert hogy milyen egeteo lenne a szamomra jo.Mellekelem ,hog nekem mlyen van.Sajnos a laptoppomon nics lpt port csak soros.Ezert tetszet meg a JDM.mit tudsz javasolni nekem?egeto ugyileg ami kivitelezhető házilag is.

simple2.gif
    
(#) watt válasza sunyo1 hozzászólására (») Aug 15, 2009 /
 
A soros port elég kényes felület. Oda nehéz jó égetőt építeni. Egy van az oldalamon, de a cikkben írom, hogy nem minden PIC-el gondmentes. Most próbálok egy egyszerűt is, de még nincs kész, mert tele van bonyodalommal!

A legjobb választás egy PICKit2 klón lenne (USB-s). Ha neked elég az 5V-os PIC-ek égetése, akkor a szilva féle jó. Ha nem, akkor az oldalamon és az itteni cikk alapján tudsz építeni fullost.
(#) sunyo1 válasza watt hozzászólására (») Aug 17, 2009 /
 
Nagyon köszönöm megprobálom megépiteni.
(#) SzT3 hozzászólása Aug 21, 2009 /
 
Sziasztok kérdésem lenne.
Van egy alap program PIC-re asm-be ami ugy van megszerkesztve hogy van benne 4 efekt (sima 6 kimenet I/O) namost ez azt a megoldást használja hogy ha az 1 gombot nyomom meg akkor az 1 efekt fusson ha a 2 gombot akkor a 2 efekt hogy tudom ugy átirni a kodot hogy csak az egyes gomb nyomkodására váltson az efektek között??

CSak itt:

=======================================
; Variable Definition
;======================================
;INPUTS
SW1 EQU H'00' ;SW1 is triggering RA0
SW2 EQU H'01' ;SW2 is triggering RA1
SW3 EQU H'02' ;SW3 is triggering RA2
SW4 EQU H'03' ;SW4 is triggering RA3
TIMER1 EQU H'20' ;Used in delay routine
TIMER2 EQU H'21' ; " " "
PATERN EQU H'22' ;Pattern data for effect's


ORG 0 ;Reset vector address
GOTO RESET ;goto RESET routine when boot.


; *********************************************
; * Example of a delay routine *
; *********************************************

DELAY_ROUTINE MOVLW D'60' ;54 Generate approx 10mS delay at 4Mhz CLK
MOVWF TIMER2
DEL_LOOP1 MOVLW D'60 ;60
MOVWF TIMER1
DEL_LOOP2 BTFSC PORTA,SW1
GOTO MENU
BTFSC PORTA,SW2
GOTO MENU
BTFSC PORTA,SW3
GOTO MENU
BTFSC PORTA,SW4
GOTO MENU
DECFSZ TIMER1,F
GOTO DEL_LOOP2
DECFSZ TIMER2,F
GOTO DEL_LOOP1
RETLW 0


; **********************************
; ** RESET : main boot routine **
; **********************************

RESET MOVLW B'00000111' ;Disable Comparator module's
MOVWF CMCON
;
BSF STATUS,RP0 ;Switch to register bank 1
;Disable pull-ups
;INT on rising edge
;TMR0 to CLKOUT
;TMR0 Incr low2high trans.
;Prescaler assign to Timer0
;Prescaler rate is 1:256
MOVLW B'11010111' ;Set PIC options (See datasheet).
MOVWF OPTION_REG ;Write the OPTION register.
;
CLRF INTCON ;Disable interrupts
MOVLW B'11000000'
MOVWF TRISB ;RB7 & RB6 are inputs.
;RB5...RB0 are outputs.
MOVLW B'11111111' ;all RA ports are inputs
MOVWF TRISA
BCF STATUS,RP0 ;Switch Back to reg. Bank 0
CLRF PORTB
GOTO EFFECT_4
;

MENU CLRF PORTB
;
BTFSC PORTA,SW1
GOTO EFFECT_1
BTFSC PORTA,SW2
GOTO EFFECT_2
BTFSC PORTA,SW3
GOTO EFFECT_3
BTFSC PORTA,SW4
GOTO EFFECT_4
GOTO MENU


találtama bemenetekre illetve a gombokra emlitést meg az efektek előtt

EFFECT_1 BTFSC PORTA,SW1
GOTO EFFECT_1
E1 MOVLW B'00100000' ;
MOVWF PORTB
CALL DELAY_ROUTINE
.
.
.
.
.
.
EFFECT_2 BTFSC PORTA,SW2
GOTO EFFECT_2
E2 MOVLW B'00000001' ;.
.
.



Vagy ez nem ilyen egyszerü. . . Őszinte leszek nem nagyon értem ezt a programmenetet. . helyesebben az elejét a felépítést. . itt a villogásiminták már mennek. .



(#) SzT3 válasza (Felhasználó 15355) hozzászólására (») Aug 21, 2009 /
 
sajna igazad van ettől még nem müködik.
(#) kissi válasza SzT3 hozzászólására (») Aug 21, 2009 /
 
Kell egy változó, aminek az értéke változik a NY1 nyomásánál és a változót kell kiértékelni az effekt működtetésénél ( temészetesen a változót a maximális érték után nullázni kell, ill. változtatás késleltetés kell, hogy legyen időd elengedni a gombot!) !

Steve
(#) SzT3 válasza kissi hozzászólására (») Aug 21, 2009 /
 
Szia.
És azt hogy illesztem be a progiba. .
Tudom beleirom. . de hogy néz ki az a változó?
(#) kissi válasza SzT3 hozzászólására (») Aug 22, 2009 /
 
A "PATERN EQU H'22' " mintájára pl. :

VALTOZO EQU H'23' !

De ha ez még nem volt világos, akkor ne ezzel kezdd a programozást ! Nem akarlak megsérteni, de ne gondoljátok, hogy a program csak annyi, hogy könnyedén lehet módosítgatni! A módosításhoz a teljes programot ismerni kell ( különben hülyeséget csinálhat, ha valaki csak egy részletet ragad ki belőle!), illetve a szoftverrel együtt a hardvert is jó ismerni!

A fórumon a segítség abból áll, hogy megkérdezed amelyik
sort nem tudod mit csinál és annak ismeretében megpróbálod megoldani a problémát. Ha elakadsz, akkor újból kérdés...
Az, hogy írjuk le mit kell beleírni már bérmunka kérdés...

Steve
(#) SzT3 válasza kissi hozzászólására (») Aug 22, 2009 /
 
Én kérek elnézést bár ittis és a fórum több topicján is irtam hogy fogalmam sincs a program elejéről hogy ott mit és hogyan és különben is.
Szerintem ahhoz senkinek sincs türelme hogyha én egyenként bemásolom a sorokat és rákérdezek hogy mi mit jelent és arra valaki válaszoljon.
Mert olvasok én rengeteget meg külön külön hogy mi mit jelent, de nem tudom összerakni pedig elvileg nem vagyok hülye hozzá. . na mindegy.
DE ha már említetted a bérmunka verziót. azt is többször felvetettem. hogy nem ragaszkodok én ahhoz hogy hú most rögtön megértsem ezt a programozást és én írjam meg a programot hanem nekem az is jó hogy megmutatom az áramkört (lábkiosztás végett) valaki megírja rá azt a két programot én meg megfizetem az árát.
és amikor meg lesz időm meg lesz valaki aki leül mellém és beleveri a fejembe hogy te hülye ez azért van így mert így kell lennie akkor meg megtanulom.
De erre se jelentkezett senki, de akkor most feldobom megint a lehetőséget és várom a jelentkezőket

(#) Mosellateam hozzászólása Aug 24, 2009 /
 
sziasztok!

most kezdtem el ismerkedni a microchip c18 as fordítójával, de már rögtön az elején megakadtam.
írtam egy programot ami a C -port minden bitjét egybe állítja de a program nem fordítja le. mellékeltem a képet és a hibaüzenetet. előre is köszi a segítséget.

teammosella

c18.JPG
    
(#) icserny válasza Mosellateam hozzászólására (») Aug 24, 2009 /
 
Nincsenek rendesen beállítva az elérési utak.

MPLAB IDE-ben a Project/Set Language Tool Locations menüpontban a Microchip C18 Toolsuite/Default Search Paths & Directories pontban állítsd be az elérési útvonalakat!

Nálam ezek vannak:
Include: C:\Program Files\Microchip\MCC18\h
Library: C:\Program Files\Microchip\MCC18\lib
Linker: C:\Program Files\Microchip\MCC18\lkr

ha máshová telepítetted, akkor találd ki, hogy Nálad mi kell!

Az új projektekre ez automatikusan működni fog, de a meglévőnél (amit nem tudtál lefordítani) a fentiek után kell még egy lépés:

Project/Project options/Project menüpontban választ ki a Deirectories lapot/fület és kattints a "Suite Defaults" gombra.
(#) Mosellateam válasza Mosellateam hozzászólására (») Aug 24, 2009 /
 
sikerült megoldanom csat át kellett olvasni a user guide-ot, azért nagyon szépen köszönöm
(#) Magashegyi hozzászólása Aug 31, 2009 /
 
Üdv mindenkinek!

PIC 16F877-et használok. A kódjaimat CCS compilerrel fórdítom. A problémám a const char típusu tömbökkel van, ugyanis const char pontert ahogy a súgoban mutatja: const char *cptr nem engedi, viszont ha sima char pointert próbálok ráálítani azt valahogy nem sikerül.
Remélem tud valaki segíteni.......
Következő: »»   19 / 66
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