Fórum témák
» Több friss téma |
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.
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... Idézet: 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... „Már régóta szeretnék megtanulni PIC processzorokat programozni...” 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.
Á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.
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:
AVR-eknél a kimenetek beállítása:
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.
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.
Szia !
Ez így igaz ahogy te írtad. Elégé elkeveredtem.
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
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.
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).
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....
SZIA!
A header fileokat be kell tenni a projekthez?? Illetve kell-e őket includolni??
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.
É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!
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
Ebben mi a műszaki haladás, hogy a már meglevő programok lebutított változatát készítteted el mással?
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.
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: Na, ez például egy értelemes cél. Vagy pl. kakukkoljon az óra, vagy mittudomén... „Szerintem ha már egyszerűsítés akkor a pic ek számát kellene csökkenteni.”
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. 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:
Ja, es legkozelebb mikor kodot beszursz, akkor jelold ki a kodot utana es kattints a Kod feliratu gombra..
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.
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?
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.
Én ezt találtam,szerintem használható: Bővebben: Link
A fejlesztőkörnyezet help-je is nagyon jó!
Ü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.
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:
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.
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.
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.
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
|
Bejelentkezés
Hirdetés |