共3条
1/1 1 跳转至页

问
我的程序里需要一个比较精确的时间基准。
答 1:
CTCT0& T1 CTC模式,用系统晶体作时钟源,精确度由系统晶体决定!
答 2:
l4157定时器中断函数里执行的语句越多,误差就越大啊,我的程序里有几个时间标准。
答 3:
CTC是由CPU硬件自动清零CTC是由CPU硬件自动清零,所以中断间隔应该相等(只开一个中断),而且CTC可保证下一个中断不延迟!
不知兄弟为什么要这样准的时基?如实在不行建议用CPLD做一个!估计是采样吧? 答 4: l4157对啊,我是采集外部的信号,你这个方法能同时产生几个时间标准吗? 答 5: 不知你的实际工作需求如果是实时性很强,我不建议使用AVR的CTC,如做FFT等;但只是普通采样滤波或定时采样,CTC足够,不过CTC好象也可用来触发片内ADC转换,
不介意说一下你的CPU任务需求? 答 6: 晓奇老师,有个精确定时的例子/*======================================
微秒级精确延时函数,晶振8M:
Delay = 0.125 *((tt*4-1)+9)微秒
其中9包括了调用方的 r16 赋值 1t
rcall 3t nop 1t ret 4t
brne指令在当判断条件不成立时是单周期
最后一次判断只有1个周期,补一个nop
简化计算 = 0.5tt + 1 (us)
======================================*/
void shortdelay(unsigned char tt)
{
asm("_L2: subi R16,1"); // 1t
asm(" nop") // 1t
asm(" brne _L2"); // 2t/1t
asm(" nop"); // 1t
asm(" ret"); // 4t
} 答 7: 我也有同样的问题。我想用MEGA16作64点交流采样,然后进行FFT运算。我是这么做的,将交流信号变为方波,用T1测出信号的周期,然后TCNT1/64作为采样周期,用T1的比较中断进行AD采样,然而,采出的结果看起来好象不是一个完整周期的信号(比一个周期要短一些),可能是在计算采样周期的时候,T/64产生的偏差所致,但又不大象,好象不应该有那么大的偏差,不知问题出在哪里。请问各位,有什么好办法? 答 8: 一个周期的AD值这是我采出的一个周期的信号值,在EXCEL中可以很容易描出其曲线,请高手帮忙分析一下。
442
420
396
388
371
352
331
314
318
308
316
295
294
293
288
284
284
284
287
314
328
341
355
375
397
419
445
455
486
500
537
544
571
579
600
628
650
653
665
694
718
726
729
724
724
740
742
742
741
741
738
733
711
695
681
666
649
629
609
586
560
549
515
499
不知兄弟为什么要这样准的时基?如实在不行建议用CPLD做一个!估计是采样吧? 答 4: l4157对啊,我是采集外部的信号,你这个方法能同时产生几个时间标准吗? 答 5: 不知你的实际工作需求如果是实时性很强,我不建议使用AVR的CTC,如做FFT等;但只是普通采样滤波或定时采样,CTC足够,不过CTC好象也可用来触发片内ADC转换,
不介意说一下你的CPU任务需求? 答 6: 晓奇老师,有个精确定时的例子/*======================================
微秒级精确延时函数,晶振8M:
Delay = 0.125 *((tt*4-1)+9)微秒
其中9包括了调用方的 r16 赋值 1t
rcall 3t nop 1t ret 4t
brne指令在当判断条件不成立时是单周期
最后一次判断只有1个周期,补一个nop
简化计算 = 0.5tt + 1 (us)
======================================*/
void shortdelay(unsigned char tt)
{
asm("_L2: subi R16,1"); // 1t
asm(" nop") // 1t
asm(" brne _L2"); // 2t/1t
asm(" nop"); // 1t
asm(" ret"); // 4t
} 答 7: 我也有同样的问题。我想用MEGA16作64点交流采样,然后进行FFT运算。我是这么做的,将交流信号变为方波,用T1测出信号的周期,然后TCNT1/64作为采样周期,用T1的比较中断进行AD采样,然而,采出的结果看起来好象不是一个完整周期的信号(比一个周期要短一些),可能是在计算采样周期的时候,T/64产生的偏差所致,但又不大象,好象不应该有那么大的偏差,不知问题出在哪里。请问各位,有什么好办法? 答 8: 一个周期的AD值这是我采出的一个周期的信号值,在EXCEL中可以很容易描出其曲线,请高手帮忙分析一下。
442
420
396
388
371
352
331
314
318
308
316
295
294
293
288
284
284
284
287
314
328
341
355
375
397
419
445
455
486
500
537
544
571
579
600
628
650
653
665
694
718
726
729
724
724
740
742
742
741
741
738
733
711
695
681
666
649
629
609
586
560
549
515
499
共3条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
电流检测模块MAX4080S被打赏10分 | |
【我踩过的那些坑】calloc和malloc错误使用导致跑飞问题排查被打赏50分 | |
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 | |
【我踩过的那些坑】杜绑线问题被打赏50分 | |
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 |