Fórum témák
» Több friss téma |
Fórum » CCS PIC Compiler
Nem mazsolázstam végig de szerintem itt megtalálod amit keresel ( valahol
az első lap utolsó hozzászólásában létrehoz egy Custom_chars tömböt amiben definiálni kell a karaktert, gondolom valahol a kódban az is benn van hogyan tölti be az LCD-be) A hozzászólás módosítva: Ápr 30, 2017
Sziasztok!
CCS-C-ben (5.059-es verzió) próbálok dsPIC programmemóriát írni, de eddig nem sok sikerrel. A jelenség egyszerű, nem történik semmi. Próbálkoztam szimulátorral is, illetve a rendes HW-el is, de hiába. Megpróbáltam egyetlen cella írásával, illetve egy egész blokkal is , de hiába. A Flash törlés funkció sem működik megfelelően, annál beleír ugyan a memóriába, de a törlés helyett a memória címét írja csak bele. Valaki közületek próbált már hasonló mikrokontrollerben programmemóriát írni, és ha sikerült neki, megosztaná a tapasztalatait? Kösz szépen!
Nem tudom hogyan álltál neki, a drivers mappában van egy virtual_eeprom.c fájl, az segíthet...
Meg érdemes szétnézni a CCS fórumon, ott én még mindig megtaláltam amire szükségem volt. PIC24-nél játszottam egy darabig, program memoriában lementeni adatokat, működött, de a végén mégis inkább kapott egy külső eepromot. A hozzászólás módosítva: Jún 13, 2017
Kösz szépen!
Holnap megpróbálom ezt a módszert, hátha működik. PIC18-ban már sikeresen írtam a program memóriába, remélem, hogy itt is sikerülni fog.
Sziasztok!
Éppen ismerkedek a mikrokontrollerekkel és egy kis segítségre lenne szükségem. Egy PIC-ről szeretnék átküldeni adatot egy másikra UART RS232-vel. Ez küldeni az adatot. Kezdésnek csak egy számot szeretnék.
Ez pedig fogadná. C0-ra egy LED-et kötöttem, aminek annyiszor kéne felvillannia amekkora a kapott szám értéke. A valóságban viszont nem 5-öt, hanem rengeteget villan a LED és egyszerűen nem tudom, hogy miért. A B6 láb 1-re billentésével jelzi a más PIC-nek, hogy küldje az adatot.
Mindkettő egy 16f690 és belső oszcillátorról megy. Köszönöm!
A cél egyébként az lenne, hogy egy PIC feszültséget mér, majd továbbítja kb. 15m vezetéken keresztül a mért adatot. Nincs is szükség duplex kommunikációra.
Lehet, hogy nem is ilyen megoldással kéne elvégezni a feladatot?
Jól küldi ki az adatokat az adó PIC?
Logikai analizátorral vagy PC terminál programmal meg tudod nézni? Esetleg MPlab nyomkövetésben megnézni mit vesz a második PIC...
Megnéztem oszcilloszkópon az adó PIC-et és szépen elküldi a biteket.
A vevő PIC nyomkövetését még meg kell néznem, hogy hogy is kell.
Szia,
Próbáld meg feltölteni ezeket a kódokat és nézd meg, hogy ezekkel működik-e a dolog. Adó:
Vevő:
Üdv Máté
Köszönöm!
Sajnos legkorábban hétfőn tudom kipróbálni. A kód formázásában is van hova fejlődnöm.
Sziasztok,
A segítségeteket szeretnék kérni FT800, ill. FT810 EVE fejlesztő modul témában. Nemrég vettem egy FT800-ra épülő vm800b50a-bk EVE fejlesztő modult, illetve egy ugyancsak 5"-os 800x480-as FT810-es fejlesztő modult és szeretném használni PIC18F, ill. PIC24HJ MCU-val. Miután CCS C-vel dolgozom, az lenne a kérdésem, lenne-e valakinek az FT800-hoz, és/vagy az FT810-hez kimondottan CCS C-ben írt drivere és egy kis mintaprogramja, amelyen kicsit könnyebben el tudnék indulni, mint a gyári programozói leírásán, mert meg akarom tanulni a használatát. Vagy, ha nincs senkinek ilyen, akkor esetleg tudna-e valaki valahol a neten ilyenről (sokat kerestem, de nem találtam eddig), ha fizetős a csomag, az sem baj. Előre is köszönöm a segítségeteket!
Bocsánat a késői válaszért.
Kipróbáltam és működik is. Köszönöm! Sokat segített a megértésben.
Sziasztok!
Egy PIC16f690 segítségével szeretnék adatokat kiírni egy 2x16-os LCD-re. Sajnos bárhogy próbálkozok nem történik semmi. A ccs c által készített példaprogramot is kipróbáltam, de a kijelzőn nem látható semmi. A kontrasztot beállítottam úgy, hogy a "dobozok" éppen láthatóak legyenek.
Itt van a kód amivel próbálkoztam. Az lcd_init(); függvénynél akad el, de nem tudom miért. Minden segítséget előre is köszönök. A hozzászólás módosítva: Okt 11, 2017
Az lcd_init eljárás várakozásokat tartalmaz, felhasználása előtt be meg kell adni az órajel frekvenciáját. Az LDC -re menő vonalakat kimenetté kellene és (mivel analóg funkciójuk is van) digitális módra célszerű állítani.
Bővebben: Link
Köszönöm.
A tanácsok és a link alapján keresgéltem és végül sikerült is. Továbbra sem értem, hogy a fordító mintaprogramja miért nem jó, de ez már nem is annyira lényeges.
Egy olyan feladatot szeretnék megoldani, hogy ugyan azt a programot kéne lefordítani két különböző lábkiosztású áramkörre. ( tehát mondjuk az egyik panelon az LCD kijelző lábkiosztása más mint a másik panelon, de egyébként minden azonos)
Létezik arra lehetőség, hogy fordító megálljon, és megkérdezze melyik verziót akarom fordítani? "Kőbaltás" módszerrel így oldanám meg, csak lehet elfelejtem kikommentelni a megfelelő sort mielőtt rányomok a fordításra.
Idézet: „Létezik arra lehetőség, hogy fordító megálljon, és megkérdezze melyik verziót akarom fordítani?” Fordítónál szerintem nem, de a Makefile-ba bele lehetne patkolni egy ilyen szkriptet ami bekéri ezt. Idézet: „"Kőbaltás" módszerrel így oldanám meg, csak lehet elfelejtem kikommentelni a megfelelő sort mielőtt rányomok a fordításra. ” A fordítónak -Degyik segítségével tudsz define-okat átadni. (Ez olyan mintha a #define VALAMI-t írnál be.)
Sziasztok,
Segítségre lenne szükségem. Adva van egy programom, amelyben a display szöveges üzeneteit egy const char tömbben tárolom. Kénytelen vagyok const tömböt alkalmazni, mert egyébként nem férek el a RAM-ban. Szeretném megoldani, hogy egy változó futás-közbeni átállításával a program szövegei angolul jelenjenek meg, így készítettem egy ugyanolyan elemszámú és méretű const char tömböt az angol szövegeknek is. Eddig nincs is gond, így szépen elfér mindkettő. A problémám ott kezdődik, hogy nem tudom, miként tudnám az angol szöveget tartalmazó const tömböt átmásolni a magyar szöveget tartalmazó const tömbbe, felülírva az abban levő elemeket. Az átmásolásra azért van szükség, mert a program az eredetileg magyar szöveget tartalmazó tömb megnevezését használja mindenhol, így annak a tartalmát kell megváltoztatnom. Lenne valami ötletetek a másolás elvégzésének módjára? Előre is köszi a segítséget! A hozzászólás módosítva: Júl 16, 2018
Azért konstans, hogy az már ne változzon. A programodat kell átírni, nem a tömböket macerálni. Meg egyébként is, ha utána visszaállna magyarra, akkor azt hogyan tenné, ha felülírtad?
Én egyébként úgy csinálnám, hogy lenne egy nyelv pointer változóm, amit lehetne változtatni, s ennek adnám meg először a magyar tömb kezdőcímét, ha meg változás van, akkor az angolét. Így vissza is tudsz állni, ha kell, s a csere is egy pillanat műve.
Kedves Bence, az ötleted nagyon jó, köszönöm, viszont kérlek, segíts kicsit, mert nincs sok gyakorlatom a pointer direkt programozásban, így a szintaxisában sem.
Idemásolok egy programrészletet, kérdőjelekkel jelöltem meg a pointer beállítási részt (mármint ahol szerintem lennie kellene), kérlek, pontosítsd, hogy Te hogyan csinálnád. Előre is köszönöm a fáradozásod.
Őszintén nem látom a kódodban a muvkiir pointer szerepét és, hogy hol adod meg neki az értéket.
Én úgy csinálnám, hogy beállítanám a pointert, hogy mutasson az egyik tömb kezdőcímére (pointer=tomb1), ha meg váltani kell, akkor meg a másik címére (pointer=tomb2). Annyi a lényeg, hogy a pointer típusa egyezzen meg azzal, amire mutat, az se baj, ha ugyan abban a sorban definiálod őket (pl. unsigned char valtozo, *valtozoramutatopointer; ). A hozzászólás módosítva: Júl 16, 2018
A 'muvkiir' pointer szerepe az lenne, hogy tartalmazza annak a tömbnek az elemeinek a címét, amelyet kiválasztottunk. A 22. sorban láthatod a felhasználását. Jelenleg az egynyelvű verzióban ez egy char const tömb, amelyben a magyar szövegek vannak. Miután ez több száz helyen van a 22. sorhoz hasonlóan használva a programban, ezért úgy gondoltam, hogy az a legegyszerűbb, ha ezt definiálom át a program elején pointernek és a magyar és angol szövegeket tartalmazó tömbök pedig a 'muvkiir_hun', ill. a 'muvkiir_eng' nevű char const típusú tömbökbe kerültek. Így a tanácsod alapján a 'muvkiir pointer' a 'nyelv' változó beállítása, ill. értékadása alapján vagy a 'muvkiir_hun', vagy a 'muvkiir_eng' tömbre mutat, igaz? Az értékadást azért nem látod a kódban, mert nem tudtam a szintaxisát, így kérdőjeleket írtam a helyére. Nem gondoltam, hogy a pointer értékadás egy sima egyenlővé tétellel megoldható... Ezek szerint az alábbi változat lenne a jó megoldás?
Ha mégsem működik... akkor inkább szerintem
char const *muvkiir[32][22]; de nézd meg szimulátorban/debuggerben ... A hozzászólás módosítva: Júl 17, 2018
SPI kommunikációval küzdök ( PIC24FJ256BG106)
Az engedélyező kimenet átvált, de az órajel nem megy ki ... így adatok sem érkezhetnek be ... Be kéne még valami mást is állítanom?
Az alábbi két függvény közül az egyik visszatérési értéke 2!!!!!!
Miért?????
A hozzászólás módosítva: Dec 7, 2018
int1-be hogyan fér bele 2?
Hát ez az!!! És honnan jön???
És nem egyenértékű a két megoldás? A hozzászólás módosítva: Dec 7, 2018
Sziasztok! Azt szeretném kérdezni, hogy van-e arra mód, hogy ha én C-ben (CCS C compiler) írok PIC16F877-re programot, de ebbe a C kódba szeretnék régebben ASM-ben megírt programrészletet beilleszteni, akkor arra van valamilyen lehetőség? Köszi!
|
Bejelentkezés
Hirdetés |