你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

请教一个有关STM32中断处理和执行效率的问题

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

举报

6个回答
废鱼 回答时间:2010-5-19 14:15:54

RE:请教一个有关STM32中断处理和执行效率的问题

首先确认几个方面:
1、主频是多少?如果是72MHZ,那么执行一条指令的理论时间为14ns;
2、确认开启程序前面初始化IO口的频率是多少。
萧星-96138 回答时间:2010-5-19 14:22:59

回复:请教一个有关STM32中断处理和执行效率的问题

中断的响应时间                             
tin39 回答时间:2010-5-19 15:06:34

RE:请教一个有关STM32中断处理和执行效率的问题

我主频是72MHZ,GPIO的初始化频率都是设置为50MHZ的。
我看了资料,里面说STM32的中断响应时间为12个指令周期,感觉500ns好像有点长呀。
香水城 回答时间:2010-5-19 17:17:50

RE:请教一个有关STM32中断处理和执行效率的问题

你的这种处理方法有问题,对2.048M时钟通过中断进行IO采样基本是不现实的,即使能够实现,软件上也没有时间做其它事情了。
请考虑使用其它方法吧,比如使用SPI。
废鱼 回答时间:2010-5-19 17:32:43

RE:请教一个有关STM32中断处理和执行效率的问题

按楼上所说,也就是相当于2Mhz,中断的理论时间为:500ns,也就符合了你的测试时间。建议使用楼上的建议。
tin39 回答时间:2010-5-19 19:42:50

回复:请教一个有关STM32中断处理和执行效率的问题

        楼上您理解错了,2M是我用IO去采样的时钟,这个时钟不是用来触发我程序的外部中断的,外部中断是由另外一个线上的同步信号触发的(8K HZ),我的任务是触发同步信号后去根据这个2M的时钟去采样PCM语音的数据,采样16bit。
        正如楼上的楼上所说,用这种方式去采样的时候无法做别的事情了,不过目前我采用这样的方式正好能够实现PCM的录音,但是PCM放音却一直无法实现,我尝试下使用SPI的方式。
        谢谢各位的指点!谢谢!^^

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版