Part Number:TMS320C6657
大家好
在sys/bios里 只有一个任务:
Void Uart6657Send()
{
uint8_t i=0;
for(;;)
{
for(i=0;i<10;i++)
{
//程序
}
Task_sleep(20);
}
}
Task_sleep(20)表示这个任务休眠20ms 再执行 这样的话 两次发送的间隔应该是20ms
但测量发现 两次发送的间隔小于20ms 这是什么问题啊???

skysteed:
tick的节拍如下:
系统的时钟是1G 我的晶振是差分100M 扩频到1G:
,
Shine:
请问您是通过GPIO管脚来量的?这个不是很准。
建议用TSCL, TSCH来测代码运行时间。
void main() { unsigned long long t1, t2; … TSCL = 0; // Initiate CPU timer by writing any val to TSCL … t1 = _itoll( TSCH, TSCL ); // benchmark snapshot of free-running ctr my_code_to_benchmark(); t2 = _itoll( TSCH, TSCL ); // benchmark snapshot of free-running ctr printf("# cycles == %ld\n", (t2-t1)); }
,
skysteed:
你好 你可能理解错了
这不是通过GPIO测量的!
Void Uart6657Send(){uint8_t i=0;
for(;;){
for(i=0;i<10;i++) {
//发数程序
}
Task_sleep(20);//ms
}
这个程序 表示Uart6657Send这个任务 把for循环里的发数程序执行一次后 休眠20ms 再重复执行发数程序!!!
但测量 发现 这两次发数的间隔不是20ms
,
Shine:
有用TSCL, TSCH来测过吗?这个是CPU计时的,比较准。
TI中文支持网






