Consulta sobre Timer 0 con el Mikroc

Buenas Gente, soy nuevo en el foro, he visto que realmente se comentan soluciones efectivas y espero poder ayudar cuendo sea necesario.

ahora tengo una consulta sobre el uso del Timer 0 en un PIC 16f877, Estou programando un contador de tiempo variable, lo estoy programando en c sobre el Mikroc.
Al momento de ejecutar la rutina de prueva del timer 0 me encuentro que no varia la variable "cnt" y aun pero el registro TMR0 esta estatico. dejo el codigo para ver si alguien con mas experiencia ve algo que no estoy haciendo bien.
Muchas Gracias a todos.


unsigned cnt; // Declarar la variable cnt

void interrupt() { // Rutina de interrupción
cnt++; // Interrupción causa el incremento de cnt por 1
TMR0 = 155; // Temporizador (o contador) Timer0 devuelve su valor inicial
INTCON = 0x20; // Bit T0IE está a 1, bit T0IF está a 0
}

void main() {
OPTION_REG = 0x04; // Pre-escalador (1:32) se le asigna al temporizador Timer0
TMR0 = 155; // Temporizador T0 cuenta de 155 a 255
INTCON = 0xA0; // Habilitada la generación de interrupción para el
// temporizador Timer0
while (1)
{
}
 
No tengo experiencia con C para PIC pero en los AVRs eso sucede cuando no declaras la variable como "VOLATILE", intenta haciendo la declaracion de esta forma:

unsigned volatile cnt; // Declarar la variable cnt
 
Si te refieres a que el timer no avanza en la simulacion, te comento que el mikroC no simula los timers. Tal vez si lo ejecutas en el proteus puedas encontrar los resultados que esperas.
 
no tenia idea que el Mikroc no simulaba los timers, voy a probar e3n otro compilador. Sino veo la forma de ver los timers en el proteus, desconozco como hacer esto.

Muchas Gracias a los dos!!!!
 
El proteus (ISIS - PROTEUS) es un simulador. Te recomiendo que lo investigues. Es de mucha utilidad para probar tus circuitos con PICs, entre otras muchas utilidades.
 
Atrás
Arriba