Autor |
Zpráva |
Cserv
|
Napsal: stř 27.04.2016 10:24 |
|
Celkem nový uživatel
|
|
Registrován: 12.7.2013 Příspěvky: 86 Bydliště: Praha - Žižkov Obrázky: 15
|
Zdravím, naprogramoval jsem dlouhý program, ale není až tak dlouhý, že by překročil 2Kb. Po převodu na soubor hex má velikost kolem 1800 bajtů. v procesoru 16F628A, který má 2048bajtů, provede kolaps a v procesoru 16F877A s 8192bajtů to funguje bez problému. A přitom když to dám na programovací program, tak pod konce programu je ještě několik řádků s 3FFF. Viz I podle Data sheetu tam mám dost místa. Dokonce v PIC IDE Simulátoru to jede bez problému. Ted otázka v čem je problém? Nebo se ty paměti také rozdělují pomocí BANKy? Pokud ano, prosím uveďte jak. Stejně ten program se vejde podle datasheetu do jendé BANKy. Podle Datasheetu by se vešel i klidně 16F627A. Děkuji 2x P.S. Na 16F628A jsem zkusil jiný kratší program a funguje. RAM paměti taky nemám mnoho, jen 15 řádků.
_________________ Graupner MX-12 HoTT, Beta 1400, Funcub 1400, T-Rex 450Pro
|
|
Nahoru |
|
|
|
|
|
ellet
|
Napsal: stř 27.04.2016 12:54 |
|
Mazák
|
|
|
Registrován: 12.2.2016 Příspěvky: 1986 Bydliště: Vysočina, ČR
|
Nikdo se k tomu nehlásí (a ani se nedivím, je to trochu guláš). Ale co mě tak napadá. Nepíšeš v čem to programuješ a nevím co znamená "...provede kolaps...". Pokud ti ale překladač (při správně vybraném procesoru) vytvoří soubor HEX, nejedná se asi o chybové hlášení ale zřejmě o varovnou zprávu. Problém nemusí souviset s velikostí paměti programu a zpráva nemusí být ani důležitá. Měl bys ale zjistit co se mu nelíbí.
|
|
Nahoru |
|
|
Cserv
|
Napsal: stř 27.04.2016 14:00 |
|
Celkem nový uživatel
|
|
Registrován: 12.7.2013 Příspěvky: 86 Bydliště: Praha - Žižkov Obrázky: 15
|
ellet píše: Nikdo se k tomu nehlásí (a ani se nedivím, je to trochu guláš). Ale co mě tak napadá. Nepíšeš v čem to programuješ a nevím co znamená "...provede kolaps...". Pokud ti ale překladač (při správně vybraném procesoru) vytvoří soubor HEX, nejedná se asi o chybové hlášení ale zřejmě o varovnou zprávu. Problém nemusí souviset s velikostí paměti programu a zpráva nemusí být ani důležitá. Měl bys ale zjistit co se mu nelíbí. Omlouvám se píšu jak tatar. Programuju to v Asembleru v MPLAB X IDE. Naprogramuju to na procesor, bez problému, ale když ten procesor spustím, dělá to nesmysli. Změním jen nastavení procesoru a naprogramuju na ten větší 16F877A, tak to spustí bez problému, funguje bez chyb. Sice je to ted pro mě prkotina. Ale zajímá mě pro budoucnost, aby jsem někde neudělal chybu. Jak to známe, aby jsme ten procesor netrápili
_________________ Graupner MX-12 HoTT, Beta 1400, Funcub 1400, T-Rex 450Pro
|
|
Nahoru |
|
|
ellet
|
Napsal: stř 27.04.2016 14:15 |
|
Mazák
|
|
|
Registrován: 12.2.2016 Příspěvky: 1986 Bydliště: Vysočina, ČR
|
A na případnou opravu řádku: #include ... a vhodný INC soubor snad při změně procesoru nezapomínáš.
|
|
Nahoru |
|
|
Cserv
|
Napsal: stř 27.04.2016 14:50 |
|
Celkem nový uživatel
|
|
Registrován: 12.7.2013 Příspěvky: 86 Bydliště: Praha - Žižkov Obrázky: 15
|
ellet píše: A na případnou opravu řádku: #include a vhodný INC soubor snad při změně procesoru nezapomínáš. Samozřejmě nezapomínám, několikrát jsem to zkontroloval. Klidně sem můžu vložit, jak ten program vypadá. Programoval jsem i na krátkém programu, se stejním INC a #include se stejným vstupem i výstupem a tam to funguje. Ops: Až ted. Asi jsem našel chybu, v DECFSZ 20h má být i s (,F). Ale stejně jsem to celý překopíroval na 16F877A a nastavil jsem Inc a Config i inic. A tam to fungovalo. Doma to znovu zkusím jestli to s tím F nenadělalo paseku. Dám vědět večer. Ještě mě zajímá ta hláška v Erroru "Message[302] C:\test.asm 32 : Register in operand not in bank 0. Ensure that bank nits are correct." Co to znamená? V inicializaci mám nastaveno v bank1 kvůli nastavení portu. Píše mi to tu tři řádky u TRISA TRISB a PCON.
_________________ Graupner MX-12 HoTT, Beta 1400, Funcub 1400, T-Rex 450Pro
|
|
Nahoru |
|
|
ellet
|
Napsal: stř 27.04.2016 15:14 |
|
Mazák
|
|
|
Registrován: 12.2.2016 Příspěvky: 1986 Bydliště: Vysočina, ČR
|
Cserv píše: ....Message[302].... ....tě jen informuje, že jsi mimo banku 0. Jde to vypnout , vložením řádku: errorlevel -302 ale to už jsou snad témata i na jiný server.
|
|
Nahoru |
|
|
Cserv
|
Napsal: stř 27.04.2016 15:30 |
|
Celkem nový uživatel
|
|
Registrován: 12.7.2013 Příspěvky: 86 Bydliště: Praha - Žižkov Obrázky: 15
|
ellet píše: ....tě jen informuje, že jsi mimo banku 0. Jde to vypnout , vložením řádku: errorlevel -302 ale to už jsou snad témata i na jiný server. Jo jo už jsem to našel a vyzkoušel, fakt to funguje Dík a ještě večer dám vědět jestlo to bylo s tím F. Ted koukám na program pro procesor 16F877A a tam je stejná chyba s tím F. Takže nejspíš to tím nebude. Ještě jsem našel s příponou LST po převedení MPASM a píše tam úplně na konci "Program Memory Words Used: 258" "Program Memory Words Free: 1790" Takže přeplněná pamět to určitě nebude
_________________ Graupner MX-12 HoTT, Beta 1400, Funcub 1400, T-Rex 450Pro
|
|
Nahoru |
|
|
Cserv
|
Napsal: čtv 28.04.2016 9:00 |
|
Celkem nový uživatel
|
|
Registrován: 12.7.2013 Příspěvky: 86 Bydliště: Praha - Žižkov Obrázky: 15
|
Omlouvám se včera večer jsem nestíhal, tak jsem si to vzal do práce. Tak první pokus, znovu natáhnout ten opravený program. nezdařil, dělalo to nesmylsli, ale asi jsem tam toho nahrabal hodně a možná udělal mnoho chyb. Zkusil jsem celý zdroj zkopírovat z 16F877A, přidal jsem tam ty chybějící F a ono to funguje To mě nějak hlava nebere. Jinak díky za vše, hlavně té -302 aspon jsem o něco chytřejší Ještě mám otázku, jak zjistím kolik místa tam ještě mám? To je ono ten s příponou LST úplně na konci? EDIT: Ted jsem zjistil, že s tím F to nebylo, když jsem se podíval do HEX souboru, tak kódy mají stejné.
_________________ Graupner MX-12 HoTT, Beta 1400, Funcub 1400, T-Rex 450Pro
|
|
Nahoru |
|
|
ellet
|
Napsal: čtv 28.04.2016 10:16 |
|
Mazák
|
|
|
Registrován: 12.2.2016 Příspěvky: 1986 Bydliště: Vysočina, ČR
|
Cserv píše: ... To je ono ten s příponou LST úplně na konci?... Ano, na konci souboru LST je velikost obsazené i volné paměti programu. A jinak blahopřeji k úspěchu, někdy to prostě chvíli trvá...
|
|
Nahoru |
|
|
Cserv
|
Napsal: čtv 28.04.2016 20:19 |
|
Celkem nový uživatel
|
|
Registrován: 12.7.2013 Příspěvky: 86 Bydliště: Praha - Žižkov Obrázky: 15
|
Ještě mám otázku, vím že to je mimo OT, ale když programujete, tak nejdřív kreslíte Blokový diagram? Nebo to už programujete z hlavy? Díky za odpověd.
_________________ Graupner MX-12 HoTT, Beta 1400, Funcub 1400, T-Rex 450Pro
|
|
Nahoru |
|
|
ellet
|
Napsal: čtv 28.04.2016 23:30 |
|
Mazák
|
|
|
Registrován: 12.2.2016 Příspěvky: 1986 Bydliště: Vysočina, ČR
|
Cserv píše: Ještě mám otázku, vím že to je mimo OT, ale když programujete, tak nejdřív kreslíte Blokový diagram? Nebo to už programujete z hlavy? Díky za odpověd. Blikání ledkou jde udělat snadno z hlavy ale složitější věc bez vývojového diagramu (nebo kopenogramu) a aby práce byla trochu efektivní - nejde. Takže já čmárám po papírech...(někdy jen části).
|
|
Nahoru |
|
|
Cserv
|
Napsal: pát 29.04.2016 8:08 |
|
Celkem nový uživatel
|
|
Registrován: 12.7.2013 Příspěvky: 86 Bydliště: Praha - Žižkov Obrázky: 15
|
ellet píše: Blikání ledkou jde udělat snadno z hlavy ale složitější věc bez vývojového diagramu (nebo kopenogramu) a aby práce byla trochu efektivní - nejde. Takže já čmárám po papírech...(někdy jen části). Díky, no blikačky ledky, či takový jednoduchý, to jo, to je jasný. Takže vývojový diagram fakt pomáhá na složitejší programy? Je fakt, že při programování se začínám strácet, horší je, že mě někdo vyruší a už nevím kde jsem Takže nejpíš jdu studovat nejdřív ten vývojový diagram.
_________________ Graupner MX-12 HoTT, Beta 1400, Funcub 1400, T-Rex 450Pro
|
|
Nahoru |
|
|
rc_wolf
|
Napsal: pát 29.04.2016 11:15 |
|
Protřelejší uživatel
|
|
Registrován: 23.5.2015 Příspěvky: 161 Bydliště: České Budějovice Obrázky: 37
|
Sorry za OT - ten program je nějaká semestrálka na průmyslovce? Protože v roce 2016 používat vykopávku PIC16 a ještě to programovat v assembleru, mi přijde jako slušný masochismus Pokud chceš s tím PICem tvořit něco víc než blikání LEDkou, sežeň si co nejdřív překladač Cčka, ať se s tím aspoň nemusíš dřít v assembleru, který je konkrétně u PICů 16x naprosto debilní. Třeba CCS má i free verzi, kde je sice dost omezený výběr podporovaných součástek, ale pokud si dobře pamatuju tak 16F877 tam byla. Jestli je cílem naučit se assembler, tak existuje spousta procesorů s mnohem lepší architekturou - ARM Cortex-M, MSP430 od Texasu, Atmel AVR... snad cokoliv je lepší než PIC, co má 2 paměťové banky, 1 pracovní registr, HW stack s kapacitou neuvěřitelných 8 slov, 4 takty oscilátoru/strojový cyklus atd. (nemluvím teď o PIC32, ty mají MIPS jádro a je to úplně jiná liga ).
|
|
Nahoru |
|
|
Cserv
|
Napsal: pát 29.04.2016 13:03 |
|
Celkem nový uživatel
|
|
Registrován: 12.7.2013 Příspěvky: 86 Bydliště: Praha - Žižkov Obrázky: 15
|
rc_wolf píše: Sorry za OT - ten program je nějaká semestrálka na průmyslovce? Protože v roce 2016 používat vykopávku PIC16 a ještě to programovat v assembleru, mi přijde jako slušný masochismus Pokud chceš s tím PICem tvořit něco víc než blikání LEDkou, sežeň si co nejdřív překladač Cčka, ať se s tím aspoň nemusíš dřít v assembleru, který je konkrétně u PICů 16x naprosto debilní. Třeba CCS má i free verzi, kde je sice dost omezený výběr podporovaných součástek, ale pokud si dobře pamatuju tak 16F877 tam byla. Jestli je cílem naučit se assembler, tak existuje spousta procesorů s mnohem lepší architekturou - ARM Cortex-M, MSP430 od Texasu, Atmel AVR... snad cokoliv je lepší než PIC, co má 2 paměťové banky, 1 pracovní registr, HW stack s kapacitou neuvěřitelných 8 slov, 4 takty oscilátoru/strojový cyklus atd. (nemluvím teď o PIC32, ty mají MIPS jádro a je to úplně jiná liga ). No umím jedině v asembleru, trochu jsem dělal i v C. Jen chci vytvořit program, pro zapnutí a vypnutí PC a další periferie, v tom bude i obsahovat, rozsvětlění a zhasínání světla, nad pracovním stolem. A ještě mě zalíbila světelné dýchání v tlačítku. Vypínání a zapínání PC a další jeho periferie, to je jednoduchý. Rosvětlování a dýchání, jsem mi povedlo udělat jen na jednom tlačítku a ted to chci dát vše do jednoho programu teda do jednoho procesoru. Podle mě pak stačí ten PIC. A kdyby jsem chtěl programovat novější procesory, tak to by jsem musel opět nastudovat :/ A na to nemám čas. Ted jsem vyhledal CCS a chtělo po mě registraci, takže asi Free to nebude.
_________________ Graupner MX-12 HoTT, Beta 1400, Funcub 1400, T-Rex 450Pro
|
|
Nahoru |
|
|
rc_wolf
|
Napsal: pát 29.04.2016 14:08 |
|
Protřelejší uživatel
|
|
Registrován: 23.5.2015 Příspěvky: 161 Bydliště: České Budějovice Obrázky: 37
|
Hmm, koukám že CCS asi změnil licenční politiku a free verzi už nenabízí. V jakém IDE to programuješ? Nové verze MPLABu by měly obsahovat překladač přímo od Microchipu (akorát ve free verzi bez optimalizací). http://www.microchip.com/mplab/mplab-x-idePřípadně ti můžu poslat starou verzi CCS, někde bych jí ještě měl mít uloženou. Citace: Podle mě pak stačí ten PIC. Na to co popisuješ stačit bude, ale i tak silně doporučuju to programovat v Cčku, protože v něm ten program napíšeš tak 10x rychleji. Assembler má smysl jen u aplikací extrémně náročných na výkon (komprese videa, firmware BLheli ) - a na ty zase nebudeš používat PIC. Citace: A kdyby jsem chtěl programovat novější procesory, tak to by jsem musel opět nastudovat :/ A na to nemám čas. Úplně bez studia to sice nepůjde, ale k moderním MCU existují C/C++ frameworky které ti poskytují vysokou míru abstrakce nad hardwarem - například známé Arduino. Tutoriálů a výukových článků k tomu najdeš na internetu tuny, i v češtině, takže se neboj A časově to naopak bude výrazná úspora oproti trápení se v hrozném PICovém assembleru!
|
|
Nahoru |
|
|
Kdo je online |
Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 12 návštevníků |
|
Nemůžete zakládat nová témata v tomto fóru Nemůžete odpovídat v tomto fóru Nemůžete upravovat své příspěvky v tomto fóru Nemůžete mazat své příspěvky v tomto fóru Nemůžete přikládat soubory v tomto fóru
|
|
|