"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!
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...
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.