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.
.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.
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
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.
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).
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.