您的位置 首页 IOT

AVR C句子运转时刻测验程序源代码

整个工程下载:http://www.rayfile.com/zh-cn/files/b8f67659-d773-11df-b350-0015c55db73d/f0ec1fdf/核心代码:/******

整个工程下载:

http://www.rayfile.com/zh-cn/files/b8f67659-d773-11df-b350-0015c55db73d/f0ec1fdf/

中心代码:
/********** AVR 运转时刻测验程序 **********
* 版别………: 1.0
* 作者………: 陈利栋
* 方针………: ATmega128
* 文件名…….: main.c
* 编译器…….: IAR for AVR V5.5
* 创立时刻…..: 2010.10.14
* 最终修正…..: 2010.10.14
******************************************/
#include “main.h”

intputchar(intc)
{
returnuart_putchar(c);
}

volatileunsignedintTimerOverflowCount=0;

intmain(void)
{
unsignedlongTimerCount=0;

UART_Init();
printf(“*********** 运转时刻测验 ***********\r\n”);
printf(“Build: %s %s\r\n”,__DATE__,__TIME__);
printf(“时钟频率: %fMHz\r\n”,(float)F_CPU/1000000);

TCCR1B_CS10=1;// 定时器1使能计数,无分频
TIMSK_TOIE1=1;// 定时器1使能溢出中止
__enable_interrupt();// 总中止使能
TimerOverflowCount=0;// 溢出计数清零
TCNT1=0;// 计数器清零

/* 此处刺进要运转的代码 */
/* 代码开端 */
_delay_us(123456);
/* 代码完毕 */

TCCR1B_CS10=0;// 定时器1中止计数 花费3个时钟周期
TimerCount=TCNT1;
TimerCount|=((unsignedlong)TimerOverflowCount<<16);
TimerCount-=3;// 封闭定时器的时刻
TimerCount-=(50*TimerOverflowCount);// 溢出中止花费的时刻

printf(“耗费时钟周期数…: %ld 0x%lx\r\n”,TimerCount,TimerCount);
printf(“耗费时刻(单位: s): %lf\r\n”,(double)1*TimerCount/F_CPU);
printf(“耗费时刻(单位:ms): %lf\r\n”,(double)1000*TimerCount/F_CPU);
printf(“耗费时刻(单位:us): %lf\r\n”,(double)1000000*TimerCount/F_CPU);
printf(“耗费时刻(单位:ns): %lf\r\n”,(double)1000000000*TimerCount/F_CPU);

while(1);
}

#pragma vector = TIMER1_OVF_vect
__interruptvoidTimer1_Overflow(void)
{
TimerOverflowCount++;
}

测验作用:

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/254883.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部