我使用了定时器中断 发现定时时间不对 是我哪里弄错了么?我的配置如下
clock的配置
中断函数
主函数
extern uint8 timerflag;
void main()
{
/* Place your initialization/startup code here (e.g. MyInst_Start()) */
// VDAC test
uint8 count = 0;
uint8 timercount = 0;
CYGlobalIntEnable;
VDAC8_Start();
VDAC8_SetSpeed(VDAC8_HIGHSPEED);
VDAC8_SetRange(VDAC8_RANGE_1V);
isr_1_Start();
Timer_1_Start();
while(1)
{
if(timerflag)
{
// 100us
timerflag = 0;
timercount++;
if(timercount == 10)
{
// 1ms
timercount = 0;
VDAC8_SetValue(sinArray[count]); // 50/255* 4.080 = 0.8V
count += 1;
if(count == 256)
count = 0;
// T = 1ms * 256 = 256ms
}
}
else
{
}
}
}
/* [] END OF FILE */
本来是为了实现一个正弦波的
按照我的设想 由于我的数组大小为256 周期应该为256ms
可是实际用示波器测试出来的波形周期约为70ms
这是为什么呢?
之前用定时器中断控制LED闪烁也发现了同样的问题 |