Instrukční sada(y) PIC24 - hledám ucelený seznam s popisem

8bit #define RS PORTB,4 #define E PORTB,5 #define LCD_PORT PORTB a pro 16bit[code].equ LCDPORT,PORTB

E0: .macro
bclr PORTB,#RB5
.endm
E1: .macro
bset PORTB,#RB5
.endm
RS0: .macro
bclr PORTB,#RB4
.endm
RS1: .macro
bset PORTB,#RB4
.endm[/code]
Je ale dost na nic, že se to musí řešit macrem.

Nemusi sa to riesit makrom.

.include "p33fxxxx.inc"
.equ	LCD, PORTA
.equ	RS,	2
	.text
	.global __reset
__reset:
here:
	bset	LCD,#RS
	bra		here
	.end

Takto to normalne funguje.
Kto chce pouzivat C-ckovske #define, musi pouzivat C-ckovsky preprocesor. Teda s nainstalovanym C-kompilatorom, napriklad free verziou MCC30, sa zalozi novy projekt, kde sa ako toolset nastavi MCC30 a nie ASM30. Dalej, zdrojaky sa ulozia ako filename.S (velke S) a nahadzu do projektu.
Potom sa da pouzivat C-ckovske #define

	.include "p33fxxxx.inc"
#define	LCD_RS	PORTA,#2
#define	LCD		PORTA
#define	RS		#2
	.text
	.global __reset
__reset:
here:
	bset	LCD,RS
	bclr	LCD_RS
	bra		here
	.end

V zdrojaku su dve moznosti ako urobit definiciu a pouzit ju.

V prilozenom obrazku vidno ako to vyzera a dopadne.

Asi jsi mě nepochopil.

U 8bit bylo #define RS PORTB,4
A v programu BSF RS; ;nebo ; BCF RS

A tohle to teda neřeší vůbec nic u 16bit bset LCD,#RS a je to to samé, jak to macro, kde si můžu dát i ten LCDPORT, to jsem zkoušel

Pochopil.
Tak este raz. Ziadne makro tam nebolo.
U osembitov som mal:

#define  RS  PORTA,2
bsf  RS
bcf  RS

U sestnasbitov som popisal sposob, ako sa da dosiahnut toto:

#define RS  PORTA,#2
bclr RS
bset RS

Treba si to len dobre precitat.

Ale nejde to bez naistalovaného C-kompilatoru.

No a programovanie nejde bez nainstalovaneho MPLAB-u.

Pokial ti na tom zalezi, tak si ho nainstaluj, bude to hotove za podstatne kratsi cas ako je spekulovanie nad tym ako to obist. Nie je treba nijaka ina investicia nez cca 30MB download a 10 minut casu.
Pokial tato otazka nie je hodna tych 10-tich minut casu, tak je asi uplne bezpredmetna.

A este by som doplnil, ze k C-kompilatoru sa skor ci neskor aj tak dopracujes, takze cim skor si ho stiahnes a nainstalujes, tym skor sa zbavis roznych problemov :slight_smile:

Můžu vědět, co tě k tomu vede??

Honza3: To neřeš, já to Cčko taky nějak nemůžu strávit, a že už jsem se pokoušel poměrně hodněkrát. Ale asi je fakt, že jsme s tím ASM poměrně “exoti”, proto to tolik lidí furt nechce (nebo nemůže) pochopit.

Vlastna skusenost.

ono ked ma program 5000 prikazov ak som to dobre spocital…tak sa v tom dost blbo orientuje…to prepisane do cecka vyzera uplne inac…

Ono to přepsání do kteréhokoliv jazyka bude vypadat úplně jinak, nemusí to být jenom C… Nebo musí?

Někteří lidé (včetně mě) prostě občas potřebují jít svou cestou, i když je ta cesta značně odlišná a nestandartní. Je to pořád lepší, než se zaseknout a nedělat nic (takhle podobně jsem kdysi ztratil spoustu času ohledně linuxu… kámoš mě furt nutil Gnome a Red Hat, i když mě se líbilo KDE a SuSE. Skončilo to samozřejmě tak, že mi to zhnusil, a k linuxu jsem se vrátil až po asi deseti letech sám, podle svého… a nelituju, jen toho ztraceného času).

Mám program o 32000 řádcích a ještě jsem se v tom neztratil. Takže C nemám zapotřebí.

Ty jo, to je teda porce, můj největší projekt měl 7500 řádků. :smiley:

Zdravím, lze ještě někam ukládat pracovní data v PIC24 kromě W0 - W15? Těchhle 16 registrů už mi začíná být málo. U PIC16 jsem byl zvyklý jet a definovat si registry pro ukládání proměnných od 20h třeba až do 7Fh SRAM paměti. U PIC24 tuto možnost nějak nevidím.
Díky za případné rady.

Ahoj , myslim, ze jsi to spatne pocopil a nebo nenahledl do datasheetu, sice s pic 24 nepracuji, ale je jasne ze oproti rade 16 mas naopak moznost pouzit a pracovat s 16 W registry misto 1. Ram mas stale stejne pouzitelnou.

Do datasheetu samozřejmě koukám prakticky pořád, když něco dělám, ale nějak jsem tam nevyčetl, jaký rozsah adres RAM mám k dispozici pro vlastní potřebu či jak k nim přistupovat.

TAk napis presnej typ!!