Jak programovat PIC18 přes MPLAB v C

Zdravím,

chtěl bych se zeptat jakým MPLABem nebo HI-TECH se dají programovat PICky řady 18 v Céčku? Dost programu jsem stvořil s MPLAB IDE a HI-TECH C compiler LITE, ale pouze PICky řady 16. Teď mi řada 18 nejde. Rád by jsem zůstal u formátu od HI-TECH a nepřecházel k CCS.
Máte s tím někdo zkušenosti?

Dík Fano…

nechces to sformulovat inac aby sme pochopili ? Co mas za problem cim programuješ nevieš nahrat program do procesora, alebo ti nejde program v procesore…

Asi myslí kompilátor C pro PIC18.
MCC18 je kompilátor C pro 18F řadu, je to přímo produkt Microchipu.

Nainstaloval jsem si MPLAB C for PIC18 v3.40 in LITE mode ale nelze spustit ani jeden EXE soubor. Taky nevím jestli potřebuji MPLAB IDE. Nebo nějaký HI-TECH compiler. Prostě bych potřeboval postup co dřív nainstalovat. Rád bych psal programy v C pro PIC16 i PIC18.

Tak jsem to nějakým způsobem rozchodil. Teď jsem se ale zasekl na problému s deklaracemi bitů různých registrů.

Pracuji s PIC18F26K22 tak jsem tedy použil header p18f26k22.h Problém nastavá ve chvíli, kdy chci třeba změnit hodnotu bitu BRGH v registru TXSTA1 protože tento bit je v souboru p18f26k22.h deklarován hned několikrát.

RCSTA1bits;
extern volatile near unsigned char TX1STA;
extern volatile near union {
struct {
unsigned TX9D:1;
unsigned TRMT:1;
unsigned BRGH:1;
unsigned SENDB:1;
unsigned SYNC:1;
unsigned TXEN:1;
unsigned TX9:1;
unsigned CSRC:1;
};
struct {
unsigned TX9D1:1;
unsigned TRMT1:1;
unsigned BRGH1:1;
unsigned SENDB1:1;
unsigned SYNC1:1;
unsigned TXEN1:1;
unsigned TX91:1;
unsigned CSRC1:1;
};
} TX1STAbits;
extern volatile near unsigned char TXSTA;
extern volatile near union {
struct {
unsigned TX9D:1;
unsigned TRMT:1;
unsigned BRGH:1;
unsigned SENDB:1;
unsigned SYNC:1;
unsigned TXEN:1;
unsigned TX9:1;
unsigned CSRC:1;
};
struct {
unsigned TX9D1:1;
unsigned TRMT1:1;
unsigned BRGH1:1;
unsigned SENDB1:1;
unsigned SYNC1:1;
unsigned TXEN1:1;
unsigned TX91:1;
unsigned CSRC1:1;
};
} TXSTAbits;
extern volatile near unsigned char TXSTA1;
extern volatile near union {
struct {
unsigned TX9D:1;
unsigned TRMT:1;
unsigned BRGH:1;
unsigned SENDB:1;
unsigned SYNC:1;
unsigned TXEN:1;
unsigned TX9:1;
unsigned CSRC:1;
};
struct {
unsigned TX9D1:1;
unsigned TRMT1:1;
unsigned BRGH1:1;
unsigned SENDB1:1;
unsigned SYNC1:1;
unsigned TXEN1:1;
unsigned TX91:1;
unsigned CSRC1:1;
};
}

Jak je vidět tak je bit BRGH deklarován třikrát. Zkoušel jsem i BRGH1 pro AUSART1, ale ten je taky deklarován hned několikrát.

Nejni mi jasný proč je ten samý bit deklarován v několika různých registrech.

Když to shrnu, chtěl bych nastavit ovládací bity od AUSART1 a AUSART2 a později i dalších periférií. Jakým způsobem mám tyto bity měnit při využití souboru p18f26k22.h?

Děkuji předem za odpovědi. Fano…

Ještě bych to trochu upřesnil. Vím, že se hodnota bitu dá změnit třeba

TX1STAbits.BRGH = 0;

ale tento zápis se mi zdá príliš dlouhý. Chtěl bych používat zkrácené verze, třeba u AUSART1 BRGH1 = 0; a u AUSART2 BRGH2 = 1;
Nebo nějakým způsobem stanovit že první blok nastavovacích bitů se týká AUSART1 a druhý blok bude nastavovat AUSART2.

Šlo by nějakým lehkým způsobem používat tyto zkrácené verze bez výrazné úpravy souboru p18f26k22.h?

taket onastavovanie bitov je vychytavka C prekladaca od mikrocipu …doporucujem od ucit sa :smiley:

Tak ze napis co vlastne pouzivas za prekladac ? mas ho integrovany v MPlabe ?

na zaciatok das #define ubr INTCONbits.INT0IE

a potom mozes ubr=1; alebo ubr=0;

aspon na C od mikrocipu to ide

Stáhni si vývojové prostředí MPLAB IDE, nainstaluj, potom cucni od microchipu C18 compiler a nainstaluj, poté v MPLABU vyber v nastavení který pic používáš a tím si nastavíš překladač…