Buenos dias es mi primera publicación en el foro, soy nuevo con todo esto de los pics. Estoy usando un pic16f877a para una aplicacion en intersecciones semaforicas y quiero leer y escribir datos en su eeprom interna mediante USART, puedo ver los cambios que se efectuan sin problemas mediante la USART pero al momento de ver los tiempos que almacene tengo problemas y peor para reescrbirlos, aqui mi codigo
Copiare algunas partes que creo importantes
AQUI LEO LOS TIEMPOS Y LOS ESCRIBO EN LA EEPROM
eeprom_write(0X00, 2);
eeprom_write(0X01, 2);
eeprom_write(0X02, 3);
eeprom_write(0X03, 3);
eeprom_write(0X04, 3);
ESTE ES EL PROGRAMA DE LA USART PARA LEER Y MODIFICAR LOS TIEMPOS
/////////LOOP PRINCIPAL///////////////
while(1)
{
uint8_t n= USARTDataAvailable();
////VERIFICACION DE DATOS EN LA USART////
//Si hay datos en la USART
if(n!=0)
{
//Leerlos
char data=USARTReadData();
///SI SE PRESIONO ENTER, INICIA LA PROGRAMACION DE NUEVOS TIEMPOS////
if (data=='\r')
{
USARTGotoNewLine();
USARTWriteLine("<MODO DE PROGRAMACION>");
USARTGotoNewLine();
uint8_t j;
USARTWriteLine("TIEMPOS ACTUALES");
USARTGotoNewLine();
for (j=0;j<15;j++){
USARTWriteChar(eeprom_read(0X00+j));
}
USARTWriteLine("INTRODUZCA LOS NUEVOS TIEMPOS");
USARTGotoNewLine();
ambar(1);
ambar(2);
ambar(3);
uint8_t k=0;
while(1){
uint8_t m= USARTDataAvailable();
//Si hay datos presentes
if(m!=0){
//Leerlos
char data=USARTReadData();
//Si hay un Enter Salir del modo de programacion.
if (data=='\r'){
USARTGotoNewLine();
USARTWriteLine("<FIN DE LA PROGRAMACION>");
cont2=0;
goto INICIO;
}
//Caso contrario escribir el eeprom con los datos ingresados
else
{ USARTWriteChar(data);
eeprom_write(0X00+k,data);
k+++;}}}}}