完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-6-6 16:14 编辑
我用的芯片是TMS320F2812,外部晶振是30MHz,PLL将主频设为150MHz,时钟周期6.67ns。 interrupt void ADCINT_ISR(void) // ADC中断函数 [ GpioDataRegs.GPASET.bit.GPIOA6=1; PieCtrl.PIEACK.all=0x0001; AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1; AdcRegs.ADCTRL2.bit.SOC_SEQ1=1; EINT; GpioDataRegs.GPACLEAR.bit.GPIOA6=1; ] 我用示波器查看GPIOA6脚波形是200ns,中间只有4条指令,时钟周期是6.67ns,这么会有200ns?一条指令究竟用了几个时钟周期? |
|
相关推荐
6个回答
|
|
和时钟周期能对得上的是汇编指令,C语句要看她编译成的汇编有多少条汇编,每条汇编在手册里可以查到对应的指令周期。
|
|
|
|
图中是C语言和汇编混合显示的。可以看出汇编语言很简单,不会占用太多指令周期,我也没找到这些语句所占的真正指令周期。你有这样像51单片机那样的指令周期表吗?给我发一份。wtn2786467@163.com,帮我分析一下,哪里出了问题。谢谢
|
|
|
|
pm58 发表于 2018-6-6 05:10 楼主你好!请问你使能EINT是为了中断嵌套吗? 请将EINT屏蔽掉,然后再测试。 请查看F2812芯片手册SPRS174第六章,关于GPIO timming. I/O最大翻转频率为:20MHz, 由于你是置高然后清零相当于是翻转了两次,因此为10MHz,,时间应该为100ns左右。也即时间不可能小于100ns.,这个最小时间跟CPU指令周期没有关系。 |
|
|
|
Ehunt 发表于 2018-6-6 05:26 Johnson说的有道理,如果想使用IO口反转来测指令执行周期的话,建议您使用for(;;)循环多次,来测时间取平均值; 另外比较精确的方式是使用Timer来测量。 Young Hu |
|
|
|
这要看执行的指令是在哪个地方运行的了。
|
|
|
|
在芯片的片上RAM上运行,就是配置的最高速度了,但是在Flash或是SRAM中,就会慢一些,要看你的配置了
|
|
|
|
只有小组成员才能发言,加入小组>>
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
404 浏览 0 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
930 浏览 1 评论
537 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
413 浏览 1 评论
969 浏览 0 评论
63浏览 3评论
CC3100BOOST使用CC3200lunchXL进行烧录
912浏览 2评论
156浏览 2评论
197浏览 2评论
175浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-29 06:49 , Processed in 0.884088 second(s), Total 88, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号