在线时间0 小时
UID150774
ST金币0
蝴蝶豆0
注册时间2008-4-13
新手上路
- 最后登录
- 2018-5-31
|
a0a.1 0b0c
我采用的处理器为STM32F103VC,在对PCM语音的2.048M时钟进行IO采样时感觉很吃力呀。
例如:我用PB0做上升沿外部中断,一旦触发中断,就将PB1的IO线拉低。进中断后,不做任何操作,直接将PB1的IO拉低了,对于PB1的数据输出寄存器的操作不使用官方带的库函数(库函数确实有些低效),而直接通过位带区来访问PB1数据输出寄存器的BIT1位(减少了位操作的时间)。并且代码采用了编译器的最高级优化。但是,从示波器看,从上升沿触发中断,到PB1的IO拉低,中间过了500ns,感觉时间还是好长啊,请问有没高手能解答这个是否正常?是我哪里出问题了么?如果正常,那么处理器中间做了什么花费了这么多的时间?
在上面的基础上,我在触发中断和拉低电平之间加入了一句读取RAM中数据的操作,加入该操作后,能看到PB1的IO拉低的时间推迟了大概200ns以上。请问这个是否正常呢?看汇编,其中第一句语句是到PC位置后面的某处获取该RAM中变量的地址,然后将该RAM读取到寄存器中,也就2个指令,应该不用花费这么久的时间,非常疑惑。望高手解答。感谢之至! |
|