关于如何使用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转换为时钟格式。
答案 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位中为零...您需要将其视为一个以启动计时器(可能您已在代码中的其他位置完成此操作。)