Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   612 / 1319
(#) icserny válasza bankimajki hozzászólására (») Dec 4, 2009 /
 
PWM+aluláteresztő szűrő?
(#) bankimajki válasza icserny hozzászólására (») Dec 4, 2009 /
 
Nekem a lényeg az A/D kezelése szoftveres úton. Ez nem megy, ebben kérnék segítséget, a többi megy.
(#) bankimajki válasza bankimajki hozzászólására (») Dec 4, 2009 /
 
Fontos assembly-ben fejlesztek.
(#) watt válasza bankimajki hozzászólására (») Dec 4, 2009 / 4
 
Ha már említetted az adatlapot, igen, részletesen, példával, táblázatokkal leírja az AD beállítását. Ha az megvan, akkor már csak a megfelelő bitet kell bebillenteni, és várni, hogy leteljen a konverzió, vagy ha nem akarunk várni, akkor megengedjük az AD-nek, hogy megszakítást okozzon és csak akkor foglalkozunk a kapott 10bit értékének feldolgozásával, amikor az már rendelkezésre áll. Nem érdemes egyébként abba a hibába esni, hogy várakozol, mert lehet, hogy a gyakorló programod tökéletesen működik, aztán hozzá akarsz írni több dolgot, mondván haladjunk, és lehet, hogy nem fog működni, és fogalmad sem lesz róla miért. Persze nem nagy dolog a hiba kiderítése, ha tudod, hogy mennyi ideig várakozna egy AD konverzióra a PIC, miközben ezernyi dolga lenne...
(#) bankimajki válasza watt hozzászólására (») Dec 4, 2009 /
 
Rendben, akkor nekiesek az adatlapnak.
(#) ecostar hozzászólása Dec 5, 2009 /
 
Sziasztok!
C-ben próbálkozok programozni PIC-et olyan problémám van hogy a B-portra küldött 0xFF helyet 0xD7 jelenik meg, ennek mi az oka?

#include < pic16f1936.h >
#define FOSC_INTOSC

main ()
{
TRISB = 0x00;
PORTB = 0xFF;
}
(#) mrfencer hozzászólása Dec 5, 2009 /
 
Üdv!

Gondoltam az asm után megismerkedem a PIC C -vel. Szóval a kérdésem az, hogy tudok javasolni valami oldalt ami az alapoktól egész jól elmagyarázza a PIC C-t?

Köszi!
(#) vizor válasza ecostar hozzászólására (») Dec 5, 2009 /
 
Hogyan ellenőrzöd a kimenetet, LED-ekkel a port lábain? Lehet, hogy az a két helyiérték kontakthibás és azért tűnik D7-nek FF helyett...
(#) ecostar válasza vizor hozzászólására (») Dec 5, 2009 /
 
Egyenlőre csak az Mplab szimulátorában próbáltam!
(#) El_Pinyo válasza ecostar hozzászólására (») Dec 5, 2009 /
 
Szia!
Resetkor a B port analóg lábai analóg funkciót látnak el, tehát digitálissá kell konfigurálni őket. Ezt az ANSELB regiszter törlésével lehet elérni. Amikor írunk egy portra, akkor pedig célszerű a LATx regisztereken keresztül írni, hogy elkerüljük az ún. read-modify-write problémát:

  1. main()
  2. {
  3.   PORTB = 0;
  4.   ANSELB = 0;
  5.   TRISB = 0;
  6.   LATB = 0xFF;
  7.   while(1); //vegtelen ciklus
  8. }
(#) icserny válasza mrfencer hozzászólására (») Dec 5, 2009 /
 
Idézet:
„Gondoltam az asm után megismerkedem a PIC C -vel.”

Ilyen fordítóról még nem hallotam. De MikroC, HiTech C, CCS C, BoostC, Wiz-C, továbbá Microchip C18 és C30 fordító létezik, csak nem világos, hogy melyikre gondoltál?
(#) trudnai válasza icserny hozzászólására (») Dec 5, 2009 /
 
A PICC a Hi-Tech ceg (ill. most mar Microchip ) C forditoja PIC-re...

HI-TECH PICC STD v9.60PL3 Compiler

Amugy anno ossze szedegettem eleg sok fordito linkjet a wikipedian:

Wikipedia.hu: PIC mikrokontroller
(#) mrfencer válasza icserny hozzászólására (») Dec 5, 2009 /
 
Üdv!

Nem konkrétan forditora gondoltam, hanem magára a PIC C prog nyelvre, arról szeretnék valami kis okitást, hogy abban hogyan kell programozni. Kis példa progikra ilyenekre gondoltam, mint ahogy egy csomó oldal leirja lépésről lépésre a PIC asm programozást, előszor kivillant egy LED-et majd futófény stb.. nha valami ilyesmire gondoltam C ben.

De nem is tudtam hogy ennyi fordito van.
Köszi
(#) ecostar válasza El_Pinyo hozzászólására (») Dec 5, 2009 /
 
Köszönöm a segítségedet! Pic16f877A hoz is használható a Hi-tech c fordító? mert nem találom a hozzávaló header fájlt!?
(#) El_Pinyo válasza ecostar hozzászólására (») Dec 5, 2009 /
 
Persze, hogy használható, a fejlécállomány neve: "pic1687x.h". Egyébként nem kell bajlódni az egyes headerek beinklúdálásával, egyszerűen a forrás elején be kell inklúdálni a htc.h állományt és meg fogja találni a fordító a szükséges állományt!
Egyébként már akartam kérdezni is, hogy milyen fordítót használsz, mert ez a #define FOSC_INTOSC ebben a formában nem volt ismerős. A mikrokontroller konfigurációs szavát a __CONFIG() makróval szokás elintézni (lásd példaprogramok).
Egyébként már működik a szimuláció?
(#) icserny válasza mrfencer hozzászólására (») Dec 5, 2009 /
 
Idézet:
„Kis példa progikra ilyenekre gondoltam”

Sejtettem, de - ahogy jelezni próbáltam - nagyon nem mindegy, hogy melyik PIC családra és melyik fordítóra...
(#) mrfencer válasza icserny hozzászólására (») Dec 5, 2009 /
 
Á értelek, PIC16F877A-t többet programoztam, de egy-két alkalommal a PIC18F-es családot is kiptóbáltam, szóval a kettő közül valamelyikkel tanulgatnék, vagy javasolhattok jobbat is. Illetve a HI-TECH PICC- re gondoltam.

Köszi!
(#) icserny válasza mrfencer hozzászólására (») Dec 5, 2009 /
 
Idézet:
„a HI-TECH PICC- re gondoltam.”

Megnézted már a telepítési könyvtárában levő példákat?
(#) csezoli21 hozzászólása Dec 5, 2009 /
 
Helló

Azt szeretném kérdezni hogy nem tudja-e valaki, honnan lehetne ennek a könyvnek és a cd mellékletének a többi részét megszerezni?

PIC Mikróvezérlők Alkalmazástechnikája (Kónya-Kopják) 3. kiadás

Ha titkos, privátban is várom a válaszokat!
Ha nem ide a topicba is jó!
Köszönöm szépen helló
(#) Norberto válasza csezoli21 hozzászólására (») Dec 5, 2009 /
 
Vedd ki könyvtárból!
(#) Attila86 hozzászólása Dec 5, 2009 /
 
Sziasztok!

Lehet, hogy a közeljövőben sűrűn fogom látogatni ezt a topikot. Szeretném ugyanis végre megtanulni a PIC programozást.
Egy kérésem lenne: A PICKIT2 starter kit-hez adnak elvileg egy maréknyi programot. Van egy, ami a nyákon lévő poti állása szerint kapcsolja ki-be a LED-eket (négy bites A/D konvergter végülis). Ezt a kis programot C-ben el tudná küldeni nekem valaki? Esetleg van ezen a programon kívül egy olyan (egyszerű) ami LCD kijelzőre irat ki valamit? Ha igen, akkor azt is szeretném elkérni.
Pár dologra kíváncsi vagyok és feltételezem, hogy ezekben a kis 'próba' programokban megtalálom a választ a kérdéseimre.

Illetve; van-e esetleg valakinek egy eladó PICKIT2 starter kitje?

Üdv.: Attila
(#) Attila86 válasza Attila86 hozzászólására (») Dec 5, 2009 /
 
Ja és még egy dolog:
És sajnos nem ismerek egyetlen programozói nyelvet sem, kivéve az autodidakta módon megtanult POV-Ray saját nyelvét. Ez úgy tudom hogy a C nyelvhez hasonlít, ezért szeretném a PIC programozást is C nyelvben megtanulni, mert abban azért valamicske kis fogalmam már van a POV-Ray miatt.
Szóval, melyik programmal tudok C-ben PIC-et programozni? És tényleg ilyen sok C nyelv van PIC-hez? Melyiket próbáljam meg megtanulni?

Ha hülyeséget, értelmetlen dolgot vagy már sokszor megválaszoltat kérdezek, szóljatok nyugodtan! :hide:
(#) watt válasza mrfencer hozzászólására (») Dec 5, 2009 /
 
Van egy ilyen topic, ott sokat tanulhatnál, ha végigolvasod. Bővebben: Link
(#) mrfencer válasza watt hozzászólására (») Dec 5, 2009 /
 
Remek, köszi!
(#) bankimajki hozzászólása Dec 5, 2009 /
 
Sziasztok, úgy ahogy átnéztem az adatlapot és írtam egy ilyen kis progit, valamiért nem működik légyszíves segítsetek.

elso AD.asm
    
(#) bankimajki válasza bankimajki hozzászólására (») Dec 5, 2009 /
 
Sikerült megoldani , azért csatolom a jót is hátha valakinek szüksége lesz rá.

elso AD.asm
    
(#) watt válasza bankimajki hozzászólására (») Dec 5, 2009 /
 
Ez tele van hibával és logikátlan dolgokkal, inkább ne ajánld senkinek.
1. Nem kell ki és bekapcsolgatni az AD modult. (ADCON0, ADON)
2. Nem ott kell várni a mintavétel miatt, ahol a megjegyzésben írtad.(Ott az AD modul feléledését kell kivárni, de azt csak egyszer kell)
3. Írtam, hogy miért nem várakozással kell várni a mintavétel megtörténtére, bár így is működik.
4. Miért kapcsolod ki - be a global interrupt-ot? Nem sok értelme van így.
(#) bankimajki válasza watt hozzászólására (») Dec 5, 2009 /
 
De működik, jó akkor nem ajánlom senkinek. De ahhoz hogy játsszak egy kicsit így is megfelel.
(#) icserny válasza Attila86 hozzászólására (») Dec 6, 2009 /
 
PICDEM2 kártyára van egy hasonló mintapélda a Hi-Tech C telepítési csomagban a samples mappában (a2demo.c).

A főprogramban PORTB = x; estén 8 bitesen történik a kijelzés, PORTB = (x>>4); esetén pedig 4 bitesen.

ADCON0 és ADCON1 inicializálási értékét az assembly programból is ki tudod nézni, de az adatlap olvasását semmi sem pótolja. (az ADCS<2:0> bitekbe inkább 001 vagy 101 kellene, ha FOSC = 4 MHz)

a2demo.c
    
(#) szilva válasza Attila86 hozzászólására (») Dec 6, 2009 /
 
Szia Attila,

Üdv a PIC-ek világában! A PIC-ekkel történő induláshoz a PICkit2 kitűnő választás, de úgy látom, pár dolgot lehetne kicsit világosabbá tenni. Mindenek előtt javaslom, hogy ezt a topicot olvasd végig az elejétől - ami neked triviális elektronikai kérdés vagy éppenséggel jelenlegi tudásodhoz képest kínainak tűnik, azt lehet gyorsabban lapozni, de így is megmarad benned, hogy milyen problémák merültek már fel, és később vissza tudod keresni.

A legtöbb kezdő ott hibázik a legnagyobbat, hogy úgy gondolja, a PIC az egy számítógép, és minimális elektronikai tudással áll neki a PIC programozásnak, holott azt szoktuk mondani, hogy a PIC leginkább egy elektronikai alkatrész, ami "mellesleg" a benne tárolt program alapján működik. Nálad ez biztosan nem lesz gond, mivel az elektronikai oldalával tisztában vagy.

A PICkit2-ről egy kicsit: mivel a hardvere/szoftvere teljesen közzé van téve, többen konstruáltuk meg különféle utánépített verzióit, amit akár magad is összerakhatsz otthon, de ha ezzel nem akarsz bajlódni, akkor természetesen az eredetit is megveheted, ráadásul nagyon barátságos áron. A PICkit2-t szokták adni magában, csak a programozót, illetve kit-ekben. A "PICkit2 Starter Kit" tartalmaz egy 16F690-nel szerelt "Low Pin Count Demo Board" nevű demókártyát, a "PICkit2 Debug Express" pedig egy SMD 16F887-tel szerelt "44-pi Demo Board"-ot. A Starter kit-ben lévő kártyával nem tudod kipróbálni a hardveres lépésenkénti nyomkövetést, mert a 16F690-nek csak a speciális, ICD-s változata tudná ezt a funkciót, ellenben a Debug Express verzió pont erre lett kitalálva, a 16F887 tudja.

Tudni kell továbbá, hogy ha csak programozót veszel, akkor is meg lehet venni a demókártyákat külön, viszont ebben az esetben a szerelt kártya mellé kapsz két ugyanolyan panelt üresen, szereletlenül. A 44-pin demo boardba egy sor 44 lábú 18F-es PIC is betehető, én amikor azzal a családdal ismerkedtem, akkor egy ilyen üres kártyát szereltem össze egy 18F-fel. A demó boardok kapcsolása dokumentált, azaz teljes értékűen utánépíthetők ezek is, ha amellett dönt az ember. Javaslom, hogy nézd meg az árakat, és döntsd el, melyik megoldást választod.

A bemutató kártyákhoz a példaprogram-csomagokat szabadon le lehet tölteni a Microchiptől, igaz, tudtommal mind assemblyben íródtak. Igen, a következő kérdésedre az a válasz, hogy tényleg ilyen sokféle C van a PIC-ekhez. Pont az az egyik oka annak, hogy nem annyira preferáljuk a C-ben fejlesztést. A sokféle "nyelvjárás" miatt nehéz egységes programozási szemléletet kialakítani, ha mégis C mellett dönt az ember, akkor le kell cövekelni valamelyik változatnál. Sajnos a különbségek miatt mindig talál az ember olyat, ami az egyik C-ben nyűglődés, a másikban flottul megy, de egy másik dolog meg esetleg épp ellenkezőleg alakul. A másik ellenérv az szokott lenni, hogy a C elrejti a programozó elől a hardver lényegét, ami ezeknél az alkalmazásoknál éppen nem mindig jó. Ha viszont ASM-ben megtanulod kezelni a PIC-et, és tudni fogod, hogy mi is történik a háttérben, akkor bonyolultabb programok esetében már lehet inkább C-ben dolgozni, mert mindegyik C nyelv megengedi, hogy ASM megoldással, vagy közvetlen regiszterpiszkálással oldd meg a kritikus dolgokat. C nyelv esetén talán érdemes rögtön a 18F szériával kezdeni, amihez a gyári MCC18-as fordítót is lehet használni, illetve egy ideje a HiTech C fordítói is "hivatalosak" lettek. Sajnos a C fordítók fizetősek, ezért az ingyenes verziók elég gagyi dolgokat művelnek.

Mindemellett azt mindenképp javaslom, hogy a PIC ASM utasításait már azért is ismerd meg, hogy tisztában légy az eszköz képességeivel. Az egyik legjobb megoldás, ha előveszed valamelyik PIC adatlapját (16F és 18F család esetében), és azt olvasgatod. Benne van részletesen a PIC utasításkészlete is, valamint a perifériák működése is.
Következő: »»   612 / 1319
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