TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: aitorsp en 27 de Junio de 2011, 17:45:00
-
Hola:
puede que sea una tonteria lo que voy a comentar pero por si acaso lo pongo:
si pongo esto en CCS:
#byte portb=0x06
en teoria estaria apuntando a la direccion de memoria 0x06 por lo que si es un apuntador deberia poder acceder al puerto b de esta manera:
output_high( &portb+3 );
es decir estaria sacando un 1 en RB4.
al simular en proteus no me funciona. Es error mio ó existe alguna forma de acceder mediante indices?
Un saludo
Aitor
-
No es un apuntador, es una variable ubicada en la direccion 0x06... Es lo mismo que en asm:
portb equ 0x06
Saludos!
-
No es un apuntador, es una variable ubicada en la direccion 0x06... Es lo mismo que en asm:
portb equ 0x06
Saludos!
Hola:
evidentemente era una tonteria. El acceso mediante indices lo he arreglado asi:
int i;
void main(){
set_tris_d(0x00);
while(1){
for(i=0;i<7;i++){
portd=i;
delay_ms(200);
portd=0;
delay_ms(200);
}
}
}
}
un saludo
Aitor
-
Fíjate que CCS te permite hacer esto:
union{
short PIN[8];
char PORT;
}PORTB;
#byte PORTB=0x06
Y allí podes acceder al puerto o a cada bit:
for(k=0;k<8;k++){
PORTB.PIN[k]=1;
// ....
}
Saludos!