Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
A nagyobb számú(24,33,32) PIC-eknél tényleg csak akkor szabad debuggolni, ha nagyon muszáj, mert az adatlap szerint a legtöbb példányt csak 1000x lehet újraírni. Van még néhány régebbi, amire 10 000-ret írtak még, de az újabbak lebutultak. A debuggoláskor minden változtatást kiír az MPLAB, ami odáig vezethet, hogy a PIC kinyiffan. Ez egy 100lábú SMD példány esetében igen bosszantó tud lenni, az anyagi oldalról már nem is beszélve.
Ezért elősorban az MPLAB SIM-et használom, és csak akkor próbálom ki, ha már nem találok benne hibát. Persze hiba mindig van...
Hy!
Szeretnék egy kezdő LED villogtató programocskát írni 4550-re, de a fordítónak valami nem tetszik a header fájllal, pedig a Microchip oldaláról van, és nem nyúltam bele: C:\MCC18\h\18F4550.h:3:Warning [2002] unknown pragma 'chip' C:\MCC18\h\18F4550.h:17:Warning [2002] unknown pragma 'accessGPR' C:\MCC18\h\18F4550.h:35:Error: syntax error Mit rontok el?
Na, pont ezért kezdtem a 28 lábú PIC24/dsPIC33 vezérlőkkel fogalalkozni. Egyrészt min. 10 000-szer írható, másrészt SDIP, tehát dugaszolós próbapanelon is használható (például így), s elhasználódás esetén is gazdaságosan cserélhető.
A szimulátor valóban nagy segítség, én is azon szűröm ki a hibákat.
A kód nélkül nem tudunk mit mondani. Valamelyik változót nem jól hozod létre szerintem...
Üdv
Egy érdekes problémával kapcsolatban szeretném a véleményeteket és a segítségeteket kérni. Adott egy pic 16f877 icd-vel programozom és debugolom, eddig nem volt semmi problémám vele. Most viszont érdekes hibajelenségeket produkál. PORTA-n próbálok bsf műveletet elvégezni, beállítok egy bitet 1-re, amikor a második bsf végrehajtódik az előzőleg 1-re állított bit visszaugrik 0-ra. Ugyanez nem történik meg más portokon. clrf PORTA clrf PORTD bsf PORTA,0 ;A nulladik bit most 1 bsf PORTA,1 ;Az első bit 1, a nulladik pedig 0 bsf PORTD,0 ;A nulladik bit most 1 bsf PORTD,1 ;A nulladik és az első bit is 1 Előre is köszönöm a magyarázatokat / válaszokat!
Kikapcsoltad az A/D átalakítót?
Kódot a Kód gombbal tudsz beilleszteni. A feljövő code után írd: =asm vagy =c és úgy lesz formázva és nem törli el a tabokat stb.
Juujj, köszönöm szépen, az AD volt a probléma.
Van egy sablonom amiből kialakítom az újabb és újabb programjaimat és ki volt kommentelve az AD kikapcsoló rész, ellenőrzés közbe pedig elkerülte a figyelmemet. Kódot meg azért nem használtam mert pár sor miatt nem tartottam fontosnak, de legközelebb használom majd. Köszönöm szépen Idézet: „Most viszont érdekes hibajelenségeket produkál.” Először mindig arra kell gondolni, hogy te hibáztál vagy az áramkörben, vagy a programban és azért nem a várakozásodnak megfelelő a végeredmény...
Bevallom soha nem "írtam" olyan programot, amiben nincs semmi, így nem tudom hogy reagál rá a fordító. Talán próbálj meg egy igazi parancsot elhelyezni, (mert az #include az nem parancs).
Felteszem a kérdést, minek letölteni mindeféle helyekről headert, mikor a fordító könyvtárában benne vannak? Néztem ezt a headert, szerintem ez nem jó, bár nem írtad, hogy milyen nyelven és melyik fordítóval programozol...
Aki tudja ma érdeklődtem a pwm-es hogyanokról...
Átolvasgattam ezt a topicot amire rá ment a délutánom és már lassan estém és nem vagyok derülátó. A szoftveres pwm nekem túl bonyolult, pedig találtam rá 1000 meg egy megoldást de én assembliben nem vok jártas.(c-ben tanultam és tanulok is programozni) Én eddig SDCC-t használtam használok. Jegyzem már sikerült építenünk-építenem egy robotot. Ezt is bele akartam, akarom venni a szakdolgozatomba. Ha estleg lenne valakinek egy példa progija softos PWM-re és persze c-ben azt nagyon megköszönném.Tudom azt hogy senki nem fogja helyettem megírni a programot és nem is ezt kérem...
Minden C fprditonak megvannak a sajat headerjei, azt kellene hasznalni nem valami innen-onnan ossze szedettet! Ha CCS-ben fejlesztesz akkor azt kellene hasznalni, ha C18-ban akkor pedig azt - ill ha mas pl XCBS vagy mit tudom en Wizz-C akkor az azoknak megfelelot, de mindegyik mikor felinstallalod kell hozza magval a headereket is. Ellenorizd, hogy az include path megfelelo-e es hogy az installacionak megfelelo include konyvtarra mutatnak-e, es torold le az osszes tobbi vacakot amit leszedtel.
Itt található az Olimex PIC18F4550 prototípus kártyája. Kapcsolási rajzzal és ledvillogtató mintaprogrammal.
Idézet: „de ha az ITT lévőt használom, akkor meg ez a baja” Azt használd, amit a fordítóval kaptál! Idézet: „ Nincs semmi a programomban, csak egy #include <18F4550.h> parancs.” #include "pic18.h" vagy #include "pic18f4550.h" kellene, meg egy main() függvény.... (kacsacsőr is lehet, csak a Fórummotor nem szereti)
C programba is beleépítheted azt a néhány assembly utasítást, amire szükséged van. Nem kell tőle megijedni!
Mindegy miben irod meg, a lenyeg a kovetkezo (pseudo nyelkven megirva):
A Te esetedben azonban nem kell a periodus kitolteset megvarni, viszont tobb csatornat kell tudni lekezelni, emiatt a kovetkezokeppen modositanam:
Ahogy irtam ezt az egesz folyamatot egy 20, max 22 ms-re idozitett timer interrupt inditana, ha nagyon muszaly akkor meg a duty cycle kitoltese is beinterruptozhaot, csak akkor at kell szervezni kicsit - de had ne en irjam meg az egeszet
Aha
és köszönöm áttanulmányozom és tesztelem ja és azokra a mail-re válaszolva amit priviben kaptam az elekronikában Nemes tanár úr segít és Ő a konzulensem illetve szoftver fejlesztésben Gál tanár úr segít nekem csak jegyzem Őket sem lehet álandóan zargatni apróbb próblémáimmal... Csak amiatt próbáltam felvetni itt is a problémáimat, hogy előbbre jussak. Megkérek mindenkit hogy "jó indulatú" mailjeiket ne privibe küldjék, tessék azokat nyugodtan fórumban prezentálni... Az eddigi segítséget nagyon köszönöm és perzse továbbra is fogok írni, mert tudom hogy van/vannak jó indulatú emberek...
Aha. Igazából fogalmam sincs honnan jött nekem, hogy headert kell töltenem.
Pontosabban igazából semmiről sincs fogalmam, de én merek kicsi lenni, bár kétségtelen tény, hogy erősen rám férne egy magyar nyelvű leírás erről a PIC-es C nyelvről, de előbb nem ártana, ha sikerülne működővé tennem a fordítót, bár nyilván én vagyok a szűk keresztmetszet ebben az esetben is... Adott ez a kód, amit a C18 mappájában találtam a példaprogramok között:
F10 után a "c018i.o" nevezetű fájlt hiányolja, holott a lib mappában benne van. Ugye először is feltettem az MPLAB-ot, majd a C18-at, az összes checkboxot bepipálva. Van még valami teendő, hogy le tudjon végre fordítani egy kódot, vagy mit rontok el ezen a roppant bonyolult folyamatsoron? Esetleg nincs valahol egy EHHEZ hasonlóan szájbarágós leírás a C18 használatáról ilyen "Hello World!" szintű dolgokkal a hozzám hasonló egységsugarú kezdők számára? Köszi az eddigi válaszokat, és a jövőbelieket is - már ha valaki visszaereszkedik a szintemre amíg el nem kapom a fonalat! Idézet: „F10 után a "c018i.o" nevezetű fájlt hiányolja, holott a lib mappában benne van” Fel is lehet venni a projectbe, vagy a Project opcioknal a Language Toolset Locations-nel kell beallitani, hogy hol vannak a libjeid - ld mellekelt kep...
Beállítottam a Language Toolset Locations-nél, illetve az Object Files-hoz is felvettem, de továbbra sem találja.
Elmentem, kilépek MPLAB-ból, megnyitom újra, minden a helyén, és mégsem jó. Ha nem rendszerinformatikusnak tanulnék, akkor még azt mondanám, hogy oké, de így elég gáz, hogy ennyit nem bírok összehozni...
Ugye nem bantalak meg azzal, hogy a Rendszer Informatikus es a Szoftverfejleszto Mernok ket kulon kategoria?
Project menuben a Build options / Prjoect alatt nezd meg a Directories-t, es ott a legorduloben a Libpath-t. Szerintem az most ures vagy valami butasagra mutat, kattints a Suite Default-ra es be kell rantania azt amit a Language Toolsuite-nel allitottal be. Utana fordulnia kell. (Bocs, en azt hittem elegendo, ha a projectbe felveszed, de ez az MPLAB eleg bugyuta neha, szoval azert ilyen kacifantos)
Az a furcsa, hogy a headert nem is nagyon kéne külön belinkelgetni(én nem szoktam, csak a linkert), annak magától kéne értetődnie a fordítónak.
Ajánlom figyelmedbe a MPLABŽ IDE User’s Guide doksit, és az MCC18 Compiler User’s Guide. Csatoltam egy komplett projectet, igez 2550-hez lett írva, még amikor ismerkedtem a C-vel. Remélem segít! Idézet: „Beállítottam a Language Toolset Locations-nél, illetve az Object Files-hoz is felvettem, de továbbra sem találja.” Nem kell felvenni! A Library könyvtár hozzáférési útvonalát kell rendesen beállítani a Project/Build Options/Project menüben. Ha a Language Toolset Locations-nál beállítottad, akkor már csak a Suite Defaults gombra kell rákattintanod...
trudnai/icserny: Nem a szoftverfejlesztés miatt mondtam - odáig még sajnos el sem jutottam -, hanem hogy nem bírom működőképessé tenni a fordítót, pedig volt már szerencsém ennél kacifántosabb dologhoz is.
Így van, üres volt az a rész, most már tökéletesen lefordul. Köszönöm! (Bár egyszerűbben is megoldhatták volna a fordító integrációját.) watt:Abszolút kezdő vagyok a PIC-ek terén, így csak abból indulok ki, amit tapasztalok. Eddig a kódok, amik a kezem ügyébe keveredtek, mind header includeolással kezdődtek. Nagyon köszönöm a doksikat, ill. a csatolmányt, átnézem (bár az angol nem az erősséggem), és remélem megjelenik a fény az alagút végén, hogy egy darabig ne kelljen ismét zargatnom titeket.
Sziasztok!
Csináltam két elektronikát mindkettőnek PIc a lelke USART - on keresztül komunikálnak egymással MAX232 - n keresztül. fel szeretném dobni a komunikációt egy kis szemléltetéssel. Szeretném ha ledek villognának a küldés és a fogadás reprezentálására. Hogy kössem rá a ledeket? Hová célszerű? A max232 elé vagy utánna?
Csak úgy szerintem sehová! Egy tranyót beiktatva a TTL vonalra lehet kötni esetleg, de elég nagy bázis ellenállással, hogy ne zavarjon bele kommunikációba.
Idézet: „Bár egyszerűbben is megoldhatták volna a fordító integrációját.)” Ez erősen relatív. Én elég könnyen beletanultam az elején, és nagyon jónak tartom az egész környezetet, főleg annak a fényében, hogy ingyenes! Amit csatoltam, abban sokmindent láthatsz a megszakítás kezeléséről is, és egyéb alap beállításokról. Ha az nem segít, akkor semmi(szerintem). Az angolt pedig meg kell tanulni, mint ahogy még én sem vagyok nagy speaker, de igyekszem!
Nem mondtam, hogy rossz, mivel nem is ismerem, pont ezzel van a baj. Csak azt hittem, ha már telepítéskor két oldalon keresztül kell pipálgatni, akkor a saját mappájában is megtalálja a dolgokat.
Tudok valamennyire angolul, de ez a terminológia nem szerepelt a középiskolai tananyagban, meg hát magyarul azért mégis jobb lenne, de úgy látszik nálunk ennek nincs akkora közönsége. Idézet: „trudnai/icserny: Nem a szoftverfejlesztés miatt mondtam - odáig még sajnos el sem jutottam -, hanem hogy nem bírom működőképessé tenni a fordítót, pedig volt már szerencsém ennél kacifántosabb dologhoz is.” A compiler mukodokepes, csak a project beallitasok nem jok. Ezert mondtam, hogy van kulonbseg a programozas es a rendszer integralas kozott Ezt tenyleg nem sertesnek szanom, hanem a tapasztalat beszel belolem, hogy sajnos a rendszer uzemeltetok nem tudjak hogy mukodik egy szamitogep, ok azt tudjak hova kell kattintani es hogy hogyan kell egy uj diszket behelyezni a rendszerbe. Viszont Te nagyon jo uton haladsz, hogy mindket dologhoz erts, szoval a vegen Te leszel a kivetel
[OFF]Közönsége az van, nem is kicsi, csak, aki már programozni tanul ( vagy próbálja elsajátítani ), annak az angol nyelv ismerete egyszerűen elengedhetetlen ( és ez alatt nem felsőfokú, anyanyelvi szintre gondolok ); értem ez alatt, hogy hiába van neked mondjuk egy 300 oldalas leírás magyarul a "szoftverfejlesztés mikrovezérlőre C -ben" ( most csak kitaláltam valamit ), attól még a könyvben ( vagy az adatlapokon ) előjönne legalább 5000 dolog, amihez úgyis ki kell nyitni a szótárat és/vagy esetleg olyan dolog, aminek nem árt tudni a magyar/angol megfelelőjét.
|
Bejelentkezés
Hirdetés |