Fórum témák

» Több friss téma
Fórum » PIC programozás mikroC fejlesztőkörnyezetben
Lapozás: OK   1 / 10
(#) edison14 hozzászólása Ápr 27, 2010 /
 
Helló!

Helló !

Már régóta szeretnék megtanulni PIC processzorokat programozni, de eddig nem volt olyan program amelyben ezt könnyen megtehettem volna. Most egy új barátom által megismertem egy nagyon könnyen használható és profi fejlesztőkörnyezetet mellyel egy hónap alatt LED villogtató és hangszóró csipogtató programok rengetegét készítettem el mindössze pár parancs megtanulásával. Kezdőknek nagyon tudom ajánlani mivel nagyon egyszerű benne a programozás. A programot EZEN az oldalon találjátok meg.

A fórumot azért nyitottam mivel egy-egy új parancs megtanulásakor akadályba ütközöm és itt feltehetem a kérdésem azok számára akik ezzel a fejlesztőkörnyezettel foglalkoznak vagy tanulják. Ezzel egy kis segítséget is szeretnék nyújtani a kezdők számára akik el szeretnék sajátítani a programozás fortélyait de még nem találtak rá arra a fejlesztőkörnyezetre aminek a használata egyszerű és a benne való programozás nagyon könnyű.

Remélem tetszeni fognak ezek a kis programok. A kérdéseiteket örömmel várom. A AVR processzorok programozásához egy külön fórumot nyitottam mivel egyes parancsok és kódok nem egyeznek meg az AVR-ek és PIC-ek programozásánál.
(#) watt válasza edison14 hozzászólására (») Ápr 27, 2010 /
 
Van már PIC programozás C nyelven topic.
Idézet:
„Kezdőknek nagyon tudom ajánlani mivel nagyon egyszerű benne a programozás.”

Ja, csak az a baj, hogy a PIC-ről fogalma sem lesz az embernek! Nem a programozási nyelv amin áll, vagy bukik a dolog, elhiheted! Te sem azért nem tudsz továbblépni, mert a nyelvvel van bajod, hanem azért, mert a C lefedi a lényeget, magát az áramkört, azaz a PIC-et! Aki jót akar, megérti a PIC felépítését és ASM-ban kezd programozni. Utána jöhet a C vagy bármelyik magasabb szintű nyelv.
Kíváncsi vagyok, bezárják-e...
(#) icserny válasza edison14 hozzászólására (») Ápr 27, 2010 /
 
Idézet:
„Már régóta szeretnék megtanulni PIC processzorokat programozni...”
Hát pont ez nem fog menni a MikroC-vel!!! Arra jók az ilyen programnyelvek, hogy gyorsan sikerélményhez juttassák a kezdőket. Aztán megáll a tudomány...

Tudod, én is csináltam már soros porti kommunikációt CCS C-vel, de azóta sincs fogalmam, hogy milyen regisztert és hová kell állítani, vagy hogyan kell az esetleges adatforgalmi hibákat lekezelni. Zárt forráskódú könyvtárakkal ez sohasem fog kiderülni....

Akár assembly, akár C, akár más nyelven, le kell ereszkedni a regiszterek és a regiszterbitek szintjére, hogy megértsd a perifériák működését.
(#) quite válasza edison14 hozzászólására (») Ápr 27, 2010 /
 
Áruld már el, hogy miért nyitsz két topicot ugyanannak a fejlesztőrendszernek?
Tegnap nyitottál egyet AVR-re, ma meg PIC-re.
Ráadásul még a kezdő postod is szinte szóról szóra ugyanaz.

Holnap majd nyitsz mégegyet a 8051-re is? Merthogy arra is van mikroC.

Egyetlen topic is elég lett volna, ezzel a címmel:

"AVR, PIC, 8051 programozása mikroC fejlesztőkörnyezetben."

Az, hogy a programozás eltérő, az most jelen esetben lényegtelen, mert a fejlesztőrendszert akarod bemutatni, ezt pedig lehetett volna egy topicban is.
(#) edison14 hozzászólása Ápr 27, 2010 /
 
Sziasztok!

Először watt kérdésére felelnék: nos a suliban fogok tanulni ASM-ben progizni, de nekem is mint más kezdőknek is az adatlap rendes átnyálazása és a konkrét processzor megismerése a cél majd utána a programozása. Viszont hiába tudja az ember hogy az adott processzor milyen regisztereket tartalmaz meg hogy milyen belső perifériákat tartalmaz attól még nem fogja tudni programozni mivel magával a programnyelvvel is meg kell ismerkedni és sokszor az adott processzor megismerése és a programozás egyszerre történik. Én is valahogy így kezdtem. Egypárszor átböngésztem az adott processzor adatlapját és utána álltam neki kisebb programokat írogatni és a barátom segítségével elég jól haladok mint az AVR és PIC processzorok megismerésében és programozásának elsajátításában.

Válasz icserny hozzászólására: ebben igazad is van viszont egy kezdő megír pár programot és elkezdi egy kicsit érdekelni a belső világa a processzoroknak. A mikroC tartalmaz egy olyan funkciót ahol nyomon követhetjük azt hogy mikor milyen adat került be egy regiszterbe és hogy mit olvastunk ki az adott regiszterből. És igaz hogy az assembly nyelv az sokkal hardver közelibb mint a C és más nyelvek. Ezért szeretném az assembly-t is megtanulni és hamarosan el is fogom kezdeni a suliban.

Válasz quite hozzászólására: azért nyitottam két tipicot ugyan annak a fejlesztőkörnyezetnek mivel ha össze vissza keverednének az AVR-es és PIC-es hozzászólások szerintem senki nem örülne. Hiába ugyan az a fejlesztőkörnyezet vannak olyan konfigurációk amik PIC-eknél és AVR-eknél eltérnek pl:
PIC-enél a kimenetek beállítása:
  1. TRISA = 0x00;

AVR-eknél a kimenetek beállítása:
  1. PORTA=0x00;


Remélem kielégítő választ adtam mindhármatoknak és esetleg ha van még valami ami érdekelne vagy van még valami kérdésetek csak nyugodtan tegyétek fel.
(#) Norberto válasza edison14 hozzászólására (») Ápr 27, 2010 /
 
Ha már meg lett említve a kimenetbe való állítás, akkor azt hozzátenném, emlékeim szerint az AVR-eknél a DDRx való erre. Azaz Data Direction Register, minden egyes portra vonatkoztatva.
(#) edison14 válasza Norberto hozzászólására (») Ápr 27, 2010 /
 
Szia !

Ez így igaz ahogy te írtad. Elégé elkeveredtem.

  1. DDRX = 0x00; // a port összes lába bemenet lesz


(#) vilmosd válasza edison14 hozzászólására (») Ápr 27, 2010 /
 
Hali
Idézet:
„A mikroC tartalmaz egy olyan funkciót ahol nyomon követhetjük azt hogy mikor milyen adat került be egy regiszterbe és hogy mit olvastunk ki az adott regiszterből.”

Melegen ajanlom a MPLAB-IDE tanulmanyozasat. Az igazan jo (nekem legalabb is) ez a fejleszto kornyezet. Abban tenyleg lathatsz minden regisztert, valtozot, es meg egyszeru is a kezelese. Raadasul ingyenes. Ki lehet probalni sokfele nyelvet, de az igazi kezdet innen kell hogy kiinduljon. A neten millio peldat talalsz ASM-ben, amin el lehet indulni. Amennyiben gyengebb vagy kulfoldi nyelvekben, vannak jo oldalak magyarul is. Pl: Tudomany es technika. Kimondottan az alapoktol kezdi sok mintapeldaval. Lepesrol-lepesre vegigvezet a PIC-ek lelkivilagan. Angolul is van sok jo oldal, ahonnan le lehet szedni alap programokat. Pl: PIClist. Szerintem ha ezekbol indulsz ki hamarabb lesz sikerelmenyed a PIC-ek vilagaban. Az a baj a magas szintu nyelvekkel, hogy nem tudod megismerni veluk a HW felepiteset, es kesobb bizony sok gondot fog okozni egy bonyolultabb program megirasanal. De ha az alapoktol indulsz a kesobbiekben sokkal konnyebb lesz atterni a magasszintu nyelvekre. Ajanlanam meg olyan compiler hasznalatat (Hitech-C, CCS-C) ami hasznalhato a MPLAB alatt. Sajnos a Mikroe-C nem tartozik ezek koze.
Sok szerencset
Udv Vili
(#) edison14 válasza (Felhasználó 15355) hozzászólására (») Ápr 27, 2010 /
 
Szia!

A két főprogramra gondoltam a mikroC pro for PIC-re és mikroC pro for AVR-re. Igaz hogy ez a fórum csak a PIC processzorokról szól de megemlítettem az AVR processzorokat is.
(#) edison14 válasza vilmosd hozzászólására (») Ápr 27, 2010 /
 
Mint említettem egy-két hozzászólással feljebb már volt szerencsém az MPlab-hoz és az assembly nyelvhez és a suliban is fogom tanulni jövőre. Nem nehéz megtanulni azt a 35 parancsot csak a felhasználásuk egy kicsit nehézkes volt a számomra. De mindenképpen meg szeretnék tanulni assembly nyelven is programozni mert amit nem lehet megírni C-ben azt meg lehet írni assemblyben (legalábbis én így hallottam).
(#) Zozi85 válasza watt hozzászólására (») Ápr 27, 2010 /
 
A fogalma sem lesz résszel nem értek egyet, nézd meg a progihoz ajánlott tananyagot, bőven kitér az ASM-re, majd ebből építkezik a modulokkal. Azt elismerem, hogy sokan kihagyják, de azok meg is rekednek az első problémánál ami nincs benne a rutinok közt....
(#) aandriis válasza edison14 hozzászólására (») Júl 30, 2010 /
 
SZIA!

A header fileokat be kell tenni a projekthez??
Illetve kell-e őket includolni??
(#) edison14 válasza aandriis hozzászólására (») Júl 30, 2010 /
 
Hali.

A header fájlokat először másold be a projekt mappájába majd a Project Manager-ben a Header files-ra jobb klikk és Add file to project. Ezután betallózod a projekt mappádból a fájlt és utána a programban include-al beolvasod.
(#) tomeszku hozzászólása Okt 2, 2010 /
 
Él még ez a topic? jár még ide valaki? Csak mert van egy kis programozni valóm mikroc-ben és hátha tudna segíteni valaki!
(#) Zozi85 válasza tomeszku hozzászólására (») Okt 2, 2010 /
 
Hát próbáld meg, hátha segít valaki
(#) tomeszku hozzászólása Okt 7, 2010 /
 
Szóval a szakdolgozatomat a propeller clock-ból csinálom(építés + a hozzá tartozó programok). A gond csak az hogy nem nagyon szeretem az assembly-t és nem akarom csak egy az egybe bemásolni a programot. Arra gondoltam hogy assembly helyett mondjuk mikroc-ben csinálnám meg a pic-ek programjait(bázis propeller távirányító). Természetesen nem az összes módját programoznám le, hanem mjuk csak az analóg és a digitális óra kirajzolását. Tudna valaki segíteni benne?

Köszi előre is
(#) icserny válasza tomeszku hozzászólására (») Okt 7, 2010 /
 
Ebben mi a műszaki haladás, hogy a már meglevő programok lebutított változatát készítteted el mással?
(#) Zozi85 válasza icserny hozzászólására (») Okt 7, 2010 /
 
Szerintem nem kéne ennyire letámadni, pár lökés a megfelelő irányba és megoldhatja könnyen...
Szerintem ha már egyszerűsítés akkor a pic ek számát kellene csökkenteni.

Egyébként tökéletes téma, nem túl bonyolult mégis látványos. A leg nehezebb rész szerintem a halk mechanika.
(#) icserny válasza Zozi85 hozzászólására (») Okt 7, 2010 /
 
Nem letámadás, de ha a Hobbielektronika cikkeinél is elvárás, hogy valami újdonság legyen benne, akkor méginkább elvárható ez egy szakdolgozatnál.
Idézet:
„Szerintem ha már egyszerűsítés akkor a pic ek számát kellene csökkenteni.”
Na, ez például egy értelemes cél. Vagy pl. kakukkoljon az óra, vagy mittudomén...
(#) user hozzászólása Feb 26, 2011 /
 
Sziasztok!

Nekem egy ledes kapcsolással lenne kérdésem.
Mikroc-ben szeretném megírni a nyomógombos led bekapcsolást,de valamiért nem működik a help-ben lévő kód.A kontroller egy PIC16F628A,és az RB3,RB4,RB7-es lábán van három led, a nyomógomb egy 10k-s ellenálláson keresztül RB0-ra kapcsolódik úgy hogy amikor megnyomom, akkor +5V-ot ad RB0 bemenetre.Ez a bekötés jó így?

Sajnos a pic nem reagál a nyomógombra, a 3 led rögtön elkezd világítani,amit az áramkört fesz alá helyezem.

Az alábbi programban a ledeknek csak addig kellene világítania, amíg a nyomógomb nyomva van, ha jól értelmeztem.

//mikroC Pro V2.50
//PIC16F628A,3.68MHZ,XT,WDT OFF,PUT OFF, MCRL DIS, BOD DIS, LVP DIS, DERP DIS, CP DIS



void main()
{
char oldstate = 0;
TRISB.B3 = 0x00 ; // set PORTB.B3 as OUTPUT
TRISB.B4 = 0x00 ; // set PORTB.B4 as OUTPUT
TRISB.B7 = 0x00 ; // set PORTB.B7 as OUTPUT
TRISB.B0 = 0xFF ; // set PORTB.B0 as INPUT
PORTB.B3 = 0x00 ;
PORTB.B4 = 0x00 ;
PORTB.B7 = 0x00 ;
do {
if (Button(&PORTB, 0, 10, 1)) oldstate = 1;
if (oldstate && Button(&PORTB, 0, 10, 0)) {
PORTB.B3 = 0x01 ; //LED ON
PORTB.B4 = 0x01 ; //LED ON
PORTB.B7 = 0x01 ; //LED ON
oldstate = 0;
}
} while(1);
}

Tud valaki segíteni abban hogy mi lehet a hiba?

üdv.
(#) trudnai válasza user hozzászólására (») Feb 26, 2011 /
 
Idézet:
„A kontroller egy PIC16F628A,és az RB3,RB4,RB7-es lábán van három led, a nyomógomb egy 10k-s ellenálláson keresztül RB0-ra kapcsolódik úgy hogy amikor megnyomom, akkor +5V-ot ad RB0 bemenetre.Ez a bekötés jó így?”


Nem jo, a nyomogombot az ellenallason keresztul huzd fel a +5V-ra, mikor megnyomod az zarja az aramkort a fold(!) fele. A PIC labahoz az ellenallas/nyomogomb csomopontbol vezesd oda a jelet. Az eredmeny: Mikor a gomb nincs nyomva, akkor a PIC laban magas szint jelenik meg, mikor megnyomod, akkor alacsony. Gyakorlatilag ugy tekintheted, mintha ez is egy feszultseg oszto kapcsolas lenne, csakhogy a kapcsolo nyitott allapotban vegtelen ellenallasu, zart allapotban pedig 0.

A LED-eken remelem azert van ellenallas? Minden LED-hez kulon ellenallas kell!

Amugy nem irtad mert lehet nem tartottad lenyegesnek, de a Vdd es Vss labak kozott minel kozelebb a PIC-hez legyen egy 100nF-os keramia kondenzator mindenkepp.

Meg egy megjegyzes ha szabad: A TRISB.B0..B7 ill PORTB.B0..B7 ezek bitfieldek, tehat nem kell nekik egy egesz byte, ugyis csak a legalso bitet fogja nekik oda adni:

  1. TRISB.B3 = 0 ; // set PORTB.B3 as OUTPUT
  2. TRISB.B4 = 0 ; // set PORTB.B4 as OUTPUT
  3. TRISB.B7 = 0 ; // set PORTB.B7 as OUTPUT
  4. TRISB.B0 = 1 ; // set PORTB.B0 as INPUT
  5. PORTB.B3 = 0 ;
  6. PORTB.B4 = 0 ;
  7. PORTB.B7 = 0 ;


Ja, es legkozelebb mikor kodot beszursz, akkor jelold ki a kodot utana es kattints a Kod feliratu gombra..
(#) Kokany82 hozzászólása Okt 7, 2011 /
 
Sziasztok. Segítséget szeretnék kérni.
Van egy kész programom 16f628-ra, és azt szeretném módosítani, de sajnos nem értek a ilyesfajta programozáshoz. Tudna nekem segíteni valaki ebben?
Előre is köszönöm.
(#) tomeszku válasza Kokany82 hozzászólására (») Okt 19, 2011 /
 
Hali!
Javaslom az Mplab nevű program letöltését, valamint az assembly és C programnyelvek megismerését, mert ezek elengedhetetlen feltételek a pic programozásban!
Milyen alkatrészhez használnád a Pic-et?
(#) soad00 hozzászólása Dec 20, 2011 /
 
Hali most akarok elkezdeni c be piket programozni suliban tanultam már asm-et. Nem kéne más mint valami ahol le van írva hogy melyik parancs mit csinál mint a datashetek végén.
(#) san398 válasza soad00 hozzászólására (») Dec 20, 2011 /
 
Én ezt találtam,szerintem használható: Bővebben: Link
A fejlesztőkörnyezet help-je is nagyon jó!
(#) kbchuni hozzászólása Feb 21, 2012 /
 
Üdv!
Szeretnék egy 18F4620-as PiC-el feldolgozni két szenzortól érkező jelet (5v-os fesz ). Az egyik szenzor mikor ad egy jelet a mikrovezérlő beindít egy számlálót, amikor a második szenzortól is kap egy jelet, megállítja a számlálót és a két jel között eltelt időt kiírja egy LCD-re.
Programozáshoz mikroC programot használok, mivel kezdő vagyok nem igazán boldogulok ezzel a problémával. Tudom, hogy megszakítást kell használjak de nem igazan értek hozzá. Az órajel 40MHz ezt kellene valahogy leosztani az időzítőnek ennyit tudok... Szóval ez lenne a problémám, ha valaki tudna segíteni nagyon hálás lennék.
(#) Geldrin hozzászólása Feb 29, 2012 /
 
Huh, nem gondoltam, hogy találok itt MikroC- témát, micsoda megkönnyebbülés!

Az lenne a problémám, hogy van 3 fájlom, amit szeretnék lefordítani. Valahogy így néz ki a fájl struktúra:
  1. calculate.c ----- calculate.h
  2.        |
  3. heliostat.c(main fgv)

Abba a hibába futottam, hogy ha a heliostat.c -ben hivatkozni szeretnék a calculate.h-ban definiált PI értékre, akkor azt írja, hogy nincs definiálva.
A MikroC-ben elvileg nem kell #inlcude-dal foglalkozni, mert a projectbe importált fájlokat összelinkeli automatikusan. A helpben legalábbis ezt állítják:
Idézet:
„The preprocessor directive #include pulls in header files (extension .h) into the source code. Do not rely on preprocessor to include source files (extension .c) ? see Add/Remove Files from Project for more information.”


Ha viszont a calculate.c elejére odabiggyesztem az #inlude-ot, ilyen figyelmeztetést nem dob a fordító.
(Habár rengeteg egyéb hibaüzenetet ír ki, amikre végképp nincs ötletem, hogy mi az oka.)

Van valakinek ezirányú tapaszatata?
Kösz a válaszokat.
(#) Geldrin válasza soad00 hozzászólására (») Feb 29, 2012 /
 
Nyisd meg a fejlesztőkörnyezetet, és a nézet menüben keresd meg a windows pontot. Ki fog dobni egy ablakot, amiből kiválaszthatod, hogy milyen panelek jelenjenek meg.
Keress a listából egy olyat, hogy 'Libary Manager'.
A libary managerben tudod bepipálni azokat a függvénykönyvtárakat, amiket használni akarsz. (Pl: SPI, UART, EEPROM, stb, stb.)
A lista elemeit ki tudod nyitni, és meg tudod nézni, hogy melyik modul milyen függvényeket használ.
Ami nagyon tetszik, hogy ha kettőt klikkelsz valamire (PL: EEPROM/EEPROM_Write), akkor megnyitja a helpet, amiben részletes leírást találsz a függvényekről/eljárásokról.
(#) röntgen hozzászólása Márc 12, 2012 /
 
Sziasztok,
A véleményeteket akarom hallani, hogy mennyire BUG-os a mikrC mint fejlesztő szoftver? Azért kérdem, mert elég sok rosszat hallani róla, s én meg most latolgatom, hogy PIC32-höz használjam-e. Csábító, hogy sok beépített függvénnyel rendelkezik (TFT,CF card....stb.). Ezeket jó lenne alkalmazni, de ha megfejthetetlen hibákba szaladok bele, akkor nem oké. Köszi.
(#) Programmer válasza röntgen hozzászólására (») Ápr 7, 2012 /
 
Kicsit kései válasz, de azért hátha aktuális. Szerintem nem érdemes vele foglalkozni: a sok beépített függvény túlnyomó része előre fordított library file-okban található, tehát hibakeresésnél nem fogod az adott függvény kódját látni. Beépített függvényekket (komplett driverek is) találsz a Microchip Application Library ben. Van kód is, s lehet MPLAB al dolgozni
Következő: »»   1 / 10
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