TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: 88sarmiento en 24 de Septiembre de 2011, 12:17:35

Título: ayuda escritura en la memoria flash del PIC12F617
Publicado por: 88sarmiento en 24 de Septiembre de 2011, 12:17:35
hola, estoy realizando un proyecto en el cual debo guardar información  en la memoria flash del pic12f617, para ello construí un código en c basado en las recomendaciones del datasheet y en el código ensamblador que ahí se encuentra. El problema que tengo radica en que al realizar simulación con  mplabsim no me permite sobrescribir satisfactoriamente mas de una vez sobre la misma dirección de memoria, al realizar una nueva escritura sobre algo que ya había modificado el resultado es una operación AND.

el codigo en c que use es este:


void GuardarFlash(int pos2,int pos3){
unsigned char contscr=0;
unsigned int vector[4];   
vector[0]=0x0ABF;
vector[1]=0x0CBF;
vector[2]=pos2;
vector[3]=pos3;
        while(contscr<4){
               PMADRL=0x10+contscr;
               PMADRH=0x00;
               PMDATH=(char)(vector[contscr]>>8);
               PMDATL=(char)vector[contscr]&(0x00FF);
               PMCON1bits.WREN=1;
               ////////////////////////////////////////
               INTCONbits.GIE=0;
               while(INTCONbits.GIE==1){} 
               //////////////////////////////////////////   
               PMCON2=0x55;
               PMCON2=0x0AA;
               PMCON1bits.WR=1;
               NOP();NOP();
               contscr++;
    PMCON1bits.WREN=0;
               ////////////////////////////////////////
               INTCONbits.GIE=1;
               //////////////////////////////////////////
      }           
   contscr=0;
   }

muchas gracias por la posible ayuda