už po několikáté se snažím naučit Cčko. a asi to zase brzo zapíchu
no ale k věci. v prvních pokusech se mi povedlo procesor nastavit a spustit. byla snaha s ledkama, adc, komparátor, přerušení s prioritama… takovej základ řekl bych. a tak nějak se i dařilo. ted po dlouhej době sem se k tomu vrátil a že pokročim. takže import knihovny a pokus něco napsat na LCD mám na to MPLAB X a importoval sem XLCD.h (podle návodu studentcompanion.co.za/post/ … roller-XC8 to vypadalo jednoduše) ale mě to prostě nic nedělá.
takže otázka: zkoušel ste někdo tuhle knihovnu a funguje vám to ???
krokovánim sem se dostal k tomu že při zavolání funkce OpenXLCD(FOUR_BIT&LINES_5X7); se mi zacyklí na prvnim volání funkce while(BusyXLCD()); dál sem teda vysledoval že to sleduje na datovym portu na pinu D7 signál. Když sem psal obsluhu LCD v assembleru tak sem nikdy ten pin nesledoval. dycky sem na všecko používal jen zpoždění, takže ani nevim že by alfanumerický displeje měli nějakou funkci že udávaj na nějakym pinu že sou zaneprázdněný.
ono asi bude nejfajnovější si napsat vlastní knihovnu, ale jak sem psal, učim se to a nechci zase moc machrovat a rovnou začít psát knihovny když ani nevim jestli s ní správně pracuju.
mnoo, takže už sem asi našel kde je ten problém. nevim jak to popsat aby to dávalo smysl, takže předem omluva za ten popis
vzal sem soubou XLCD.h a nakopíroval do složky s projektem. v main.c sem napsal #include “myLib/xlcd.h” (v origo používal na data PORTB, ale já chci PORTD, takže v souboru ve složce s projektem sem to přepsal. v mplabu to načetlo dobře ten muj přepsanej soubor) a dále koukám že se funkci openXLCD.c se znova načítá #include <XLCD.h> ale tady to nenačte ten muj upravenej soubor ale ten originální kerej má nastavenej PORTB.
Takže jak timdle ostatnim funkcim vysvětlim aby taky používali ten muj přepsanej soubor ?? možná mám jen nějak blbě přidaný soubory do projektu. tak jestli mi můžete nějak poradit ??
jojo, přesně tak. to sem se snažil popsat v souboru openXLCD.c je znova naincludovanej <XLCD.h> ale nenačte to ten muj upravenej na jiný porty ale ten originál. skusil sem to přepsat na “myLib/XLCD.h” jako to mám v main.c a načítá to ten muj soubor s přepsanejma portama, ale to mi vyhodí chybu že nemůže najít soubor.
no ono to normálně žádnou chybu nehlásí. chybu že nelze najít soubor to vyhodí jen v případě když sem se pokusil v souboru openXLCD.c přepsat řádek #include <XLCD.h> na #include “myLib/XLCD.h” v domnění že by to mohlo začít používat ten muj soubor s přepsanejma portama.
skusim teda ještě přejmenovat muj upravenej soubor a dát do složky přímo k main.c a nedávat do další složky.
to sem udělal a vyhodilo to chybu že nemůže najít uvedenej soubor. a už když sem to psal tak mi to ani nevyhazovalo nabídku na to moje umístění ale jen na ten original. ale dobrá, jak dorazim dom udělám to znova a dám to sem.
takže věc se má takhle, at sem dělal co sem dělal tam se mi nijak nepovedlo dostat ten stav aby mě to vyhodilo tu hlášku co včera. že nemůže najíst soubor. takže sem chvili hledal a přemejšlel a jaksi se mi povedlo to rozject a už to funguje a ukazuje
udělal sem to tak, že sem ve složce s projektem vytvořil složku myXLCD a do tý sem vložil hlavičku XLCD.h ale přejmenoval sem si jí na myXLCD.h, dám sem do týhle složky nakopíroval ostatní soubory (openXLCD.c busyXLCD.c atd) v hlavním main.c sem napsal #include “myXLCD/myXLCD.h” a ve včech souborech openXLCD.c busyXLCD.c atd sem přepsal #include <XLCD.h> na “myXLCD.h” no a v hlavičce myXLCD.h sem eště přepsal první dva řádky #ifndef __XLCD_H #define __XLCD_H
na #ifndef __myXLCD_H #define __myXLCD_H
jen si teda vůbec nejsem jistej tim co přesně dělej ty dva řádky #ifndef __myXLCD_H #define __myXLCD_H
no a vyhazuje mi to ted několik varování že sem předefinoval porty:
myXLCD/myxlcd.h:34: warning: (111) redefining preprocessor macro “DATA_PORT” (C:\Program Files (x86)\Microchip\xc8\v1.33\include\plib\xlcd.h: 34)
to můžu v klidu přehlížet? je možnost tyhle varování vypnout jako to šlo v assembleru ?
Rek bych ze ti to pored bere ten starej h. V tom varovani mas na konci cestu k tomu souboru tak si ho otevri a koukni se na radek co je na konci pred dvojiteckou .34 radek.
Asi bych zalozil novej projekt.Je mozny ze ty cesty sou nastaveny v tom projektu (nekoukal sem na ten odkaz) . v ostatnich souborech uz neni vlozenej oreginal h ?
kdyby to bralo starej tak mi to na LCD nic neukáže. v ostatních souborech sem to přepsal a taky to používá tu mojí přepsanou hlavičku. spíš bych to viděl na založení novýho projektu. přeci jen se s tim peru už několikátej den a lecos sem už naklikal. a na tom řádku jak to vypisuje tak je definice portu a na dalších řádních definice řídících pinů. takže to vypadá jakoby to porovnávalo ten muj přepsanej soubor s tim origo.
To bohužel zřejmě není chyba, ale vlastnost To IDE je bohužel dost nestabilní a často si dělá co chce (a pokaždý něco jinýho). Někdy neuloží soubor, jindy spadne, někdy přestane ukazovat proměnný v simulátoru ve Watch, pak zas třeba přestane akceptovat volby projektu - stalo se mi, že volbu “Build in absolute mode” to zničehonic začlo odmítat, nešel přeložit projekt, což se povedlo až po odstranění tohoto zaškrtnutí, přestože projekt (v ASM) byl psanej ve statickým kódu… Jindy např. zamlčuje interní chyby v Javě - dole v pravým rohu se rozsvítí na liště malinkatý červený mínus (čehož si sotva všimnete) a až když na něj najedete a kliknete, tak teprv chybu vypíše… atd apod.
Je to škoda, protože to prostředí je jinak poměrně pěkný, ovšem tahle “náladovost” až k skoro k nepoužitelnost to celý hodně shazuje. Neumím si představit a úplně mě děsí, že by se stávalo pravidelně, že bude člověk půl dne, celej den něco kódit, pak klikne “Save” a jde třeba spát, a druhej den tam ten kód prostě nebude. Přistupovat k tomu primárně s nedůvěrou, dělat tomu prostředí pořád arbitra, policajta a watchdog zároveň (co chvíli to vypínat a znova pouštět), tak jak to teď aktuálně potřebuje, je velmi únavné. Pod Linuxem to navíc ani neumí běžet v userspace, vyžaduje to pro běh práva správce systému - opět špatně (tohle konkrétně je přímo hnus).