# PIC mikrokontrolleri >  Configuration bits

## Shark

Sveiki!
Man ir jautājums par to, ja konfigurācijas bitus raksta programmā tad kur? Pirms reset vektora(org 0000h) vai pēc?
Un asamblerī kā tas tiek pierakstīts(ar movlw un movwf komandām)?


P.S.
Izmantoju PIC18F4550.

----------


## ansius

nezinu par pic, bet avr tas ir atsevišķi programātora softā

----------


## next

Es rakstu pirms, bet vispaar liekas ka pofig.

----------


## jeecha

Ja runaa par konkreeto chipu un Microchip C18 kompilatoru, tad 3 iespeejas:
1) kodaa lietojot "#pragma config" direktiivas (kaa Microchip savos sampljos parasti dara);
2) uzstaadot projekta opcijaas konfiguraacijas bitu dialogaa;
3) uzstaadot dialogaa programmeeshanas laikaa.

Pirmajos divos gadiijumos salinkotajaa .hex failaa ietilps arii konfiguraacijas bitu programmeeshana.

Ja lieto "#pragma config" tad viseertaak tos visus sakraameet kautkur "galvenaa" koda gabala saakumaa, bet tikpat labi var ierakstiit kur pagadaas... tas ir tikai eertiibas jautaajums lai peec tam nav pa visaam sourceem jaarokas un jaameklee ja gribas pamainiit  ::

----------


## Shark

Vai varētu lūdzu uzrakstīt, kā tas asamblerī pierakstās?  ::  
Es pierakstīju configuration bitus šādā paskatā:


```
CLRF	_CONFIG1L,0			
		MOVLW	0Dh
		MOVWF	_CONFIG1H,0
		MOVLW	01Fh
		MOVWF	_CONFIG2L,0
		MOVLW	01Fh
		MOVWF	_CONFIG2H,0
		MOVLW	81h
		MOVWF	_CONFIG3H,0
		MOVLW	81h
		MOVWF	_CONFIG4L,0
		CLRF	_CONFIG5L,0
		CLRF	_CONFIG5H,0
		CLRF	_CONFIG6L,0
		CLRF	_CONFIG6H,0
		CLRF	_CONFIG7L,0
```

 Rezultātā MPLAB IDE pie Build izmeta paziņojumu:

```
Executable code and data must be defined in an appropriate section
```

 .

----------


## next

http://www.microchip.com/Microchip.WWW. ... =SW007002#

Aizkaap pie Microchipa, nokachaa MPASM usersguidi, tur viss uzrakstiits.

----------


## 0xDEAD BEEF

Ta nav asm komanda tie konfiguracijas biti, bet gan papildus ficha progamatora softam.
Beefs

----------


## jeecha

Microchip asambleraa jaalieto __config (prieksh PIC12 un PIC16) vai CONFIG (PIC1 ::  kompilatora direktiivas. Diezgan liidziigi kaa ieksh C18 kompilatora tiek lietoti #pragma config. Paraugs un apraksts ir Microchip asamblera manuaalii kaa jau te mineeja. Konkreetam chipam iespeejamaas veertiibas var skatiities vinja .inc failaa (piemeeram P18F4550.inc kas ir atrodams kur nu tev ieinstaleets MPASM Suite).

Kodaa protams ir iespeejams uzstaadiit konfiguraacijas bitus lietojot cipariskas veertiibas (galu galaa taas __config un CONFIG direktiivas rezultaataa .hex failaa nonaak baitinju veertiibas kas jaasaraksta noteiktaas chipa flash/eeprom adresees), bet es necentiishos skaidrot kaa to dariit pa taisno jo taa dariit nevaig vairaaku iemeslu peec - kontrolieriem meedz nedaudz atshkjirties konfiguraacijas bitu izvietojums un noziime (respektiivi ciparisko veertiibu lietoshana apgruutinaas porteeshanu uz citu chipu), kaa arii naakamreiz kad gribeesi pamainiit bitus tad izmezgjiisi acis un smadzenes katru reizi rakstot hexaa baitu veertiibas (respektiivi naakotnee pamainiit konfiguraacijas bitus buus naaves smaka).

Starp citu jautaajums - kaadeelj tu PIC18F4550 gribi asambleraa programmeet? Jo ja nav praktiskas vajadziibas atsevishkjus koda gabalus optimizeet liidz maksimumam tad daudz eertaak vinju programeet ieksh C. Ja kaads tuliit iemineesies ka asamblers ir stilaa - sorry, ejiet deet - ja doto kodu ieksh C var uzrakstiit 10x aatraak un aatrdarbiiba konkreetajam uzdevumam pietiek - tad rakstiit to asambleraa ir vienkaarshi stulbums un moraalaa pashapmierinaashanaas :P

----------


## Shark

Paldies visiem par informāciju Config bitu sakarā!  ::  



> Starp citu jautaajums - kaadeelj tu PIC18F4550 gribi asambleraa programmeet? Jo ja nav praktiskas vajadziibas atsevishkjus koda gabalus optimizeet liidz maksimumam tad daudz eertaak vinju programeet ieksh C. Ja kaads tuliit iemineesies ka asamblers ir stilaa - sorry, ejiet deet - ja doto kodu ieksh C var uzrakstiit 10x aatraak un aatrdarbiiba konkreetajam uzdevumam pietiek - tad rakstiit to asambleraa ir vienkaarshi stulbums un moraalaa pashapmierinaashanaas :P


 Kauns atzīt, taču māku programmēt tikai asamblerī. Nekas cool tur tiešām nav. Kaut kad pieķeršos un iemācīšos programmēt C.  ::

----------


## Epis

> Ja kaads tuliit iemineesies ka asamblers ir stilaa - sorry, ejiet deet - ja doto kodu ieksh C var uzrakstiit 10x aatraak un aatrdarbiiba konkreetajam uzdevumam pietiek - tad rakstiit to asambleraa ir vienkaarshi stulbums un moraalaa pashapmierinaashanaas :P


 Šitas i labs!
Vienīgi prasītos pieblide ka tas attiecās tikai uz PIC18,16 un zemāk.

Asmā var ērti kodēt AVR un citus single cycle arhitektūras prčus, tur ar asambler valoda ir vieglāka.

----------


## Delfins

> tur ar asambler valoda ir vieglāka.


 Epi, ASM ir tikai viens (sintakse), tas ka atškirās instrukcijas ir cits stāsts  ::

----------


## jeecha

Es gan iipashi nesaskatu arii neeertumu rakstiit asambleraa prieksh PIC12/16/18. Nekas tik perverss tajaas instrukcijaas nemaz nav un pats esmu pietiekami daudz koda asambleraa prieksh PIC rakstiijis.

Runa bija par to ka C kodu dotajai funkcijai uz dotaas arhitektuuras uzrakstiit taapat buus aatraak nekaa asambleraa, un ja C kods peec aatrdarbiibas ir pietiekams tad kaada jeega rakstiit asambleraa?

P.S. PIC vs AVR luudzu baaz citaa topicaa, par to sheit galiigi nebija runa.

----------

