PIC18 e C, un aiuto

Ciao!

Sul manuale del compilatore C che uso (pcwh della ccs) leggo questo: bit_set(*6,1); // A crude way to set pin B1 high

Ecco io vorrei fare la stessa cosa ma con il pin C0... cosa devo mettere al posto di *6 per far riferimento alla porta C?

Grazie a chi saprà rispondermi

Reply to
ice
Loading thread data ...

"ice" ha scritto nel messaggio news:OqNJd.768565$ snipped-for-privacy@news4.tin.it...

Mi sa che non puoi farlo! Il fatto che esista quell'istruzione per la porta B non è un caso... la porta B è una porta particolare... se ricordo bene ha un qualche registro in più, adesso non ho voglia di scaricarmi il datasheet del micro perché sono troppi mega, ma dagli un'occhiata!!!

Per fare la stessa cosa con il bit 0 della porta C dovrai fare una banalità:

PORTC |= 0x01;

Cioè alzare un bit del registro che contiene lo stato della porta!

J.

Reply to
Regae
6 è l'indirizzo di memoria che corrisponde alla PORTA B dei PIC16 (non 18). Per i PIC18 la PORTA B è 0xF81. Per scivere su un'altra porta devi sostituire 6 o 0x0F81 con:

PIC 16 PIC18

PORTA A 5 0x0F80 PORTA C 7 0x0F82 PORTA D 8 0x0F83 PORTA E 9 0x0F84

Quindi per settare il bit 1 della porta C a livello alto devi scrivere:

bit_set(*7,1);

L'espressione

PORTC |= 0x01;

non è direttamnete supportata dal CCS ( metre per il PICC HI-TECH si).

Si può comunque utilizzare se prima si dichiare l'indirizzo di PORTC, cioè:

#byte PORTC=7 // o 0x0F82 per PIC18

PORTC |= 0x01;

Altro sistema è :

#byte PORTC=7 // o 0x0F82 per PIC18 #bit bit1=PORTC.1

bit1=1;

Comunque gli indirizzi di tutti questi registri ( e molti altri tipo i TRISx) li trovi nei Data Sheet del micro utilizzato, alla voce TIPICAL FUNCTION REGISTER MAP del capitolo Memory Organization.

Ciao.

"Regae" ha scritto nel messaggio news:ScRJd.457313$ snipped-for-privacy@news3.tin.it...

Reply to
vatanen

Errata corrige: Altro sistema è :

#byte PORTC=7 // o 0x0F82 per PIC18 #bit bit0=PORTC.0

bit0=1;

Mi era sfuggito che si parlava del bit0

"vatanen" ha scritto nel messaggio news:9FVJd.1085$ snipped-for-privacy@twister1.libero.it...

Reply to
vatanen

Grazie 1000! Sei stato molto gentile e preciso Ho provato come mi hai consigliato ed ha funzionato subito :)

Ciao!

Reply to
ice

Prego

"ice" ha scritto nel messaggio news:_Q8Kd.461275$ snipped-for-privacy@news3.tin.it...

Reply to
vatanen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.