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   926 / 1207
(#) slimcolt hozzászólása Ápr 13, 2017 /
 
Sziasztok,

Most kezdtem el ismerkedni a PIC-ek lelkivilágával, szeretném megtanulni a fejlesztésüket C nyelven, ezért letöltöttem az MPLAB X IDE fejlesztői környezetet. Egy PIC12F1840-en szeretnék gyakorolni.
Már utána néztem néhány dolognak, de sajna lassú is a felfogásom és szeretnék segítséget kérni tőletek!

Egy egyszerű LED villogtatással szeretném kezdeni, de legelőször a konfigurációs biteket szeretném beállítani.
A PIC belső órajelét szeretném használni, így elvileg I/O lábként használhatom a CLKIN lábat.
Ezt be is állítottam. De mi a teendő még itt? Pl ha én 4Mhzes órajelet szeretnék beállítani az INTOSC-n?
Az adatlap szerint így kellene beállítani(61. oldal), de ez kicsit sötét még nekem. Tudnátok segíteni?

Köszönöm!
(#) don_peter válasza slimcolt hozzászólására (») Ápr 13, 2017 / 1
 
Így lesz 4MHz-ed.
  1. OSCCON = 0b01101010;
Adatlappal hasonítsd össze a biteket.
Belső órajel van kiválasztva, PLL kikapcsolva, 4MHz kiválasztva..
A hozzászólás módosítva: Ápr 13, 2017
(#) nagym6 válasza slimcolt hozzászólására (») Ápr 13, 2017 / 1
 
Konfigurációs beállítás a 42-43 oldal. 43 oldalon ezt "100 = INTOSC oscillator: I/O function on CLKIN pin" kell beállítani.
A 61 oldalról ezt kell beírni a program elejére "OSCCON" regiszterbe: "01101010".
Ezekből tevődik össze:
"0 = 4x PLL is disabled",
"1101 = 4 MHz HF",
"Unimplemented: Read as ‘ 0 ’",
"1x = Internal oscillator block"
Ha jól értelmezem, menet közben is változtatható programból. Próba megmondja.
(#) attika válasza Udvari Zsombor hozzászólására (») Ápr 13, 2017 /
 
Fordítsd le a kódodat és rögtön kiderül, hogy duplán fog e törölni vagy sem.
A fordításnál ha hiba van akkor azt ki fogja írni a fordító program, és ha nem vagy vele tisztába akkor kérdezz, esetleg bemásolhatod azt is, hogy milyen hibákat dobott a fordító.
(#) Udvari Zsombor válasza attika hozzászólására (») Ápr 13, 2017 /
 
Jó, már csak egy fordítóprogram kellene...
(#) Hp41C válasza Udvari Zsombor hozzászólására (») Ápr 13, 2017 /
 
Cipőt a cipőboltból jeligére: Micro C for PIC -et a Mikroelektronika -tól. Demo változat ingyenes (2k szó kód).
A hozzászólás módosítva: Ápr 13, 2017
(#) slimcolt válasza nagym6 hozzászólására (») Ápr 13, 2017 /
 
Köszönöm nektek a segítséget!

Még valamit szeretnék tisztázni:
Amikor új projektet kezdek, bal oldalt a mappáknak milyen szerepük van? Pl mik kerülnek a Header files-ba, stb?
A Source file-ban létrehoztam egy main C fájlt. Most itt tartok:

  1. #include <xc.h>
  2.  
  3. // CONFIG1
  4. #pragma config FOSC = INTOSC    // Oscillator Selection (INTOSC oscillator: I/O function on CLKIN pin)
  5. #pragma config WDTE = OFF       // Watchdog Timer Enable (WDT disabled)
  6. #pragma config PWRTE = ON       // Power-up Timer Enable (PWRT enabled)
  7. #pragma config MCLRE = ON       // MCLR Pin Function Select (MCLR/VPP pin function is MCLR)
  8. #pragma config CP = OFF         // Flash Program Memory Code Protection (Program memory code protection is disabled)
  9. #pragma config CPD = OFF        // Data Memory Code Protection (Data memory code protection is disabled)
  10. #pragma config BOREN = ON       // Brown-out Reset Enable (Brown-out Reset enabled)
  11. #pragma config CLKOUTEN = OFF   // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)
  12. #pragma config IESO = ON        // Internal/External Switchover (Internal/External Switchover mode is enabled)
  13. #pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is enabled)
  14.  
  15. // CONFIG2
  16. #pragma config WRT = OFF        // Flash Memory Self-Write Protection (Write protection off)
  17. #pragma config PLLEN = OFF      // PLL Enable (4x PLL disabled)
  18. #pragma config STVREN = ON      // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset)
  19. #pragma config BORV = LO        // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
  20. #pragma config LVP = ON         // Low-Voltage Programming Enable (Low-voltage programming enabled)
  21.  
  22. // #pragma config statements should precede project file includes.
  23. // Use project enums instead of #define for ON and OFF.
  24.  
  25. void main() {
  26.    
  27.     OSCCON = 0b01101010; // Belső oszcillátor 4Mhz-re beállítva.
  28.    
  29.     return;
  30. }


Ez a konfigurációs beállítás micsoda?:

"Stack Overflow/Underflow Reset Enable"
Ezt a verem működését nem igazán értem. Hogy fordulhat elő hogy pl a túlcsordulás reset-et generál? Jaj úgy érzem nagyon foglak titeket fárasztani!
(#) attika válasza Hp41C hozzászólására (») Ápr 13, 2017 /
 
Hányszor be lett ez is neki linkelve
Holnap megint meg fogja kérdezni, hogy milyen fordítót használjon.
(#) icserny válasza slimcolt hozzászólására (») Ápr 13, 2017 /
 
Idézet:
„Hogy fordulhat elő hogy pl a túlcsordulás reset-et generál?”
Bizonyára van egy erre kialakított áramkör a mikrovezérlőben, ami a verem túlcsordulása vagy alulcsordulása esetén reseteli a mikrovezérlőt - már amennyiben engedélyezed ezt az opciót. Nem öröm az újraindulás, de még mindig jobb, mintha a program egy veremtár túlcsordulás miatt elszabadulna és előre nem látható módon kezdene viselkedni.

Az adatlapban van egy külön alfejezet a konfigurációs bitekről, amelyekkel - kapcsolókhoz hasonlóan - be lehet állítani, hogy hogyan viselkedjen a mikrovezérlő.
A hozzászólás módosítva: Ápr 13, 2017
(#) don_peter válasza slimcolt hozzászólására (») Ápr 14, 2017 /
 
Érdemes kicsit túl kommentelni az első kódjaid, mert ahogy lépkedsz előre úgy fogod felejteni az apróbb nem feljegyzett részleteket. (aztán jöhet az adatlap és keresgélés)
pl.:
  1. OSCCON = 0b01101010; // PLL OFF, belső oszcillátor ON, 4Mhz
(#) Udvari Zsombor válasza Hp41C hozzászólására (») Ápr 14, 2017 /
 
A Micro C PRO for PIC tartalmaz beépített hex fordítót?
(#) Pali79 válasza Udvari Zsombor hozzászólására (») Ápr 14, 2017 /
 
Más sincs benne csak az....
(#) Udvari Zsombor válasza Pali79 hozzászólására (») Ápr 14, 2017 /
 
De most komolyan! Van-e benne?
(#) Pali79 válasza Udvari Zsombor hozzászólására (») Ápr 14, 2017 /
 
Persze, hogy van, de oda is van írva alá!
(#) kriszrap válasza kriszrap hozzászólására (») Ápr 14, 2017 /
 
Na sikerült megcsinálnom korlátozo ellenálások ,shiftregiszterhez a PNP tranzisztorok.
De a pic18f46k22 RC2 RC3 lábat nem tudom bemenetre állítani csak kimenetre ez lehetséges a C nyelvű kod.
  1. TRISC.TRISC2=1;
  2.     TRISC.TRISC3=1;

És igy a PNP tranyo nem nyit ki
Ötlet?
A hozzászólás módosítva: Ápr 14, 2017
(#) kriszrap válasza kriszrap hozzászólására (») Ápr 14, 2017 /
 
Természetesen 1k bázis ellenállást odaraktam
(#) sonajkniz válasza kriszrap hozzászólására (») Ápr 14, 2017 /
 
Na ennek fussunk neki még egyszer! Azért nem nyit ki a tranzisztor, mert nem tudod bemenetre állítani a PIC valamelyik lábát? Ez a láb vezérelné a tranzisztort?
(#) kriszrap hozzászólása Ápr 14, 2017 /
 
Na beallitottam a labat bemenetnem hogy azt engedelyeztem a labat es semmit se csinalt .Multimeterrel ramert ugy hogy az egyil fele a pluszon a masik pedig a pic bemeneti laban de semmit nem mertem.. Aztan kimenetre allitottam es akkor mertem az 5v ott. Sajnos igy a pnp tranziztort nem tudom kinyitni.
(#) sonajkniz hozzászólása Ápr 14, 2017 /
 
Ne meríts le!
Ha a láb bemenet, a tranzisztor pedig PNP és a pozitívhoz képest nem mérsz semmit, az !
Ha a láb kimenet, és a pozitívhoz képest mérsz 5V-ot, akkor kinyitottad a tranzisztort, mivel a láb negatívon van! Ha pedig a negatívhoz képest mérsz a lábon 5V-ot, amikor kimenetre állítod, akkor kapcsold le a lábat! Azaz LATC,3=0.
(#) slimcolt hozzászólása Ápr 14, 2017 /
 
Sziasztok,

Kezdőként a változók deklarációjánál tartok, de az MPLAB X bal oldal a sor mellett, hibát jelez:
"Unable to resorve identifier"
Tuti valamit elbaltázok.... Ötlet?
(#) Udvari Zsombor válasza Pali79 hozzászólására (») Ápr 14, 2017 /
 
Most vettem észre, hogy az USB programozón a foglalat mellett van egy PIC16F628A! Mi lehet a célja?
(#) kriszrap válasza sonajkniz hozzászólására (») Ápr 14, 2017 /
 
Hihetetlen sikerult ))
(#) Udvari Zsombor válasza Pali79 hozzászólására (») Ápr 14, 2017 /
 
A "Device Clock" hány MHz legyen PIC16F88 esetén? Jó az alap 8.000000 MHz, amit felajánl?
A hozzászólás módosítva: Ápr 14, 2017
(#) attika hozzászólása Ápr 14, 2017 /
 
Sziasztok.
Pickit3 programból való kilépésnél ezt az üzenetet kapom.
Hibátlanul felprogramozza a Pic-et és csak kilépésnél dobja ezt a hibát.
Lehet az a baj, hogy fent van a PK2 és a PK3 SW is a gépen?

pk3.jpg
    
(#) Udvari Zsombor hozzászólása Ápr 14, 2017 /
 
A következő sorokban talált ERRORokat a Micro C PRO for PIC program:
  1. sbit LCD_RS_Direction at TRISRA0_Bit;
  2. sbit LCD_E_Direction at TRISRA1_Bit;
  3. sbit LCD_D4_Direction at TRISRB4_Bit;
  4. sbit LCD_D5_Direction at TRISRB5_Bit;
Mi nem stimmel?
(#) Bakman válasza attika hozzászólására (») Ápr 14, 2017 / 1
 
A hibaüzenet szerint a jelzett fájlhoz nem fér hozzá a program (már ha létezik a fájl).
(#) attika válasza Bakman hozzászólására (») Ápr 14, 2017 /
 
A program mappájába nincs ini fájl, ilyenkor mit lehet csinálni?
Hibát nem okoz mert hibátlanul felprogramoztam egy Pic18f26k22-es pic-et, pont a te programoddal
Csak a programból való kilépésnél csinálja ezt, ne foglalkozzak vele vagy valahonnan le lehet tölteni ezt az ini fájlt?
(#) nagym6 válasza Udvari Zsombor hozzászólására (») Ápr 14, 2017 /
 
Nézd meg a Mikroc súgóban az LCD utasítások, illetve LCD init szintaktikáját, egyből kiderül milyen formában kell beírni. Súgó keresőbe írd "LCD" keresőszót. Lehet sokkal több hiba is, végignézted a hibalistát?
Mi a hibaüzenet?
A hozzászólás módosítva: Ápr 14, 2017
(#) pajti2 válasza slimcolt hozzászólására (») Ápr 14, 2017 /
 
Angolul sajnos muszáj megtanulni legalább műszaki szövegértés szintjéig. Egy változót más néven akartál használni, mint ahogyan létrehoztad. Ha hibába ütközöl, legközelebb a fordító kimenetéről a pontos üzenetet copy / paste azzal a program részlettel együtt, amire hivatkozott (írja a sor számát). A hiba üzeneteknél alap, hogy mindig a legelső hibaüzenettel kezdjük a javítást, és leginkáb csak azzal foglalkozunk, mert az első hiba után a fordító néha megkergül, és az összes további hiba lehetségesen nem is igaz. Majd idővel és tapasztalattal kialakul hogy felmérd, abba a szituba csöppentél-e, vagy sem, addig elég csak hozzászokni, hogy az első hiba javítása után újrafordítás.
(#) eSDi válasza attika hozzászólására (») Ápr 14, 2017 / 1
 
Futtasd rendszergazdaként, mert normál módban nincs joga a mappa írásához. Elavult szoftver, nincs is hozzá már support. Használd helyette inkább az MPLAB IPE-t, ezt meg tartogasd végszükség esetére.
Következő: »»   926 / 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