PIC problém s kompilací
Moderátor: Moderátoři
Takže ten oscilátor na 64MHz se mi nějak nepodařilo rozchodit vypadalo to že se PIC nějak blokl a že je po něm,tak jsem to nastavil na iterních 8MHz a namísto čínskýho Pickitu3 jsem použil český PRESTO a procesor ožil což mi spadl kámen ze srdce neb není nikde 18F26K80 k sehnání xc.h nestačí vložit jen v main.c musí být i v hw_set.c jinak to nezná názvy registrů co se týká displeje tak už fakt nevím objednal jsem z číny nový a jestli nepomůže ani to dám tam ledkový 14 segmenty
Tak uz to chodí jen doladit časování protože po náběhu napájení to neudělá nic ale když to po chvilce resetuju tak to zobrazuje.Asi to bylo tím oscilátorem a časováním.Ještě mi není jasná jedna věc když napíšu LCD_PUTCH("A"); tak to vypíše nesmysl ale když dám LCD_PUTCH(0x41); což je ascii kod pro A tak to zobrazí správně.Jak se v c zapisujou ascii znaky? v asm stačilo napsat něco jako a'A' a pochopil to ale v c nevim.
Tak uz to chodí jen doladit časování protože po náběhu napájení to neudělá nic ale když to po chvilce resetuju tak to zobrazuje.Asi to bylo tím oscilátorem a časováním.Ještě mi není jasná jedna věc když napíšu LCD_PUTCH("A"); tak to vypíše nesmysl ale když dám LCD_PUTCH(0x41); což je ascii kod pro A tak to zobrazí správně.Jak se v c zapisujou ascii znaky? v asm stačilo napsat něco jako a'A' a pochopil to ale v c nevim.
Ještě pro Mahonyho ten oscilator INTIO2 byl nastavanej dobře teď jsem koukal do datasheetu a tam píšou na straně 48
When the oscillator is configured for the internal
oscillator (FOSC<3:0> = 100x), the PLL can be
enabled only when the HF-INTOSC frequency is
4, 8 or 16 MHz.
Otázka je proč ten displej nefungoval.Ledka blikala jak měla.
When the oscillator is configured for the internal
oscillator (FOSC<3:0> = 100x), the PLL can be
enabled only when the HF-INTOSC frequency is
4, 8 or 16 MHz.
Otázka je proč ten displej nefungoval.Ledka blikala jak měla.
Problém může být příliš krátký čas na init displeje. Tady je to skryté v modulu xlcd, takže není jasné, jak se určuje čas po který trvá init. Jedině se podívat na osciloskopu, za jaký čas tam jdou data při 8MHz a 16MHz. Ale problém může být i v jiném časování signálů. Pokud je modul nepředkompilovaný, šlo by šáhnout do zdrojáku a upravit to.
Měnil jsi při nastavení na 16MHz i tohle v hw_set.h?
#define _XTAL_FREQ 8000000
Myslím, že podle téhle konstanty se vypočítává zpoždění ve funkci __delay_us(). Stejnou definici máš i v main.c tak ji tam odstraň.
Já dělám s STM32, takže tyhle vnitřní záležitosti okolo picu neznám, ale je to u těch MCU dost podobné.
Pokud to nezabere, tak bych zkusil všechny časy v tom delay při práci s displejem zvojnásobit.
#define _XTAL_FREQ 8000000
Myslím, že podle téhle konstanty se vypočítává zpoždění ve funkci __delay_us(). Stejnou definici máš i v main.c tak ji tam odstraň.
Já dělám s STM32, takže tyhle vnitřní záležitosti okolo picu neznám, ale je to u těch MCU dost podobné.
Pokud to nezabere, tak bych zkusil všechny časy v tom delay při práci s displejem zvojnásobit.
To ondraN ten analyzator jsem nakonec vytáhnul,ono to totiž ze začátku vypadalo že ty displeje 2x20 na kterých jsem to testoval budou chodit,protože fungovaly-nefungovaly.Nakonec byli asi nejaky načatý a chcíply ůplně.
To asdf díky ale nakonec to byla nejspíš chyba HW a to že 6 displeju ze 7 bylo chcíplejch,i když jen ležely nepoužitý..
No a nakonec mám tu sdisplej Raystar RG12864B-BIW-V ten nebyl nikdy použitej a skladovanej v normální pokojové teplotě,a včera jsem ho chtěl otestovat a po připojení na napájení ten displej buď chudáka 7805 přetíží nebo zkratuje protože ledka která je za 7805 zhasne.Setkal jste s tím někdo? Je možný že by ty LCD takhle chcípaly jen tím že někde třeba 3 roky leží?
Ještě tu mám displej 240x128 kompatibilní s T6963 neznámého původu ten jsem chtěl testnout s arduinem a knihovnou U8glib ale ten můj displej má jaksi navíc pin MD2 takže zatím to odkládám.Leda by jste někdo měl plnou verzi mikroC a byl ochoten mi zkompilovat exampl co tam k tomu mají.
To asdf díky ale nakonec to byla nejspíš chyba HW a to že 6 displeju ze 7 bylo chcíplejch,i když jen ležely nepoužitý..
No a nakonec mám tu sdisplej Raystar RG12864B-BIW-V ten nebyl nikdy použitej a skladovanej v normální pokojové teplotě,a včera jsem ho chtěl otestovat a po připojení na napájení ten displej buď chudáka 7805 přetíží nebo zkratuje protože ledka která je za 7805 zhasne.Setkal jste s tím někdo? Je možný že by ty LCD takhle chcípaly jen tím že někde třeba 3 roky leží?
Ještě tu mám displej 240x128 kompatibilní s T6963 neznámého původu ten jsem chtěl testnout s arduinem a knihovnou U8glib ale ten můj displej má jaksi navíc pin MD2 takže zatím to odkládám.Leda by jste někdo měl plnou verzi mikroC a byl ochoten mi zkompilovat exampl co tam k tomu mají.