创建一个计数为零的1分钟倒数计时器,重置4次并停止使用PIC18F46K20?

时间:2014-04-19 12:27:38

标签: microcontroller pic countdowntimer

关于如何使用MPLAB C18进行此操作的任何想法?

intCLKsecs++; //Should increase by one every second on every 
InitSecs = 60; //Initialised time for a single korfball half
timeLeft = korf_InitSecs-korf_intCLKsecs; //Time remaining
displayTime(korf_timeLeft);

到目前为止,我通过设置TOCON = 0b0000001将TIMER0设置为在1秒后溢出 唯一的问题是我每次定时器溢出时如何实现TIMER0来将intCLKsecs变量递增1,因此变量intCLKsecs应该计算已经过的秒数。函数displayTime只使用%60将timeLeft转换为时钟格式。

1 个答案:

答案 0 :(得分:0)

定时器的中断标志将在溢出时置1。您可以编写中断,也可以自己轮询标记。

以下是如何通过软件进行投票:

// Check to see if the timer overflowed after 1 sec
if (INTCONbits.TMR01F)
{
    // Yes, it did. Clear the flag so we do not re-enter until the next second
    INTCONbits.TMR01F = 0;

    // Increment counter
    intCLKsecs++;
}

此外,您的T0CON寄存器在第7位中为零...您需要将其视为一个以启动计时器(可能您已在代码中的其他位置完成此操作。)