Fórum témák
» Több friss téma |
Hol találok egy leírást erről a C18 -ró amiben érthetően (számomra is azaz hülye gyerek módjára) le vannak írva ezek a változó létrehozások. A fordító folyamatosan a nem tetszését fejezi ki számomra minden próbálkozásomra . A Kónya féle PIC.... könyv harmadik kiadása tartalmaz C-t, de eleve C30-at, valamint a Kopják József úr feltételezi, hogy láttam már C nyelvet valaha. Most látok először, és már kezd is elmenni tőle a kedvem. Segítsetek!!!
Épkézláb leírásról kérek egy linket, vagy bármit. Lehetőleg magyarul mert az angoltudásom elég gyatra. A hozzászólás módosítva: Jún 1, 2013
Idézet: „valamint a Kopják József úr feltételezi, hogy láttam már C nyelvet valaha. Most látok először” Van egy jótanácsom: ne PIC-en akard a C-t megtanulni. Fogj egy PC-s ingyenes C fordítót meg környezetet, nézzél hozzá valami kezdőknek szánt C leírást, és előbb tanuld meg a C nyelvet használni kényelmes környezetben, csak aztán álljál neki küszködni mikrokontrolleren.
Szia!
Ha a HobbiElektronika fórumnak végigolvasod (figyeled ) a PIC-es témáit, akkor magyarul is sokat tanulhatsz: pl. Bővebben: Link ! Icserny fórumtárs oldalán is sokat lehet tanulni MAGYARUL, de keress rá ! Egyébként csak úgy fogsz előrejutni, ha nem mindig a "sült galambot" várod, hanem Te is próbálsz előre jutni ( keresők használata ) !! A hozzászólás módosítva: Jún 1, 2013
Köszi a jó tanácsokat de hidd el nem a sült galambot várom. Pont ezért tévedtem el, mert mertem gondolkodni és nem akartam másolni. Programoztam már egy pár nyelven (Clipper, VBasic, Delphi, ASM, SQL) egy-két gyengécske alkalmazást ami nekem kellett, de a C mindig a mumus volt. Szerintem az előítéleteimmel van gond azaz velem de ezt is leküzdöm majd.
Az nem másolás, ha olvasol, esetleg példaprogramokat kipróbálsz és így megértesz egy nyelvet! Remélem ezzel Te is egyetértesz, mivel már használtál pár nyelvet, még ha minimális szinten is! A kereső használatára való utalást nem személyeskedésnek szántam, hanem tényleg nagyon sok információ megtalálható már itt az oldalon: el kell olvasni, keresni kell és ha nincs ( vagy a leírtak ellenére nem érthető ! ), akkor kell rákérdezni !
Valaki egyszer linkelt egy video kurzust, ha jól emlékszem pont C-ül beszéltek...
Ezt olvasd el mindenekelőtt, ha bármilyen C-ben akarsz programozni: A C könyv!
Én is ezt linkeltem HP41C kolléga "által" !
A hozzászólás módosítva: Jún 1, 2013
Örök hála neked
Végre egy könyv ami nem haladja meg szellemi képességeimet. Szerintem egy darabig nem fogok kérdezni, de a végeredményt mindenesetre közlöm veletek. Köszi még egyszer.
Az általam belinkelt hozzászólás alján is ez volt ... Figyelj kicsit jobban !
Elnézésedet kérem, de csak most vettem észre a linket a belinkelt hozzászólás alján.
OK, semmi gond, de mit gondoltál, miért mutatom , ill. p_istvan hozzászólásánál is jeleztem ?!
A hozzászólás módosítva: Jún 2, 2013
Első nekirugaszkodásra ezt sikerült összehoznom. A szimulátorban működik, de valamiért a megszakításkor nem ugrik, hanem elszámol szépen a 808-as címig és végrehajtja az utasításokat. Kezdek azon lenni, hogy nem használok bootloadert mert akkor egyszerűen csak 8 utasításnyit késik max. Ha van valakinek valami építő jellegű ötlete, azt elfogadom.
Szerintem a szimulátor nem tud a bootloader-ről ! Megszakítás esetén a normál címre ugrik és mivel Te a bootloader miatt oda nem írtál utasításokat, ezért végiglépked az ott lévő NOP-okon, míg el nem éri a loader miaati megszakítás címet! Ha élesben nem megy, akkor valami más gondnak kell lennie! A programot nem néztem, sajnos most más bajaim vannak !
A hozzászólás módosítva: Jún 30, 2013
Nem bogarásztam utána minden részletnek, de a
#pragma code _RESET_INTERRUPT_VECTOR = 0x0800 sor után szerintem kellene egy
definíció is (nálam legalábbis így működik a reset vektor áthelyezése). Csatlakozva az előttem szólóhoz: a szimulátor számára 0x0, 0x08, 0x18 címekre el kellene helyezni egy-egy ugró utasítást a 0x800-zal magasabb címekre!
Sziasztok!
MPLAB C30 30F6012A -t használva a lenti union-t nem a kívánt területre teszi a fordító.
Mindezt egy régebbi projetemből másoltam át, amiben (most újra fordítás után is) jó helyre kerülnek! Warning mindkét projectben van, azt mondja hogy: ignoring address attribute applied to member ProgrammingAddressLong De akkor a régiben miért van azóta is jó helyen? Hogy kellene neki megmondani hogy 0x986-0x988 területre tegye?
Így meg.. de hogy a másik projectben miért jó, az rejtély..
A két project linker fájljai és a felhasznált PIC-ek egyformák?
Találkoztam olyan gyári projectekkel, amikben kapcsolók(script parancsok) voltak beállítva, az is megváltoztatja a környezetet. Sajnos nem volt erőm megérteni, mire voltak jók, csak beállítottam úgy, mint a gyári és jó lett. Lehet, itt is ilyesmi van. A hozzászólás módosítva: Jún 30, 2013
Én változtattam a linker fájlokon, de csak annyit hogy a program memóriában szekciókat hoztam létre, minden más ugyan az. A PIC is ugyan az. Azt néztem még, hogy a régi projetben lehet hogy csak véletlenül kerültek jó helyre, mert előtte minden hely foglalt volt. Ezt majd még megnézem, de végül is megoldódott.
Na ez nekem nem műkszik. Valami hiányzik még.
Meg is találtam, mielőtt a módosítás lejárt volna A hozzászólás módosítva: Júl 1, 2013
Sziasztok!
Kérlek benneteket térjünk még vissza erre a kérdésre, mert még mindig nem tiszta számomra minden. Szóval: Most van két egymástól teljesen független C30-as projetem, egy saját bootloader (0-0x3FFE címig), és egy nevezzük firmware-nek (0x4000 -től). Mindkét program (külön-külön) a szimulátorban és a PIC-en (30F6012A) is tökéletesen működik. A bootloadert rengeteget teszteltem, jó helyre ír, saját magát nem bántja, stb. A firmware nem hív a boot területen lévő függvényt, a boot induláskor megnéz egy EEPROM területet, ettől függően maradunk a bootloader módban, vagy meghívjuk a firmware függvényt (fix 0x5000 címen) a firmware területen. Ezen kívül volt 6 megszakítás, amit szintén ugye gyárilag a boot területen volt, innen is fix címeken lévő függvényeket (0x4000-0x4FFE) hívok a firmware területen. De a megszakításokat már kikapcsoltam. Amíg a program egyben volt, (1 project, 1 .c forrásfájl) addig működött minden, simán tudtam firmware-t frissíteni, de beláttam hogy ez így nem teljesen ok, nem szívesen térnék erre vissza. A fenti módon viszont egyszerűen nem tudom összehozni... rendesen debuggolni sem tudok így. Ha Pickit 3-al felprogramozom a PIC -et (bootloader project), majd a bootloaderrel rátöltöm a firmware-t, akkor nem megy: A firmware függvényból mindent kikommenteztem, már csak egy port billegtetés, de nem jutunk el odáig. Szkóppal nézve mintha még a boot területen resetelne mindig a PIC. Ha viszont ez után kiolvasom a PIC-et, és átkapcsolok szimulátor módba (firmware projet az aktív), akkor minden rendben, meghívódik a firmware függvény.. a program memóriában az van, aminek lennie kell, 0x4000 -is boot, majd onnantól firmware.. Mit nem csinálok jól a két program összelinkelésénél? Hogy szoktatok ilyenkor debuggolni? Egy hete küzdök vele esténként, már nagyon kezd bosszantani..
Reset után minden alaphelyzetbe kerül, de ha a bootloader részről akarod átdobni a vezérlést, nem elég csak a kezdő címre irányítani a végrehajtást, minden bankot és vezérlő regisztert ami szóba jöhet a címzésnél és elágazásoknál, megszakításoknál, alap helyzetbe kell állítani(mint, ha reseteltél volna). Persze lehet, hogy nem pontosan értem a feladatot, de szerintem itt lehet a gond.
A debuggolás nem fog menni két egymástól elkülönülő programnál. Vagy az egyik, vagy a másik... A hozzászólás módosítva: Júl 4, 2013
Szerintem jól érted.
A bootloader szerkezete:
És a Firmware project:
Mindkét project linker fájljában:
A boot program nem függvényeket hív a firmware területeken, hanem goto -val adja át a vezérlést. Így tökéletesen működik. Veremhibák voltak, vagyis a lokális változók veremben történő elhelyezésével voltak problémái a fordítónak.
A hozzászólás módosítva: Júl 14, 2013
Sziasztok!
Szeretnék segítséget kérni, grafikus LCD-hez keresek Hi-Tec C könyvtárat. PIC16F877A-val szeretnék hajtani egy DISPLAYTECH 64128Q (Lomex 37-00-71) kijelzőt. A kijelzőn SBN6400G meghajtó van, amiről annyit sikerült kideríteni, hogy megfelel a KS0108-nak. Ha esetleg van valakinek, vagy tud linket, ahonnan letölthető kérem szánjon meg vele. Köszönettel: gapati
Bátor vállalkozás, tekintve, hogy a grafikus megjelenítés igényel némi memória kapacitást, amiben a 16F sorozatú vezérlők azért nem bővelkednek annyira. A 18F sorozatot már inkább érzem alkalmasnak grafikus kijelzőhöz.
Mindenesetre ajánlom figyelmedbe ezt az oldalt. Nem Pic-re ugyan, de C-ben könnyen lehet adaptálni.
Szia!
Elszomorít amit mondasz! Mikropascalban kezdtem a kijelzőt szeliditeni, de hamar rá kellett jönnöm, hogy a 2K-s demó sajna semmire sem elég. I2C, és az LCD megette a programterületet, és mivel a gyógyításban nem nagyon tudtak segíteni, ezért kellett másik programnyelv után nyúlni. Eddig asm-ben programoztam a PICeket, de ezt a dolgot bizonyára bebuknám ebben a nyelvben. A Hi-Tech C-hez találtam gyógyítást, ezért kezdtem ezzel foglalkozni. A pascal nagyon ígéretes lenne, de mivel magam szórakoztatására használom a PICeket, nem engedhetem meg magamnak a fúllos fejlesztőeszközt. A 16-os sorozatot már elég jól ismerem, ezért is gondoltam továbbra is ezekre. Köszönöm az infót, gondolkodom rajta, lehet hogy vátani kellene a 18-as sorozatra. Üdv: gapati
Lehetőségként még ott vannak a 16F1xxx sorozat tagjai. Egy köztes lépcső a 18F és a 16F között. Merem ajánlani a 16F1939 a 16F887A helyett.
Érdemes megnézni, hogy mit pakoltak bele. Vagy összehasonlítva a kettőt. A hozzászólás módosítva: Júl 15, 2013
|
Bejelentkezés
Hirdetés |