Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Szerencsére már vannak elég izmos gépek a java-t futtatni, hogy fel lehessen programozni a pic-et, mint például 1x rack server, és 192x ram kártyák
Üdv!
MPLAB-X, XC32-ben le lehet kérdezni a fordítás dátumát, idejét? Olyanra gondolok, mint az Arduinoban a __DATE__ és __TIME__. Próbáltam keresni, de nem találtam, nem tudom, ez általános-e a c++-ban.
Köszi, akkor újult erővel keresek. Nem tudom, miért nem találtam.
Mit keresel?
pl nálam: putrsUART("\r\n\r\n\rMicrochip TCP/IP Config Application ("TCPIP_STACK_VERSION", " __DATE__ ")\r\n\r\n"); de ha keresgélni akarsz: Bővebben: Link A hozzászólás módosítva: Júl 27, 2018
Másik kérdésem: dolgozik valaki linux alatt?
A konfigurációm: kubuntu 14.04 lts / MPLAB-X 4.15 / XC32 v2.05. Gondolom valami beállítás kérdése lehet ami nálam hibás. Két dolgot is tapasztalok: a szerkesztőben sok hivatkozásra mondja, hogy kielégítetlen, ugyan akkor az output ablakban hibátlan a fordítás, és a program fut is. (Volt olyan szitu is, hogy 1 paraméterrel kielégítetlen volt a funkció hívás, egy csak kamu második paraméter berakásra meg jó lett.) A másik dolog, hogy csak akkor lesz hibátlan a fordításom, ha a main-be a cpp-t is berakom #include-dal, nem csak a h-t. Sőt, a h nem is szükséges oda. Mi lehet nálam rossz, vagy hibás beállítás? Hátha valaki tudja, vagy legalább tippje van.
Próbáltam átvenni egy sort egy arduino programból, de hibát dobott. Feltehetően nem pont ugyan úgy kell használni.
Próbáltam keresni a help-ben, de ezek szerint nem jól, eddig nem jött össze. Most viszont megtaláltam a help-ben, kössz a "bíztatást"! A hozzászólás módosítva: Júl 27, 2018
Megírhattad volna mit írtál, és arra mi volt a hibaüzi...
ha ez segit a tipuskonverzióban... TCPPutROMString(sktHTTP, (ROM void*)__DATE__" "__TIME__); A hozzászólás módosítva: Júl 27, 2018
Köszi, már lényegtelen, már működik.
Mindenesetre segítettél, mert kiderült van ilyen, csak én voltam béna.
Hali!
cpp-t nem "szoktunk" include-olni, nagyon nem elegáns. Gondolom a "megfelelő" include fájlt nem rakod be mindegyik forrásba, vagy nincs benne a használt függvények deklarációja, így nem tudja a paraméter ellenőrzést normálisan megcsinálni és valami int fg(int akármi) feltételez, és ami nem így hivatkozik rá, arra warning-ot dob. De ha konkrétummal nem szolgálsz, mi hol van definiálva, mi a fg, hogy hívod meg, mi a hibaüzi, nem lehet segíteni...
Tudom, hogy nem "szoktunk", és az alap feltételezésem, hogy valamit rosszul csinálok, vagy valami beállításom rossz. Pont azért szeretnék rájönni, mert arduino alatt nem csinálok ilyet, ott csak a "h"-t include-olom, és jó. Itt meg valamiért nem. Ha ott tudom jól csinálni, itt vajon miért nem? Ezt szeretném megfejteni.
Ma már nem állok neki, de holnap "alkotok" valami kis mintát, ne rendes nagy forrás fileokat kelljen ide berakni.
Írtam egy kis mintát, a hiba ebben is előjön.
Konfig: Kubuntu 14.04 LTS (linux) / MPLAB-X v4.15 / XC32 v2.05 rutin.h
rutin.cpp
main.cpp
És végül az Output ablak a fordítás után. Ha a cpp is include-olva van, akkor hibátlan. Az is lehet, hogy a hibát mutatja az outputban, csak én nem tudom? A rutin.h és rutin.cpp egy saját include könyvtárban van, de ha bemásolom a projekt könyvtárába, akkor is ugyan ez a baj.
Hali!
Hol a miabaj.cpp tartalma, mert ezt próbálja fordítani...? Nem látom hogy a rutin.cpp + main.cpp-t akárná fordítani... Biztos ez az alapértelmezett project, amit fordítasz? Próbálj meg egy móriczka gyári mintaprogit fordítani, ha az lefordul, akkor azt írd át...
A "main.cpp" a "miabaj.cpp", elírtam a nevet itt a hozzászólásban.
Mivel csak egy projekt van nyitva, feltételezem, hogy ezt fordítja. Kikommentezve ott van az "#include rutin.cpp" is, ha az nem komment, hibátlanul fordul, sőt, a "rutin.h"-t nyugodtan kikommentezhetem. Összetömörítettem a projekt könyvtárat. Ez ugyan kapott a 2-es számot, de csak annyiban különbözik a fentebb bemásolttól, hogy a "rutin" file-ok is a projekt könyvtárában vannak, nem egy külön "include" könyvtárban. A fordításkor ugyan úgy viselkedik. Nem vagyok egy c++ guru, de gondolom, a forrás file-ok szintaktikája rendben van, Arduinóban nem szokott velük gond lenni.
Dev board kérdés.
Amit gyártanék, az egy usb packet sniffer hardveres alapon. Ami kell hozzá, az két normális teljesítményű pic összekötve, amiken be van kötve az usb, és két usb kapcsolat közül az egyiken tápfelvétel van, a másikon táp support (egy host oldal, és egy kliens oldal). Vannak rá összetevők egybekötögetni breakoutokat, de mechanikailag megszokhatóbb, ha létezik olyan board egyben is. Aki ami arra alkalmas eszközt látott, dobjon egy linket plz.
Sziasztok! A youtube-on találtam Vicsys barátunk által készített C-programozásról három tutoriál filmet. A harmadik egy lépcsőházi világítás kapcsoló programját mutatja be. Két kérdésem van, az egyik, hogy hogyan tudom beilleszteni a programba azt, hogyha haladok a lépcsőházba akkor a PIC-en egy másik lábat kb. 5-másodperc után magas szintre kapcsolja és azt kb. 10-másodpercig tarja. A másik kérdésem az, hogy hogyan lehet C-ben megoldani, hogy a gombnyomást megszakításból figyelje? A segítséget előre is nagyon köszönöm!
Itt van a C-kódja:
A hozzászólás módosítva: Aug 3, 2018
Üdv!
DMA ügyben kérnék egy kis segítséget. XC32 már nem tartalmazza a periféria könyvtárakat, felraktam ami külön letölthető de már elavult. System.h-ban is javítgatni kellene, meg még ki tudja hol, hogy fusson. Gondoltam írok egy saját rutint, de ahogy nézem annyira nem egyszerű. Valaki tudna adni valami mintakódot vagy egyszerű instrulciókat mit és hogyan kell beállítgatni illetve hogyan megy a küldés? Ja és a memóriából SPI-re szeretnék küldeni.
A Legacy PLIB 32 bitre igazándiból a harmony-val megszűnt.
De neked DMA-hoz driver kell vagy PLIB? Jelenleg a PLIB (többnyire) annyit csinál hogy bit set/clear nek ad egy olvashatóbb nevet. Ha nem vagy harmony project párti akkor esetleg csinálhatod azt is hogy leszeded a harmony-t és ki ollózod belőle a DMA source-t az nálam eddig működött (csak én harmony-val használom). Valamint a harmony-ban van DMA example-t is. Itt 594. oldaltól látsz példákat, hogy a PLIB-et hogyan kell használni. És a Harmony-n belül ha kell találsz drivert is (csak a DMA az system service) apps/examples/system/dma alatt. A hozzászólás módosítva: Aug 12, 2018
Igen, sajnos megszűnt ezért gondoltam, hogy egy saját rutint írok, de rengeteg flag, IRQ meg egyéb beállítás van, és még nem igazodok el bennük. A harmony nem a barátom, és nem most akartam magam beleásni, de ha azt mondod a DMA source egyszerűen kiollózható megnézem.
Köszönöm.
Én a 2.04-est használom most.
Először nagyon borzasztó használni mert nem érted mi hol van viszont amikor rájössz utána nagyon gyorsan lehet vele haladni. Nekem a SYS_TMR-el volt egy problémám azt csak adott beállítás mellet bírtam életre mikor bármelyikkel kéne mennie. Ha esetleg így elsőre nem látod át a DMA source header-jeit akkor szól összeszedem őket mi kell hozzá.
Sziasztok! Van egy igen komoly problémám. XC16, dspic33ep512mc504.
Valami oknál fogva a fordító nem enged az 50k memóriából 28672 bájtnál többet lefoglalni. Az lábbi példaprogrammal kipróbálható:
Ebben a formában még lefordul, de ha már 1793 elemű tömböt szeretnék, akkor hibára fut a fordító. Találkozott valamelyikőtök hasonló problémával? Nem tudok sajnos rájönni mi lehet a probléma forrása, és szükségem lenne még ramra. Köszönöm előre is a segítséget!
A fordító jelez hibát (pontosan mit?) vagy a linker?
Két tömbbe létre tudod hozni?
Nem ismerem ezt a fordítót, de lehet valami olyan huncutság, hogy a dsPIC adat memória címterületetét szegmentálja. Az első 4k az SFR, utána jön az X, majd az Y memória. Az X-ben lesz a veremtár és a változók területe is. Az X és Y különválasztása a speciális adatfeldolgozó utasítások miatt van.
A hozzászólás módosítva: Aug 15, 2018
Motto: A 16 bites PIC azért jó, mert benne nincs lapozásos memóriakezelés.
Nincs itt semmi probléma, csak egy kicsit számolni kell: A RAM címek byte címek. 0x0000 .. 0x0FFF az SFR címtaromány (4kbyte), a 0x1000 .. 0x7FFF a GPR címtartomány (28k). Így elérünk 32k byte -ot (4096 + 28672 = 32768). Ha a cím legfelső bitje 1, akkor a PSV vagy EDS (Extended Data Space) területet címzünk. XC16 standard library and EDS memory A hozzászólás módosítva: Aug 15, 2018
Sajnos én ebből egy mukkot sem értek, csak azt, hogy ez így normális. Mit lehet tenni, ha egyáltalán lehet valamit tenni annak érdekében, hogy tudjak még memóriát használni?
Szerintem nem is kell érteni, a képek és Hp41C első hozzászólása elég "beszédes".
De nagyon leegyszerűsítve 32k(SFR+GPR) fölött más címen érsz el memóriát. Az example-ből kiindulva így tudsz 40k címezni
OK, megértettem, köszönöm a segítséget. 32 bites pic-et fogok használni kizárólag ezentúl
|
Bejelentkezés
Hirdetés |