我用定时器0做了一个1000hz的分频器 但是1000hz的分频分不了 我在1000hz处经行了电平翻转 测出来周期是两点几毫秒 在1000hz基础上用又分了500hz,250hz只有500hz的周期是2.0毫秒 误差最小的 250hz理论的周期应该是4毫秒 但实测是4.6毫秒和5.6毫秒之间交替
用的是8M外部晶振 主频80M 之前用SysCtlDelay做的延时也不对 这是什么问题呢
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我用定时器0做了一个1000hz的分频器 但是1000hz的分频分不了 我在1000hz处经行了电平翻转 测出来周期是两点几毫秒 在1000hz基础上用又分了500hz,250hz只有500hz的周期是2.0毫秒 误差最小的 250hz理论的周期应该是4毫秒 但实测是4.6毫秒和5.6毫秒之间交替
用的是8M外部晶振 主频80M 之前用SysCtlDelay做的延时也不对 这是什么问题呢
突然想到一个问题,你的FPU开启了吗?试试开启FPU看看。
FPUEnable(); FPULazyStackingEnable();
CCS中实测250HZ是4.0011ms之间
代码如下,中断中直接翻转IO
void Timer0IntHandler(void) { // // Clear the timer interrupt. // static uint8_t i; ROM_TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT); i++; if(i == 2) { i = 0; GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,GPIO_PIN_1); } else { GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,0); } }