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   999 / 1207
(#) Hp41C válasza f2f2 hozzászólására (») Nov 29, 2017 /
 
F:\X_microchip\XC8
Idézet:
„A megadott nevet (F:\X_microchip\XC8) a rendszer nem ismeri fel
belső vagy külső parancsként, futtatható programként vagy kötegfájlként.”

F: ???? --- Én a jó, régen megszokott, bevált C: -re raktam...
A hozzászólás módosítva: Nov 29, 2017
(#) nedudgi válasza f2f2 hozzászólására (») Nov 29, 2017 /
 
A Microchip gyakori hibája, hogy keveri az abszolút, és relatív elérési utak használatát. A keretrendszerben érdemes átnézni, hogy az alapértelmezettől eltérő elérési utat sikerült-e beállítania mindenhol.
Ha megoldható, érdemes ráhagyni, mit, hova telepítsen, úgy lesz a legnagyobb esélyed, hogy működjön ez a katyvasz.
A hozzászólás módosítva: Nov 29, 2017
(#) f2f2 válasza Hp41C hozzászólására (») Nov 29, 2017 /
 
Kösszi nektek
F:\X_microchip\XC8
ilyen mappám nincs is
telepítéskor előkészítettem e mappa nevet
F:\X_microchip\XC8(v144)
A regeditben nézzem át vagy valahol a MPLAB-IDE program katyvaszban ?
(#) benjami válasza f2f2 hozzászólására (») Nov 29, 2017 /
 
Tools/Options, Embedded/Build Tools fül, a Toolchain részen tudsz a keretrendszerhez fordítóprogramokat hozzáadni és eltávolítani.
(#) Bell válasza benjami hozzászólására (») Nov 29, 2017 /
 
Megvan a hiba. Azt hiszem a fejlécet rontottam el.
Az errata-ban javasolt #include <xc.inc> fejlécet használom.
Ezzel helyére került a TBLRD engedélyezése, sőt most már a globális változókat is inicializálja.
Mégegyszer nagyon köszönöm a segítséged!
(#) Bell válasza Hp41C hozzászólására (») Nov 29, 2017 /
 
Köszönöm az észrevételt, én is hiányoltam a forrásból a szükséges részeket.
Benjami fórumtárs észrevételei és javaslata alapján megoldódott a konstansok és a változók inicializálása is.
(#) Bell válasza Hp41C hozzászólására (») Nov 29, 2017 /
 
Ezzel az MPLABX-el és XC8-al a pic18f25k40 csak akkor működik jól, ha a ROM tartalma így kezdődik:
  1. Line      Address       Opcode      Label                   DisAssy                
  2.     1        0000          EF02                    GOTO 0x4                              
  3.     2        0002          F000                    NOP                                    
  4.     3        0004          8E81                    BSF NVMCON1, 7, ACCESS                
  5.     4        0006          EF05                    GOTO 0xA                              
  6.     5        0008          F000                    NOP                                    
  7.     6        000A          EF82                    GOTO 0x904
(#) benjami válasza Bell hozzászólására (») Nov 29, 2017 /
 
Azért majd kíváncsi leszek, hogyan fogja megcifrázni, ha a megszakítások is használatba kerülnek. Akkor ugye a 0x08 és 0x18 címekre azok kell hogy kerüljenek.
Más tészta: vajon rá lehet venni a linkert arra, hogy ne végétől kezdje el feltölteni a programmemóriát. hanem az elejétől?
(#) f2f2 válasza benjami hozzászólására (») Nov 29, 2017 /
 
Idézet:
„Tools/Options, Embedded/Build Tools fül”

Ahol mondod Itt ez áll F:\X_microchip\XC8(v144) tehát jó
regeditben sincs ilyen rosszul.

egyébként el tudnék képzeli olyan microchip program fejlesztőt,
aminél elindítám a PIC..chip fejlesztő programot és abban semmi mást nem tudnék
csinálni csak arra az 1 chipre programot írni mindennemű felesleges dolgokat mellőzve.
És ami arra a chipre szájra lenne szabva. Így általános fejlesztéskor az összes PIC re külön fejlesztő program exe készülne.
Így ránézve a MPLAB ra eléggé az jön le, hogy sok időt kellene vele gyakorolni,
illetve könnyen állíthatjuk be rosszul és elmegy a kedvünk tőle.
Hozzátéve én pár programot írtam eddig saját technikával a gép nyelvéhez
idomított programommal, ehhez képest így C ből macera.
(#) f2f2 válasza Bell hozzászólására (») Nov 29, 2017 /
 
De a Goto 0x904 helyett lehetne Goto 0xC is ha ott kezdődik a programunk ?
(#) benjami válasza f2f2 hozzászólására (») Nov 29, 2017 /
 
A fordító bin könyvtárát kell megadni, ahol az exe-k vannak. De a 'scan for build tools' gombra is elvileg meg kellene találnia.
A hozzászólás módosítva: Nov 29, 2017
(#) f2f2 válasza benjami hozzászólására (») Nov 29, 2017 /
 
Igen de eszerint jó és a fordítási fájlokat megcsinálta.
Nem értem miért írja Build nél, hogy nincs Xc8

XC8_pr.PNG
    
(#) norbiv8 hozzászólása Nov 29, 2017 /
 
Sziasztok! A csatolt képen látható módon összeköthetem PIC18Fx (mester) és PIC16Fx (szolgák) soros portjait?
(#) Tasznka válasza norbiv8 hozzászólására (») Nov 29, 2017 /
 
A két slave TX-e így kinyírja egymást,a legrosszabb esetben is kell oda 1-1 ellenállás a TX-ekre,amin keresztül elviselik az ellentétes tápot.jobb lenne oda valami kis illesztő.
A hozzászólás módosítva: Nov 29, 2017
(#) Bell válasza benjami hozzászólására (») Nov 29, 2017 /
 
Nem kell semmit tenni, mert ha nem adok meg kezdőcímet semminek, akkor a megszakítás címeire simán befordítja, ami odavaló.
Ha mindkét megszakítás él, akkor csak egy GOTO kerül az adott címre a valódi megszakítási rutinra. A RETFIE után az első utasítás a belépési pont, ahová 0-ról ugrik. Az a BSF NVCON1,7-el kezdődik.
A megszakítások után a ROM elejéről kezdve töltődik fel a program többi része, míg a nagyobb konstans tömbök a felső részre kerülnek.
A példában csak azért szedtem külön a programot és az adatokat, hogy szemléletesebb legyen, ne kelljen keresgélni mi hol van.
Úgy tudom, akár minden függvényt más-más címre lehetne rakni, de akkor figyelni kéne a megszakításokra, az átlapolódásokra és nem lehet ugyanazon a lapon program és adat.
Fölösleges macera lenne, így inkább megbízom a fordító belső logikájában, amíg nincs vele gond.
(#) benjami válasza norbiv8 hozzászólására (») Nov 29, 2017 /
 
Mivel nem nyitott kollektoros (draines) a TX kimenet, direkt nem köthető össze. Legegyszerűbben úgy oldható meg, ha a master RX-re kötsz egy felhúzó ellenállást a két slave TX kimeneteire pedig egy-egy soros diódát. Arról meg a szoftverben kell gondoskodni, hogy a két slave ne akarjon egyszerre beszélni, mert nagy lesz a hangzavar.
(#) Bell válasza f2f2 hozzászólására (») Nov 29, 2017 /
 
Ha nem adok meg címet, akkor logikusan minden a helyére kerül.
(#) Hp41C válasza benjami hozzászólására (») Nov 30, 2017 /
 
A megoldás attól függ, hogy milyen típusúak a slave egységek. Vannak olyan PIC típusok, amelyiken a Tx lábhoz tartozó TRIS bitet 0 -ra kell állítani és vannak olyanok, ahol a (M)SSI engedélyezése már kimenetté állítja a Tx lábat. Az előbbieknél megoldható, hogy mindig csak az engedélyezi a Tx táb meghajtását, amelyik adni akar. Az adatforgalmat a master vezérli, egy időben csak egy slave küldhet választ.
Az utóbbiaknál inkább diódákat javaslok és egy felhúzó ellenállást a master Rx lábához. Az ellenállásokkal egy feszültség osztó jönne létre, az aktuálisan adó slave és a többi soros ellenállásain keresztül, ami elrontja a szinteket.
Ez a diódás módszer alkalmazható az első esetbe is.
A hozzászólás módosítva: Nov 30, 2017
(#) norbiv8 válasza Hp41C hozzászólására (») Nov 30, 2017 /
 
Köszönöm mindenkinek a hozzászólást, az adott típusban EUSART modul van (16F1579).
Azt írja hogy "SPEN: Serial Port Enable bit
1 = Serial port enabled (configures RX/DT and TX/CK pins as serial port pins)
0 = Serial port disabled (held in Reset)".

Szóval ha kikapcsolom az SPEN-t akkor vétel sem lesz. A diódás megoldás tetszik, az pedig egyértelmű, hogy egyszerre csak egy szolga válaszol.
A hozzászólás módosítva: Nov 30, 2017
(#) icserny hozzászólása Dec 1, 2017 /
 
MPLB X frissítése hogyan történik?
Le kell szedni mindent (IDE, XC fordítók) és újrarakni az egészet, vagy pedig simán rá lehet telepíteni az előző verzióra a letöltött MPLABX-v4.05-windows-installer.exe állományt?
(#) Bell válasza icserny hozzászólására (») Dec 1, 2017 /
 
Nemrég frissítettem, nem szedtem le semmit, nincs vele gond.
A korábbi fordítók megmaradtak, ott sorakoznak egymás alatt és választhatók.
A hozzászólás módosítva: Dec 1, 2017
(#) bbb válasza icserny hozzászólására (») Dec 1, 2017 /
 
Telepítsd rá nyugodtan. Az XC8-cal viszont óvatosan frissítgess, ha használod a periferial library-t, mert úgy döntöttek kiveszik belőle és helyette ezt a pin configurator bigyót rakják be (ami persze régebbi pic-kel nem működik). Én a pic18f25j50-el jártam így. gondoltam frissítem az XC8-at, s a legújabb libet is rárakom, aztán KOPP... Vissza ahhoz a verzióhoz, ami még támogatja, s jééé, megy
(#) icserny válasza bbb hozzászólására (») Dec 1, 2017 /
 
Köszönöm a tanácsokat mindenkinek! Rátelepítettem az MPLABX v4.05-öt, de a régi verziót nem szedte le automatikusan, nekem kellett az MPLABX 4.01 uninstall-t kézzel indítani.

A felhasználói könyvtárban az AppData/local és AppData/roaming mappában is takarítani kellett utána. Takarítás előtt célszerű elindítani az újonnan telepített programot, hogy importálhassa a régi beállításait.
(#) sonajkniz hozzászólása Dec 1, 2017 /
 
Sziasztok!
Egy kis segítséget szeretnék kérni.
PIC18F14K22-es frekvenciáját szeretném feltornászni PLL-el.
De úgy látszik, valamit elnézek, mert stabilan ottmarad 16MHz-en.
Pedig 64MHz-t kellene tudnia.
(#) bbalazs_ válasza sonajkniz hozzászólására (») Dec 1, 2017 /
 
PLLEN be van kapcsolva?
Csatold be a progit.
(#) sonajkniz válasza bbalazs_ hozzászólására (») Dec 1, 2017 /
 
Szia!
Egy ilyen LED gyűrűt szeretnék működésre bírni.Ennek a proginak kellene működtetnie, de nem elég az órajel.
  1. ;
  2.  
  3.     LIST        P=PIC18F14K22                           ; lista megadása
  4.     INCLUDE     <P18F14K22.INC>                         ; includde fájlok megadása
  5.     RADIX       hex                                                     ; alapértelmezet számrendszer megadása
  6.  
  7.     CONFIG      FOSC = IRC              ; bels? oszcillátor
  8.     CONFIG      PLLEN = ON    
  9.     CONFIG      WDTEN = OFF             ; watchdog bekapcsolása
  10.     CONFIG      LVP = OFF                       ; alacsony feszültség? programozás kikapcsolva
  11.     CONFIG  MCLRE = OFF         ; RA3 bemenetkénti használatra állítása
  12.  
  13.     CBLOCK      0x0020
  14.     ADATBYTE
  15.     CIKLUS
  16.     KIVARAS
  17.     ENDC
  18.        
  19.        
  20.     org     0x0000                                              ; program memória kezd? címe
  21.     nop
  22.     CALL    INICIALIZALAS
  23.     BSF     LATA,1
  24. MAIN   
  25.     CALL    GOMB
  26.     MOVLW   LOW GYURU_1
  27.     MOVWF   TBLPTRL
  28.     MOVLW   HIGH GYURU_1
  29.     MOVWF   TBLPTRH
  30.     CLRF    TBLPTRU
  31.     CALL    TABLA_OLVAS
  32.     BSF     LATA,1
  33.     CALL    GOMB       
  34.     MOVLW   LOW GYURU_2
  35.     MOVWF   TBLPTRL
  36.     MOVLW   HIGH GYURU_2
  37.     MOVWF   TBLPTRH
  38.     CLRF    TBLPTRU
  39.     CALL    TABLA_OLVAS
  40.     BSF     LATA,1
  41.     CALL    GOMB
  42.     MOVLW   LOW GYURU_3
  43.     MOVWF   TBLPTRL
  44.     MOVLW   HIGH GYURU_3
  45.     MOVWF   TBLPTRH
  46.     CLRF    TBLPTRU
  47.     CALL    TABLA_OLVAS
  48.     BSF     LATA,1
  49.     GOTO    MAIN
  50.  
  51. ;-------------------------------------------------------------------------------
  52. INICIALIZALAS
  53.     CLRF    LATA                ; kimeneti portok törlése
  54.     CLRF    LATB                                       
  55.     CLRF    LATC                                       
  56.     CLRF    ANSEL
  57.     CLRF    ANSELH
  58.     MOVLW   B'00111100'         ; A port
  59.     MOVWF   TRISA
  60.     MOVLW   B'00000000'         ; B port kimenet
  61.     MOVWF   TRISB
  62.     MOVLW   B'00000000'         ; C port kimenet
  63.     MOVWF   TRISC
  64.     MOVLW   B'01110010'         ; oszcillátor frekvenciája <4:6>
  65.     MOVWF   OSCCON              ; 111 = 16, 110 = 8, 101 = 4, 100 = 2 MHz
  66.     CLRF    OSCCON2
  67.     MOVLW   B'01000000'
  68.     MOVWF   OSCTUNE
  69.     RETURN
  70. ;-------------------------------------------------------------------------------
  71. GOMB
  72.     BTG     LATA,0    
  73.     BTFSC   PORTA,2
  74.     GOTO    GOMB
  75. GOMB1
  76.     BTFSS   PORTA,2
  77.     CLRF    KIVARAS
  78.     INCFSZ  KIVARAS
  79.     GOTO    GOMB1
  80.     MOVLW   D'4'
  81.     MOVWF   CIKLUS
  82.     BCF     LATA,1
  83. RING_RESET    
  84.     MOVLW   D'66'
  85.     MOVWF   KIVARAS    
  86.     DECFSZ  KIVARAS
  87.     GOTO    $-2
  88.     DECFSZ  CIKLUS
  89.     GOTO    RING_RESET
  90.     RETURN
  91. ;-------------------------------------------------------------------------------    
  92. TABLA_OLVAS
  93.     TBLRD*+
  94.     MOVFF   TABLAT,ADATBYTE
  95.     MOVF    ADATBYTE,F
  96.     BTFSC   STATUS,Z
  97.     RETURN
  98.     CALL    KULD_ADAT
  99.     GOTO    TABLA_OLVAS    
  100. ;-------------------------------------------------------------------------------
  101. KULD_ADAT
  102.     MOVLW   D'8'
  103. KULD_ADAT_1    
  104.     BSF     LATA,1
  105.     NOP
  106.     NOP
  107.     NOP
  108.     RRCF    ADATBYTE
  109.     BTFSS   STATUS,C
  110.     BCF     LATA,1
  111.     NOP
  112.     NOP
  113.     NOP
  114.     NOP
  115.     BCF     LATA,1
  116.     DECFSZ  WREG
  117.     GOTO    KULD_ADAT_1
  118.     RETURN
  119. ;-------------------------------------------------------------------------------
  120. GYURU_1
  121.     DB  0x70,0x61,0x67,0x65,0x20,0x6C,0x00
  122. GYURU_2
  123.     DB  0x6C,0x31,0x2E,0x70,0x30,0x2E,0x70,0x69,0x63,0x00
  124. GYURU_3
  125.     DB  0x63,0x6C,0x69,0x63,0x6B,0x20,0x6B,0x2C,0x31,0x00
  126.    
  127.     END
A hozzászólás módosítva: Dec 1, 2017
(#) ktamas66 válasza sonajkniz hozzászólására (») Dec 1, 2017 / 1
 
Próbáld ki BSF OSCCON,6-tal a MOVWF helyett.
(#) bbalazs_ válasza sonajkniz hozzászólására (») Dec 2, 2017 / 1
 
Mintha arra emlekeznek, hogy valami furcsasag volt az osccon ket also bitnel,
nem 1x, hanem 00 kellene. Probald ki mindenesetre.
(#) nedudgi válasza sonajkniz hozzászólására (») Dec 2, 2017 / 1
 
Primary osc. -ot állítsd be az internal helyett. Most nincs időm utánanézni, de volt egy hasonló problémám pár éve.
(#) sonajkniz hozzászólása Dec 2, 2017 /
 
Köszönöm mindenkinek a segítő szándékot.
Valóban OSCCON két alsó bitjével volt probléma.
00-ra állítva mindjárt működött. A LED gyűrű is produkál működést, bár még nem pontosan azt, amit várok tőle, de ígéretes.
Még egyszer köszönöm.
Következő: »»   999 / 1207
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