Ayuda con ccs y programa clock ds1307

Hola a todos. Soy nuevo en el foro. Hace un mes aprox. empece a trabajar con C. Vengo del assembler (con lo que estudie en su dia).

La primera cuestión es si el compilador ccs hubica las variables globales siempre donde le venga bien a él o si exise alguna instruccion para hubicarlas en un orden lógico para poder trabajar con punteros más fácilmente.

Otra de mis cuestiones es sobre un programa que estoy realizando con el ds1307. Como vereis es muy sencillito. Trata de poder actualizar la fecha y hora manualmente, con su cambio de hora automático, 1 lectura de la hora cada seg. y de la fecha cada hora.
La duda es sobre un error que sale si la función de set_date_time es descrita a posterior de la función main, aunque tenga su prototipo de función en la cabecera. ¿A qué es debido ese error? Este error desaparece si dicha función la describo después de la interrupción tmr0.

La última consulta que tengo es por qué no funciona la interrupción del tmr0, por no hablar de la interrup. ext. que programe en su dia y la quité

Os dejo el programa y la sim. en proteus por si os aburris y le dedicais algo de tiempo. Se admiten todo tipo de comentarios y consejos para una optimización del programa.

Disculpar cualquier tipo de error de principiante. Gracias a todos. Saludos.

P.D: La función set_date_time no funciona correctamente porque las variables dia, mes, anio, dds eran consecutivas, y hr, mi, se, también lo eran (debido a eso tenía que trabajar con dos punteros en vez de uno), pero no se por qué un buen día al simularlo en proteus ya no lo eran (de ahí mi primera consulta). Al simularlo en proteus tampoco puedo ver parte del programa al ejecutarlo paso a paso ¿por qué?.
 

Adjuntos

  • Clock ds1307.rar
    24.9 KB · Visitas: 44
Atrás
Arriba