rwithyou 发表于 2013-1-12 17:20:29

28335的延时函数和CPU定时器问题

小弟想通过普通IO口输出高低电平来控制片外AD的启动转换信号(CONVST),高电平大概是3.5微秒,低电平0.5微秒:然后读取AD采样的结果时,需要片选CS信号置低大概0.5微秒,读取完了CS置高采样下组数据。
问题1,精确到0.5微妙的延时,通过延时函数可以实现吗? 是不是28335有自带的高精度的延时函数?

问题2,通过CPU定时器的话,我用CPU定时器0,想把周期设为0.5微秒,我看了ConfigCpuTimer(&CpuTimer0, 150, 1000000),对应的周期是1秒,那么是不是把1000000改成0.5就行了?
恳请各位大侠解答


chenerbox2 发表于 2013-1-15 23:12:52

才开始用28335,我也不熟

1在28335头文件例子中 有个
// DO NOT MODIFY THIS LINE.
#define DELAY_US(A)DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) - 9.0L) / 5.0L)

2 我看改成0.5就是 0.5us, 不过我感觉这个中断也太频繁了 ,怕是除了中断啥也干不了了

monkerman 发表于 2013-1-16 10:43:00

本帖最后由 monkerman 于 2013-1-16 10:44 编辑

楼上是对的.我也是初学. 不过是F28027的.

1. TI 是使用汇编实现的延时. 可以找"DSP_2833x_usDelay.asm"文件.

2. ConfigCpuTimer 函数后两个参数的类型就是 float.

The"Freq" is entered as "MHz" and the period in "uSeconds".
void ConfigCpuTimer(struct CPUTIMER_VARS *Timer,floatFreq,floatPeriod)
{
               
}

页: [1]
查看完整版本: 28335的延时函数和CPU定时器问题