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   308 / 1210
(#) kormika válasza matheattila hozzászólására (») Szept 23, 2012 /
 
Eddig én is eljutottam, csak jlenleg a tudásom kevés ahhoz, hogy ezt megvalósítsam...Konkrétan azt nem tudom, hogy hogyan tudom megnézni, hogy a változó értéke mondjuk 255-e... Melyik utásítással tudom ezt megtenni?
(#) kissi válasza kormika hozzászólására (») Szept 23, 2012 / 1
 
Szia!
  1. MOVLW 255 ; ide írod azt az értéket, amivel az egyezőséget vizsgálod
  2. XORWF  VALTOZO,W
  3. BZ  EGYEZIK         ; ha egyezett, akkor az EGYEZIK címkére ugrik
  4. NEM_EGYEZIK:      ; ide írod mit csináljon, ha nem egyezik



Steve
A hozzászólás módosítva: Szept 23, 2012
(#) kormika válasza kissi hozzászólására (») Szept 23, 2012 /
 
Tökéletesen működik már nem szakad be a dobhártyám, ha nullánál megnyomom a - gombot Nagyon szépen köszönöm a segítségedet
A hozzászólás módosítva: Szept 23, 2012
(#) kissi válasza kormika hozzászólására (») Szept 23, 2012 /
 
Szívesen, Te csináltad !

Steve
(#) kormika válasza kissi hozzászólására (») Szept 23, 2012 /
 
Az igaz, de erre a BZ parancsra volt szükségem, azt kitaláltam, hogy a XORLW nekem erre tökéletes, csak nem tudtam, hogy hogyan tudom megnézni, hogy a XOR műveletnek mi lett a vége... Mégegyszer köszi
(#) aroxol hozzászólása Szept 23, 2012 /
 
Sziasztok!

A RAM-ban és az Eepromban van két szám ezt szeretném összehasonlítani, és ha nem egyezik továbblépni. Hogy lehetne ezt megoldani?
A hozzászólás módosítva: Szept 23, 2012
(#) kissi válasza kormika hozzászólására (») Szept 23, 2012 /
 
Csak azért, hogy ne legyl tévedésbe: a BZ nem parancs, ilyen utasítása nincs a PIC-nek, hanem macro ( a fordító beír helyette néhány utasítást!)! Ha érdekel, nézz utána !
Steve
A hozzászólás módosítva: Szept 23, 2012
(#) kissi válasza aroxol hozzászólására (») Szept 23, 2012 /
 
Szia!

Nézd meg a "kormika-val" folytatott beszélgetésemet, annak mintájára megoldhatod a problémát!

Steve
(#) aroxol válasza kissi hozzászólására (») Szept 23, 2012 /
 
Köszönöm, már látom, (XORWF) de elötte mit kellen csinálnom?
(#) kissi válasza aroxol hozzászólására (») Szept 23, 2012 /
 
Ha megnézed az a program egy regiszter és a W tartalmát hasonlítja össze. Neked 2 regiszter tartalmát kell összehasonlítani, de a PIC azzal a paranccsal csak egy regiszter és a W tartalmát tudja összehasonlítani --> az egyik regiszter tartalmát be kell másolni a W-be ( MOVF parancs! ) !

Steve
(#) aroxol válasza kissi hozzászólására (») Szept 23, 2012 /
 
Szia!

Rá tudnál nézni mit irtam rosszul?

  1. LFSR 0,0x200                   
  2.     MOVF INDF0,W
  3.     MOVLW INDF0
  4.     XORWF  FELTOLTOTT_VALTOZO,W
  5.     BSF LED
  6.     BCF LED
  7.     RETURN
(#) kissi válasza aroxol hozzászólására (») Szept 23, 2012 /
 
A MOVLW INDF0 nem kell ( miért írtad bele, tudod mit csiná? ), illetve nem látom, hogy ide v. oda menne az egyezőségtől függően ( próbáld ki az MPLAB szimulátorában!) !

Steve
A hozzászólás módosítva: Szept 23, 2012
(#) aroxol válasza kissi hozzászólására (») Szept 23, 2012 /
 
Kivettem, de még igy sem megy. ? Mit értesz azon hogy ide oda menne?
(#) foxi63 válasza n_yálastrubadúr hozzászólására (») Szept 23, 2012 /
 
Szia!
Akkor rosszul van megírva a megszakítási rutin, vagy nem indul el a timer1
olyan nincs, hogy el sem jut odáig.
Irjál esetleg privátban, és segítek. nem olyan bonyolult ez a dolog szerintem.
(#) foxi63 válasza aroxol hozzászólására (») Szept 23, 2012 /
 
Szia!
először kiolvasod az eeprom adott címéről az adatot, erre ott van az adatlapon az eepromread példaprogram. abból visszatérve a W regiszterben van az egyik adatod,
ezután már csak ki kell vonni a ram adatból. Ha a két szám egyenlő, az eredmény nulla,amit a STATUS regiszter jelez mégpedig a Z (zero) bitje, ezt kell megvizsgálni és ennek megfelelően tovább lépni.
W= eprom adat
subwf ramadat,w
btfsc status,2
goto itt folytatódik, ha egyenlő
nop itt meg ha nem egyenlő
egyszerűbben:
W= eprom adat
subwf ramadat,w
BZ xy ;ha egyenlő ugrás xy helyre

(#) kissi válasza aroxol hozzászólására (») Szept 23, 2012 /
 
Szia!

Azt írtad, hogy:
Idézet:
„A RAM-ban és az Eepromban van két szám ezt szeretném összehasonlítani, és ha nem egyezik továbblépni.”

Megtörténik az összehasonlítás az XORWF-el, de utána nincs elágazás aszerint, hogy egyenlő vagy nem ( csak be-ki kapcsolsz egy LED-et és visszatérsz a szubrutinból !) !? Az általam javasolt példaprogramban még volt egy BZ macro, amit nem is használsz!!
Írtam, hogy próbáld ki a szimulátorban: hidd el hasznos, ha tanulni akarsz!

Steve
(#) Tom-ee hozzászólása Szept 23, 2012 /
 
Sziasztok!

Le lehet valahogy tesztelni, hogy a belső oszcillátor rendesen működik? Nem nagyon tudok másra gondolni, mint arra, hogy valami nem indul el megfelelően és ezért a program sem. Ha nagy nehezen beindul, akkor Vicsys tesztprogramja tökéletesen megy. Kipróbáltam, hogy mi történik akkor, ha a 4. lábat nem I/O-ra, hanem MCLR-re állítom. Valahogy sikerült beindítanom a programot, aztán hagytam pár percig futni (ment is), majd a resetet leföldeltem. Ahogy vártam, a villogás abba maradt, de újra már nem indult, akkor sem, ha az MCLR visszaállt. Kezdő vagyok a témában, de szerintem ennek nem így kellett volna történnie, újra kellett volna indulnia a programnak...
(#) kissi válasza Tom-ee hozzászólására (») Szept 23, 2012 /
 
Szia!

Milyen kontroller? Ha van LVP programozási mód, akkor azt kapcsold ki!
A teszteléshez egy biztosan működő program kell ( pl. egy tuti LED villogtatós ) és egy szintén tuti programozó ( valamint a fenti "javaslatokat" a téma tetején kiemelten célszerű megfogadni!!!)
Steve
A hozzászólás módosítva: Szept 23, 2012
(#) Tom-ee válasza kissi hozzászólására (») Szept 23, 2012 /
 
Szia! Egy 12F629-el küzdök napok óta. A programokat Vicsys-től kaptam, egy RC Car flasher a honlapjáról (ez lenne a végcél), illetve egy teszt program innen. A sárga szövegre pont Te hívtad fel a figyelmemet, gyorsan át is futottam még egyszer és pótoltam a hiányosságokat. Az egyetlen kakukktojás a programozó; mivel kezdő vagyok, még nem tervezem, hogy naponta 10 PIC-et fogok programozni, így egy egyszerű (Watt féle WLPT Vpp mini v4) PIC programozó használok (illetve a hozzá írt égető programot). Ha ez lesz a ludas, el fogok keseredni, pont a ritka használat miatt nem akartam komolyabbat...
(#) vicsys válasza Tom-ee hozzászólására (») Szept 23, 2012 /
 
Nem akarlak nagyon elkeseríteni, de lehet, hogy mégis csak az égető lesz a ludas. Megérné beruháznod egy PICKIT2 klónra. 3500...5000Ft. között tudsz venni. Aztán lehet, hogy megjön az étvágyad.
(#) kormika hozzászólása Szept 23, 2012 /
 
Sziasztok! Megint lenne egy kérdésem Vettem régebben egy Energizer mikrokontrolleres akkutöltőt, itthon el is kezdtem vele tölteni 2 AAA-s akkut, aztán kb 3 óra múlva egy hangos pukkanásra lettem figyelmes... Az egyik akku volt az, a másikon is szét volt már olvadva a zsugorfólia, szóval evidens volt, hogy a töltő a ludas. Mivel adtak rá 2 év garanciát, visszavittem, de elküldtek, mondván az akkuk voltak rosszak. Ma miután elkészültem a hangerőszabályzóval (köszi kissi ) unalmamban szétszedtem. Nemhogy mikrokontrollert, de még aktív alkatrészt sem találtam benne, van benne egy 2x5V-os szekunderű trafó, 2db 1N4001 dióda, 6 db ellenállás, amiből 2 meg is pörkölődött, és két LED a csatolt rajz szerint. senki ne vegyen ilyen töltőt, nagy átverés, elkértek érte 5990Ft-ot, aztán van benne 200Ft-nyi cucc... Gondoltam átalakítom, hogy egy PIC vezérelje, az AD-vel mérve az akkuk feszültségét, és ha megvan a töltés végén a DeltaPeak, akkor lekapcsol. Az A/D átalakítás megy, a kérdésem az lenne, hogy jól értelmeztem-e a PIC adatlapját... Szóval ha én a PIC AD-jének a pozitív referenciafeszültségnek használható portját rákötöm egy 1,5 voltos referenciafeszre, a negatív referenciafesz meg a föld lenne, akkor a 0-1,5volt közötti tartományt tudja mérni 10bit-es pontossággal? Vagy rosszul értelmeztem az adatlapot?
A hozzászólás módosítva: Szept 23, 2012
(#) Kovabe válasza vicsys hozzászólására (») Szept 23, 2012 /
 
Tudok esetleg egy illetöt ajánlani akitöl én is vettem korrekt munka volt és 5000Ft
(#) icserny válasza vicsys hozzászólására (») Szept 23, 2012 / 1
 
PIC12F629-nél és még néhány más típusnál speciális probléma, hogy a programmemória-terület végén lenni kell egy RETLW utasításnak, ami az órajel frekvencia beállításhoz a gyári kalibrációs értéket szolgáltatja. Ha ezt sikerül kitörölni (pl. bulk erase), vagy felülírni, de ha inicializáláskor mégis ráugrik a program, akkor abból nagy baj lehet (pl. végtelen ciklusban resetre fut a program).
(#) El_Pinyo válasza kormika hozzászólására (») Szept 23, 2012 /
 
Jól értelmezted, viszont egy dologra azért felhívnám a figyelmedet!
Az adott kontroller adatlapjába az elektromos jellemzők szekcióban meg van adva, hogy mekkora lehet az ADC minimális referencia feszültsége. Ezt a korrekt működés érdekében mindenképpen be kell tartani.
(#) kormika válasza El_Pinyo hozzászólására (») Szept 23, 2012 /
 
Akkor jó Megnéztem a datasheetet (amúgy 16F818 lessz ez is, ebből van itthon jópár darab ) és ott azt írták, hogy 0,6 V a minimum referencia, szóval akkor elvileg gond nélkül kell tudnia mérni az akkufeszt, ami olyan 0,9-1,4V lessz kb
A hozzászólás módosítva: Szept 23, 2012
(#) El_Pinyo válasza kormika hozzászólására (») Szept 24, 2012 /
 
Ezt a 0,6 V-os értéket én nem láttam az adatlapban. Amit találtam azt a mellékletekhez feltettem. Ez alapján 5V kontroller táp esetén a (Vref+) -nak legalább 2,5V- nak kell lennie, úgy, hogy a (Vref+) - (Vref- ) különbség legalább 2V legyen.
(#) n_yálastrubadúr válasza foxi63 hozzászólására (») Szept 24, 2012 /
 
Hy! A probléma megoldódott, bár a megoldást csak sejtem. Miután minden engedélyezve van a megszakításhoz, valószínűleg odaragad. Mindent lecsupaszítva vettem észre hogy a mentés makró kikommentelése után rendesen megy a Tmr1 megszakítás. Ami a következő: (természetesen a jelzőbit a belépésnél azonnal törölve van, azután jön a mentés )

  1. movwf   w_save 
  2.         swapf   w_save,f
  3.         swapf   STATUS,w               
  4.         movwf   status_save
  5.         movfw   PCLATH
  6.         movwf   pclath_s


Nemértem mi ezzel a baja de ha ezután egy sorban annyit csinálok hogy:
  1. movfw   INTCON

akkor ki sem kell kommentelnem a mentés makrót. A szervó problémájára eddig nem nagyon volt időm, de ha a Tmr1 megszakítás végzi el nem az igazi. Az rendben van, hogy kilép a szervó által kért ~ 20ms -os időnként, de a szervó nem áll pozícióba egyetlen jel alatt. Ahogy észrevettem változó, de aggasztóan sok kell, miközben a vétel nemtud érdemben működni. Valószínűleg jobban járnék magával a főprogram részével, szerintem sokkal többet lehet ott mint az egymásba ütközhető megszakításokkal. (20 Mhz-es a kristály, így már "odakint nem remeg, csak morog, de engem ez is idegesít.). Ehhez azt kellene tudnom a megszakítás kezdetén, hogy honnan jött és akkor a megszakítás idejét elvenném a pozíció jeléből. De erről elképzelésem a pcl- de nem érzem biztos pontnak ezt.
A hozzászólás módosítva: Szept 24, 2012
(#) Hp41C válasza n_yálastrubadúr hozzászólására (») Szept 24, 2012 /
 
Szia!
Olvastad?
Indítsd el a programodat szimulátorban, kövesd végig a mentést és visszaállítást. Az INTCON regisztert nem kellene megváltoztatni a megszakítás rutinben, hacsak valamelyik engedélyező bitjét (nem a GIE -re gondolok) nem áll szándékodban állítani.
(#) kortez17 hozzászólása Szept 24, 2012 /
 
Sziasztok
az lenne a kérdésem, hogy hobbiszinten imádok bütykölgetni nyákokat, magam tervezem nyomtatom, vasalom, maratom, fúrom és forrasztom
Na ez azért lényeges, mert szeretnék továbblépni, mégpedig PIC-et programozni így a kapcsolási rajz lelkét is én határozom meg
Na a probléma ott van, hogy annyit tudok a pic-ről, hogy PIC
De suliba tanultam szakmaként a PLC programozást és valahogy nem lehetne összehozni a két dolgot??
Halottam, hogy sokban nem különböznek belülről se, programba se, csak ugye magába a program nyelvébe.
na a lényeg, hogy valaki tudna küldeni egy pic programozási alapokból nagyon kezdő szinttől valamit, vagy pedig a fontosabb, hogy plc program alapján nem lehet valahogy átkonvertálni pic nyelvre?
a segítségeket előre is köszönöm
(#) n_yálastrubadúr válasza Hp41C hozzászólására (») Szept 24, 2012 /
 
Átnéztem. Az FSR regisztert ha nem mentem az milyen galibákat okozhat?
A hozzászólás módosítva: Szept 24, 2012
Következő: »»   308 / 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