No entiendo los parametro que hay que utilizar para estas instrucciones, de la ayuda de ccs saque lo siguiente
Syntax:
write_program_memory( address, dataptr, count );
Parameters:
address is 16 bits on PCM parts and 32 bits on PCH parts .
dataptr is a pointer to one or more bytes
count is a 8 bit integer on PIC16 and 16-bit for PIC18
Examples:
for(i=0x1000;i<=0x1fff;i++) {
value=read_adc();
write_program_memory(i, value, 2);
delay_ms(1000);
}
En el foro lei esto pero tampoco llego a entender
Bueno, la solucion era muy sencilla pero ya que lo saque lo quiero compartir, quizas pueda ayudar a alguien mas que se esté iniciando como yo, aca vá:
log dir_w=0x1000;
long dat1=1234;
long dat2=5678;
long da1;
long da2;
void main(){
.
write_program_memory(dir_w, &dat1, 2); //la solucion fue utilizar & para señalar la direccion del dato
delay_ms(1000);
write_program_memory(dir_w+2, &dat2, 2);
delay_ms(1000);
.
.
read_program_memory(dir_w, &da1, 2);
delay_ms(1000);
read_program_memory(dir_w+2, &da2, 2);
delay_ms(1000);
.
printf(lcd_putc,"\fDATO1: %Lu \nDATO2: %Lu",da1,da2); //si coloco %Lx en lugar de Lu visualizo el dato en hexa
.
}
espero les sirva.
Otra cosa que me gustaría saber es como afecta el tiempo que coloco en el delay, yo estoy utilizando 1000ms pero estaría bueno poder bajarlo, alguien podría decirme algo sobre esto?
Saludos