forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
MPLAB 7.22 a vyšší

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip
 
ota
Nováček
Nováček


Založen: 29.10.2007
Příspěvky: 8
Bydliště: Praha - západ

PříspěvekZaslal: 05 listopad 2007, 17:58    Předmět: MPLAB 7.22 a vyšší Citovat

Dobrý den ! Jako programátorský začátečník jsem narazil na problém s definicí registrů a buněk v MPLABu :
zadám překladači pokyn Include P16f877A (např., pochopitelně v "špičatých" závorkách a myslel jsem si, že mám dány adresy registrů atd. Pak jsem spustil překlad programu (hraji si s příklady pro PVK40 od Asixu) a překladač mi nahlásil cca 35 chyb - není definován registr, buňka atd.....
Když jsem si ale příkaz include XXXXXXX zadal do jednoduchých programů PVK 40, kde jsou registry a buňky definovány, tak mi to ohlásilo, že PB0 je definováno duplicitně, ale registry prošly OK....Tak nevím ? Jsem úplně pitomej, nebo musím ještě někde něco nastavit ? Zkoušel jsem nainstalovat různé "sedmičkové" verze MPLABu, ale tohle to dělá úplně ve všech... Embarassed
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
administrator
hlavní administrátor
hlavní administrátor


Založen: 2.1.2006
Příspěvky: 758
Bydliště: Ostrava

PříspěvekZaslal: 05 listopad 2007, 19:51    Předmět: Re: MPLAB 7.22 a vyšší Citovat

Ahoj Oto,
tady máš příklad začátku programu pro PIC16F877A:

kód:
   list   p=16F877A
   radix   dec
   #include   p16f877a.inc
   __config   b'11111100111010'


"radix dec" znamená, že číselné hodnoty se budou standardně brát jako desítkové. Default Radix není nutné uvádět - stačí to nastavit v Build Options.

_________________
Rudolf Veselý
Administrátor webu http://www.mcontrollers.com/ a fóra http://forum.mcontrollers.com/.
Pravidla fóra mcontrollers.com.

You can do everything in assembler, but no one wants to program in assembler anymore.
... Yukihiro Matsumoto

Rudolf Vesely on LinkedIn
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
jankop
moderátor
moderátor


Založen: 24.10.2007
Příspěvky: 336
Bydliště: Brno

PříspěvekZaslal: 05 listopad 2007, 20:08    Předmět: Citovat

Asi by bylo třeba ukázku programu, který ti hlásil uvedené chyby. Doporučený tvar direktivy je
kód:
#include <P12F675.INC> 

Ve skutečnosti špičaté závorky musí být, jen pokud je v názvu/cestě k souboru mezera.
Problém může být v cestách k souborům *.INC, ale i v tom, že třeba directivu include neuvádíš na začátku programu.


Naposledy upravil jankop dne 05 listopad 2007, 20:19, celkově upraveno 1 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
jankop
moderátor
moderátor


Založen: 24.10.2007
Příspěvky: 336
Bydliště: Brno

PříspěvekZaslal: 05 listopad 2007, 20:18    Předmět: Citovat

Mimochodem, ten
kód:
__config   b'11111100111010'

je opravdu hodně drsnej.
Doporučoval bych tuto formu (nikoliv obsah):
kód:
__CONFIG   _CP_OFF &_CPD_OFF & _WDT_OFF & _MCLRE_OFF &_BODEN_OFF &_PWRTE_ON &_INTRC_OSC_NOCLKOUT


Jaké parametry máš použít najdeš právě v souboru *.INC odpovídajícího procesoru.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
ota
Nováček
Nováček


Založen: 29.10.2007
Příspěvky: 8
Bydliště: Praha - západ

PříspěvekZaslal: 06 listopad 2007, 8:37    Předmět: Citovat

Ahoj oběma a děkuji za rady... Razz
S tou konfigurací procesoru si poradit umím, udělal jsem si takovou tabulku, co který bit configuračního slova znamená a mám to tam i binárně, takže to jde Laughing
V příloze jsou dva prográmky na PVK40 od Asixu - ten první, nejjednodušší v originále neobsahuje to Include XXXX a když to tam dám, hlásí, že je dvakrát definovaný PB0. U druhého prográmku (ten v sobě to include má) je pak to hlášení o nějakých 35 chybách..... Sad
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
ota
Nováček
Nováček


Založen: 29.10.2007
Příspěvky: 8
Bydliště: Praha - západ

PříspěvekZaslal: 06 listopad 2007, 8:41    Předmět: Citovat

jé, ono se to nenačetlo...tak další pokus Embarassed Já to vzdávám, neumím připojit soubor...můžu to poslat někam majlem ???? Rolling Eyes
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
jankop
moderátor
moderátor


Založen: 24.10.2007
Příspěvky: 336
Bydliště: Brno

PříspěvekZaslal: 06 listopad 2007, 14:51    Předmět: Citovat

Prohlédl jsem si tvoje zdrojové programy. Problém je v tom, že assembler rozlišuje u jmen návěští a proměnných velká a malá písmena.
Soubor P16f877a.INC je zaveden, ale názvy registrů v tvém programu jsou malými písmeny a překladač je tedy nezná.. V definici P16f877a.INC jsou totiž všechna velká. A hlášení o redefinici je také jasné. Řádek:
kód:
#define RP0     status,5        ;RP0 is bit 5 in status register

je duplicitní právě s obsahem P16f877a.INC, kde už tato definice existuje
Toť vše.

Case sensitivity je možné nastavit v Build options.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
ota
Nováček
Nováček


Založen: 29.10.2007
Příspěvky: 8
Bydliště: Praha - západ

PříspěvekZaslal: 06 listopad 2007, 16:03    Předmět: Citovat

Hmmm, tak to by mne tedy fakt nenapadlo ! Shocked Děkuji moc, večer to zkusím... Cool
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
administrator
hlavní administrátor
hlavní administrátor


Založen: 2.1.2006
Příspěvky: 758
Bydliště: Ostrava

PříspěvekZaslal: 06 listopad 2007, 17:09    Předmět: Citovat

Ahoj Oto,

ota napsal:
... V příloze jsou dva prográmky ...


Soubory můžeš vkládat i přímo do fóra (dole máš možnost "Připojit soubor").

jankop napsal:
... Case sensitivity je možné nastavit v Build options.


Pokud jen potřebuješ zkompilovat v MPLABu cizí programy, tak je to dobrá možnost, ale až budeš spát své vlastní, tak ti doporučuji si zvyknout psát "systémové" názvy velkými. Je to správný způsob.

_________________
Rudolf Veselý
Administrátor webu http://www.mcontrollers.com/ a fóra http://forum.mcontrollers.com/.
Pravidla fóra mcontrollers.com.

You can do everything in assembler, but no one wants to program in assembler anymore.
... Yukihiro Matsumoto

Rudolf Vesely on LinkedIn
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
ota
Nováček
Nováček


Založen: 29.10.2007
Příspěvky: 8
Bydliště: Praha - západ

PříspěvekZaslal: 07 listopad 2007, 8:17    Předmět: Citovat

Jo, jo, děkuji ještě jednou.... Smile Já ty soubory zkoušel dvakrát připojit, ale nepovedlo se mi to, nevím proč...inu, volšový ručičky ! S těmi velkými písmeny máš pravdu, v prográmku jsem si to přepsal Rolling Eyes Inu, když se to člověk učí, trénink neškodí, že ??
V každém případě děkuji oběma za porady, chybovách hlášení už mám jen pět, protože jsem někde něco nepřepsal...ale to chce více času a ponořit se do toho pořádně Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
ota
Nováček
Nováček


Založen: 29.10.2007
Příspěvky: 8
Bydliště: Praha - západ

PříspěvekZaslal: 08 listopad 2007, 14:14    Předmět: Citovat

Ještě jednou vám oběma děkuji za rady - už je to ok a "rozsvítil jsem LEDku" při definici přes "include" Razz Co člověku nestačí ke štěstí, že ???
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
jankop
moderátor
moderátor


Založen: 24.10.2007
Příspěvky: 336
Bydliště: Brno

PříspěvekZaslal: 09 listopad 2007, 10:02    Předmět: Citovat

Používání transparentních programovacích technik je prvním krokem k úspěchu. Teď jsem narazil na maličkost, kterou jsem neznal. Ověříš s ní, jestli je soubor *.INC správně linkován a především do něj můžeš snadno nahlédnout, když některou proměnnou neznáš z hlavy. Když klikneš pravým tlačítkem na název souboru v direktivě #include, tak máš možnost otevřít soubor pomocí OPEN FILE. Je to praktické, já jsem doposud musel soubor vyhledat a otevřít.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
administrator
hlavní administrátor
hlavní administrátor


Založen: 2.1.2006
Příspěvky: 758
Bydliště: Ostrava

PříspěvekZaslal: 15 listopad 2007, 14:14    Předmět: Citovat

jankop napsal:
... já jsem doposud musel soubor vyhledat a otevřít.


A není nejjednodušší je mít všechny "vlevo" v seznamu souborů? Pak na požadovaný soubor stačí přece jen kliknout o soubor se otevře a zobrazí...


_________________
Rudolf Veselý
Administrátor webu http://www.mcontrollers.com/ a fóra http://forum.mcontrollers.com/.
Pravidla fóra mcontrollers.com.

You can do everything in assembler, but no one wants to program in assembler anymore.
... Yukihiro Matsumoto

Rudolf Vesely on LinkedIn
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
jankop
moderátor
moderátor


Založen: 24.10.2007
Příspěvky: 336
Bydliště: Brno

PříspěvekZaslal: 15 listopad 2007, 14:39    Předmět: Citovat

Ale tam je musíš podle mě ručně nalinkovat. Což je v případě tohohle defaultního souboru zbytečné.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata 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 hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2017 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)