在使用F28335制作定时器时,发现定时器中断时数码管刷新时点亮时间过长会导致时间不准确,经过多次尝试后发现,数码管刷新所需时间须小于定时器中断间隔,即中断函数执行所需时间应小于定时器中断间隔,否则会影响定时器计时。
TIM0_Init(150,10000);
for(i=0;i<4;i++)
{
HC164SendData(buf[i]);
switch(i)
{
case 0: SEG1_SETH;SEG2_SETL;SEG3_SETL;SEG4_SETL;break;
case 1: SEG1_SETL;SEG2_SETH;SEG3_SETL;SEG4_SETL;break;
case 2: SEG1_SETL;SEG2_SETL;SEG3_SETH;SEG4_SETL;break;
case 3: SEG1_SETL;SEG2_SETL;SEG3_SETL;SEG4_SETH;break;
}
DELAY_US(2500);
}
如上所示,定时器中断定时为10ms,则数码管刷新所需总时间也应小于10ms,即下方代码中DELAY_US的值应小于2500。