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   649 / 1210
(#) Hp41C válasza Pali79 hozzászólására (») Márc 24, 2015 /
 
Olvasni kellene a Help -et... A hexadecimális megadás nem embernek való... MpLab / Help / Topics / PIC18 Config Settings
Egy 16F628 esetén pl:
  1. __CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _HS_OSC & _MCLRE_OFF & _LVP_OFF

Egy 18F2620 esetén pl:
  1. CONFIG  OSC = HSPLL
  2. CONFIG  PWRT = ON, WDT = OFF                                    ; BOR disabled, POR enabled; Watchdog disabled
  3. CONFIG  LVP = OFF, DEBUG = OFF                                  ; Debug, LVP STACKRESET disabled
  4. CONFIG  BOREN = OFF,  IESO = OFF, FCMEN = OFF
  5. CONFIG  STVREN = OFF, CCP2MX = PORTC                    ; CCP2 -> RC1
  6. CONFIG  PBADEN = OFF, LPT1OSC = OFF, XINST = OFF
  7. CONFIG  CPB = OFF, CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF, CPD = OFF; No code protection; No data and boot protection
  8. CONFIG  WRTB = OFF, WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF, WRTC = OFF, WRTD = OFF      ; Code writeable; Data, boot, config writeable
  9. CONFIG  EBTRB = OFF, EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF ; Code readable; Boot readable
A hozzászólás módosítva: Márc 24, 2015
(#) Pali79 válasza Hp41C hozzászólására (») Márc 24, 2015 /
 
Ilyet én is találtam, de azt hittem van ennél egyszerűbb, rövidebb is.
(#) lastewer hozzászólása Márc 24, 2015 /
 
Sziasztok.


Küszködök egy Pic16f877a és egy enc28j60 -al , webszervert akarom beüzemelni rajta.Csak hogy ezeket a hibákat írja ki fordításkor ( mikroC pro for pic v6.40 a fordítóm) :
Idézet:

349 324 Undeclared identifier 'ANSEL' in expression httpserver_example.c[
350 324 Undeclared identifier 'C1ON_bit' in expression httpserver_example.c
351 324 Undeclared identifier 'C2ON_bit' in expression httpserver_example.c
351 324 Undeclared identifier 'ANSELH' in expression httpserver_example.c


Ha jól értelmezem , akkor nem találja az ANSEL-t és a többit . Tehát valami más néven lenne ez a parancs?

Mellékeltem a forrást is.
A hozzászólás módosítva: Márc 24, 2015
(#) cross51 válasza lastewer hozzászólására (») Márc 24, 2015 /
 
Az ANSEL és ANSELH regiszter itt nincs itt az ADCON1 PCFG3: PCFG0 bitjeivel tudod állítani, hogy melyik láb analóg illetve digitális. A CxCON meg gondolom a komparátor beállító, de ahogy én a doksiból néztem ebben nincs komparátor.
A hozzászólás módosítva: Márc 24, 2015
(#) lastewer válasza cross51 hozzászólására (») Márc 24, 2015 /
 
Köszönöm. Most meg olyan hibát ír ki , hogy :
Idézet:
„75 305 Inconsistent type”


Erre a sorra :
Idézet:
„const unsigned char httpHeader[] = "HTTP/1.1 200 OK\nContent-type: "; // HTTP header”


Ezt miért?
(#) cross51 válasza lastewer hozzászólására (») Márc 24, 2015 /
 
Csak const char ha jól emlékszem konstans karaktertömböt csa charral lehet tárolni(nem biztos).
(#) lastewer válasza cross51 hozzászólására (») Márc 24, 2015 /
 
Nem jó
(#) lastewer válasza lastewer hozzászólására (») Márc 24, 2015 /
 
Csak simán const
(#) Kapagerenda hozzászólása Márc 24, 2015 /
 
Üdv,
16f887 kontrollerben melyik időzítőt használjam a három közül ha nagypontosságú freki mérést szeretnék elérni? (TMR0,TMR1,TMR2) Eddig a TMR0 át használtam, de mindig más értéket kapok hiába mérem ugyanazt a frekit. Előre is kösz!
(#) Pali79 válasza Kapagerenda hozzászólására (») Márc 25, 2015 /
 
Talán a CCP használata a legkézenfekvőbb, az a Timer1-et használja. Bővebben: Link
A hozzászólás módosítva: Márc 25, 2015
(#) kissi válasza Kapagerenda hozzászólására (») Márc 25, 2015 /
 
Ha mindig más és jelentős az eltérés, akkor ott szoftver és/vagy programszervezési hiba van ( vagy a bemenő freki változik!) !
szerk.: szimulációval sok mindenre rá lehet jönni !
A hozzászólás módosítva: Márc 25, 2015
(#) Pali79 hozzászólása Márc 25, 2015 /
 
Egy egyszerű óra programmal próbálkoznék. A terve az, hogy 32,768 kHz-es kvarcról menne a Timer1 amiből másodpercenként lenne megszakítás, de maga a PIC a saját belső oszcillátorról menne. Az adatlapban úgy olvastam, hogy van erre lehetőség. Jelenleg csak az RC0-án van egy led, ami másodpercenként BTG-vel állapotot vált, hogy lássam megy-e. A gond az, hogy annyira lassan jut el az első felvillanásig, hogy arra gondolok az egész pic erről a 32,768 kHz-es kvarcról megy. Lehet valamit rosszul állítottam be? A kvarc az RA4-5 lábára van kötve kondikkal.
  1. LIST    P=PIC18F14K22                           ; lista megadása
  2.         INCLUDE <P18F14K22.INC>                         ; include fájlok megadása
  3.        
  4.         CONFIG  FOSC = IRC                              ; belső oszcillátor
  5.         CONFIG  WDTEN = OFF                             ; watchdog kikapcsolása
  6.         CONFIG  LVP = OFF                                       ; alacsony feszültségű programozás kikapcsolva
  7.  
  8.         cblock  0x0060
  9.                         mperc
  10.                         perc
  11.                         ora
  12.                         w_save
  13.                         s_save
  14.                         bsr_save
  15.         endc
  16.        
  17.         org             0x0000                                          ; program memória kezdő címe
  18.         nop            
  19.     GOTO    START                                               ;
  20. ;-------------------------Megszakítás------------------------------------------    
  21.         org             0x0008
  22.  
  23.         MOVWF   w_save
  24.         MOVFF   STATUS,s_save                           ; Regiszterek mentése
  25.         MOVFF   BSR,bsr_save
  26.        
  27.         BSF     TMR1H, 7                                        ; beállítjuk, hogy 1 másodpercenként legyen msz.
  28.         BCF     PIR1, TMR1IF                            ; Töröljük a flag bitet
  29.         INCF    mperc, F                                        ; Növeljük a percet
  30.         MOVLW   .59                                             ; 60 másodmerc eltelt?
  31.         CPFSGT  mperc
  32.         GOTO    Kilep                                           ; Nem, kilép
  33.         CLRF    mperc                                           ; Másodperc nullázása
  34.         INCF    perc, F                                         ; Perc növelése
  35.         MOVLW   .59                                             ; 60 perc eltelt?
  36.         CPFSGT  perc
  37.         GOTO    Kilep                                           ; Nem, kilép
  38.         CLRF    perc                                            ; Perc nullázása
  39.         INCF    ora, F                                          ; Óra növelése
  40.         MOVLW   .23                                             ; 24 óra eltelt?
  41.         CPFSGT  ora
  42.         RETURN                                                          ; Nem, kilép
  43.         CLRF    ora                                             ; Óra nullázása
  44.  
  45. Kilep  
  46.         BTG             LATC,0
  47.         MOVFF   bsr_save, BSR                           ; BSR visszaállítása
  48.         MOVF    w_save, W                                       ; WREG visszaállítása
  49.         MOVFF   s_save, STATUS                          ; STATUS visszaállítása
  50.         RETFIE
  51.  
  52.  
  53.  ;--------------------------INICIALIZALAS---------------------------------------
  54. START
  55.         CLRF    TMR1H
  56.         CLRF    TMR1L
  57.         CLRF    LATA                                            ; Kimeneti portok törlése
  58.         CLRF    LATB                                            ;
  59.         CLRF    LATC                                            ;
  60.     CLRF        ANSEL                                           ; Minden bemenet digitális
  61.         MOVLW   B'00111000'                                     ; A port
  62.         MOVWF   TRISA
  63.     CLRF        TRISB                       ; B port minden bitje kimenet
  64.     CLRF        TRISC                       ; C port minden bitje kimenet
  65.         MOVLW   B'01110110'                                     ; oszcillátor frekvenciája 16 MHz
  66.         MOVWF   OSCCON                 
  67.    
  68.  
  69. RTCinit
  70.         BSF     TMR1H, 7                                        ; beállítjuk, hogy 1 másodpercenként legyen msz.
  71.         MOVLW   B'00001111'                             ; Configure for external clock,
  72.         MOVWF   T1CON                                           ; Asynchronous operation, external oscillator
  73.         CLRF    mperc                                           ; Initialize timekeeping registers
  74.         CLRF    perc
  75.         MOVLW   .12
  76.         MOVWF   ora
  77.        
  78.        ;------------------Megszakítás beállítása--------------------------
  79.         MOVLW   B'11000000'                                     ; megszakítás bekapcsolása
  80.         MOVWF   INTCON                                          ;
  81.     BSF     PIE1,TMR1IE                                 ; TMR1IE 1-be állítása  
  82.        
  83.  ;------------------------------------------------------------------------------
  84. GOMB
  85.     nop                     ; Helyben pörgés
  86.     GOTO    GOMB                    
  87.  ;------------------------------------------------------------------------------
  88.  
  89.     END
A hozzászólás módosítva: Márc 25, 2015
(#) Hp41C válasza Pali79 hozzászólására (») Márc 25, 2015 / 1
 
PCON állítása hiányzik, bár lehet, hogy az indulási értéke jó. A
  1. RETURN         ; Nem, kilép

sor nem jó a megszakítási rutinban, helyette a
  1. GOTO    Kilep                                          ; Nem, kilép

vagy
  1. bra    Kilep                                          ; Nem, kilép

kellene.
A hozzászólás módosítva: Márc 25, 2015
(#) Pali79 válasza Hp41C hozzászólására (») Márc 25, 2015 /
 
Igen, a Return egy maradvány még szubrutin korából. De gondot nem okozott még, nem volt bekapcsolva egy órát.
Mi az a PCON? nem találtam ilyet az adatlapban. PIC18F14K22 adatlap
(#) ktamas66 válasza Pali79 hozzászólására (») Márc 25, 2015 / 1
 
Hogy miről jár ellenőrizheted, ha teszel egy led villogtatót a főprogramba időzítéssel. Ha csak az első elindulás lassú (bár nem tudjuk mi az a lassú), lehet lassan rezeg fel az oszcillátor (kvarc és kondi függvénye is).
(#) n_yálastrubadúr hozzászólása Márc 25, 2015 /
 
Sziasztok!
Csináltam egy 18lf14k50 el egy bootloader panlet. Ezen Link en lévő módon van megcsinálva. Ez működik is de annyira sok mindent kell állítganti minden egyes íráskor és nagyon lassan is írja meg. Van a 2.6 vagy a 2.9 Microchip HID Bootloader ezek nem kérdezgetnek mindig meg mindent és gyorsak is, de itt meg az a probléma ha beletöltöm az ő firmware -üket, akkor minden jó felismeri hogy: "attached". De ha írom a kis progimat az már semmit sem csinál. Elvileg ugyanabban a mappában a source code-nál van a hozzá tartozó linker script. Mi lehet a baj?
A hozzászólás módosítva: Márc 25, 2015
(#) icserny válasza n_yálastrubadúr hozzászólására (») Márc 25, 2015 /
 
A HID bootloaderhez nem elég a megfelelő linker script használata, át kell helyezni a RESET és az interrupt vektorokat is 0x1000 eltolással.

A dokumentáció szerint elvileg így kell megadni:
  1. PRAGMA BOOTLOADER LOADER18 0x1000

Jaledit használata esetén menüből is megadható ugyanez (Tools/Environment Options menü JAL lapján). De régen volt, nagyon homályosak az emlékeim...

A JAL fordító és HID bootloader összeházasításakor nálam nem volt teljes az élvezet, így csak lebeszélni tudlak róla! Volt olyan program, ami működött, de volt olyan, ami csak látszólag működött, valójában nem azt csinálta, amit kellett volna (szervo vezérlés). Ha PICkit2-vel égettem ugyanezt a programot (de bootloader használata nélkül újrafordítva), akkor viszont kifogástalanul működött. Természetesen 3,3 V-on (is) működő PICkit kellett hozzá...
A hozzászólás módosítva: Márc 25, 2015
(#) lastewer hozzászólása Márc 25, 2015 /
 
Sziasztok!

Van egy PIC16f877a - m és egy ENC28j60 -as ethernet modulom , szeretném összekötni őket és egy webszervert tenni a picre. Találtam egy "elvileg kész" megoldást , amit be is égettem a mikrovezérlőmbe , de mikor pingelném azt írja , hogy a célállomás nem elérhető.

Az enc modulon , az utp ledjei világítanak ha össze van kötve a pc-vel.(Az enc egy az egybe megy a pc háló kártyába)
A kapcsolási rajzot és a forrást mellékeltem.

Hex fájl és a forrás itt

Valaki esetleg ötlet ?
(#) n_yálastrubadúr hozzászólása Márc 25, 2015 /
 
Mplab 8.92- t használok. És eddig csak ebben amit fentebb az oldalról szedtem tudok beletenni úgy hex-file-t hogy el is indul. Amit mondtál most ebben a kis programban is tapasztaltam, nem néztem át hogy miért, de ha simán égettem a tmr ekkel való késleltetés ment. A bootloader-ből pedig nem. De amit akkor kérdeznék: milyen boootloader-t használja a 18lf14k50 emhez? Amihez minden megvan és jól is működik és pl a 2.6a vagy a 2.9a val gyorsan és jól meg tudom írni. Ezzel ami most van, bajom az is hogy leválaszt gombokat nyomogat, még a 2.6a meg a 2.9 ezeket automatikusan csinálná. azért erőltetném ezt gyorsan mert vissza kell adnom mostmár a pk2-t, de nem akarok programozás1 nélkül maradni addig is
A hozzászólás módosítva: Márc 25, 2015
(#) icserny válasza lastewer hozzászólására (») Márc 25, 2015 /
 
Egy ötlet: Ha a PC kártyája esetleg nem tudja az auto MDI-X-et, akkor vagy UTP cross-kábel kell (a szokásos patch kábel helyett), vagy egy routerbe csatlakoztasd a kártyát és a az ENC28J60-at!
(#) icserny válasza n_yálastrubadúr hozzászólására (») Márc 25, 2015 /
 
MPLAB 8.x és C18 fordító esetén sikeresen használtam a HID bootloadert (a gyári HID bootlader HEX-en apróbb javításokat kellett eszközölnöm, mert pl. a BORV nem volt bekapcsolva!).
Cikk: USB-UART átalakító PIC18F14K50 mikrovezérlővel (Ne tévesszen meg a cím! Nem csak erre lehet használni, hanem fejlesztőkártyaként is...)
Terjedelmesebb tananyag: A PICCOLO projekt

JAL nyelvű fejlesztéshez célszerűbb egy olcsó PICkit klónt beszerezni...
(#) n_yálastrubadúr válasza icserny hozzászólására (») Márc 25, 2015 /
 
Nem fejlesztek benne. Csak nekem ez még új aztán próbálkoztam mindenhonnan. Megvan a Microchip össze elérhető bootloader-je. És fel is ismeri a gép is hogy 18f14k50 Bootloader. És a a Microchip 2.6 HID Bootloader is felimeri meg a 2.9a is. (persze akkor nem ugyanez a firmware van benne) . De valamit sztem lehagyok mert az én programom ha beleírom annak nyoma sincs hogy menne. Nem tudom mit ronthatok el. Ennyi van összesen a projektben most.
(#) n_yálastrubadúr válasza icserny hozzászólására (») Márc 25, 2015 /
 
Na igen! Amit te szerkesztettél is kipróbáltam pár órája. És itt is ki kell húzni sajnos. De ebben sem ment a program. Ez ami most van bootloader ez automatikusan újra csatlakozik. Bele is írom meg sikeres is a verify de el nem indul semmi.
(#) Hp41C válasza Pali79 hozzászólására (») Márc 25, 2015 /
 
Sajt(ó)hiba. RCON.
(#) lastewer válasza icserny hozzászólására (») Márc 25, 2015 /
 
Így is próbáltam , ugyan az a jelenség .
(#) icserny válasza n_yálastrubadúr hozzászólására (») Márc 25, 2015 /
 
A mellékelt programot próbáld meg betölteni HID bootloaderrel! (A C port lábait "villogtatja")
(#) n_yálastrubadúr válasza icserny hozzászólására (») Márc 25, 2015 /
 
Sajnos nem csinál semmi. Mi lehet a baj? Nem! bocsánat megy! Azzal amit te javasolsz. De ezt mindig le kell választani
A hozzászólás módosítva: Márc 25, 2015
(#) icserny válasza n_yálastrubadúr hozzászólására (») Márc 25, 2015 /
 
Nem tudom, hogy jól értelek-e, de "leválasztani" azért kell, mert az MCLR lábat használjuk annak jelzésére, hogy bootloader módba akarunk-e lépni (ezt a Microchip találta ki a Low Pin Count USB Starter KIT-hez, a korlátozott lábszám miatt). Ha föl tudsz tenni a kártyára egy kapcsolót, vagy bontó nyomógombot, ami megszakítja a tápfeszültséget, akkor sokkal kényelmesebb...

További hír: a te programod is működik: az újonnan létrehozott üres projekthez hozzáadtam az általad feltöltött main.c és a rm18F14K50.lkr állományokat. Igen, a linker állományt is hozzá kell adni a projekthez, különben nem azt fogja használni, hanem az alapértelmezettet, ami bootloaderhaz nem jó.
(#) n_yálastrubadúr válasza icserny hozzászólására (») Márc 25, 2015 /
 
Igen ez így van és hülye is vagyok mert ezzel a bootloaderrel megy az én programom is. Szóval lehet mostmár totál hülye vagyok, de van olyan bootloader hogy amit nem kell kihúzni az usb ből mert meg van oldva szoftveresen. De inkább belinkelem azt az egészet. Ennélh ha a software-ben nyomok egy restet-et akkor leválaszt de aztán vissaz is áll nem kell kihúzni.
(#) n_yálastrubadúr hozzászólása Márc 25, 2015 /
 
Ezzel úgy működik, hogy bedugom gombnyomás nélkül és akkor "attached". Aztán beleírom és ha leresetelem akkor a windows kiadja a leválasztó hangót majd ahogy lefutott a zöld csík hogy leválasztotta aztán újra attached. De kipróbáltam ha leveszem az USB-ról és adok neki tápot, akkor sem megy.
Következő: »»   649 / 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