[问答] AVR16位定时器1time1普通定时实验

60user100 ( 楼主 ) 2018-6-26 01:02:34  显示全部楼层
本帖最后由 一只耳朵怪 于 2018-6-26 10:21 编辑


/*AVR16位定时器1普通定时实验       天津第四项目部宿舍   */

#include <iom16v.h>
#define uchar unsigned char
#define uint unsigned int
#define set_bit(a,b)  a|=(1<<b)
#define clr_bit(a,b)  a&=(1<<b)
#define get_bit(a,b)  a&(1<<b)
uint i;
#pragma interrupt_handler time1_isr:9
void time1_isr()//定时计数器1溢出中断
{
i++;
if(i==10)
{
PORTC^=0x40;//输出方波T=80*2=160毫秒
i=0;
}
     TCNT0=0;  //重装计数器初值      

}
void int_time1()//定时器0设置初始化
{
    SREG=0x80;//开启全局中断
     TCNT1=0;//这里我采用RC震荡8M时钟,1分频后周期是0.125微秒,计数为65536-0=65536次所以就=65536*0.125=8.192微秒,中断一次是8.192微秒
    TIMSK=0x04;//开启定时器1溢出中断
    TCCR1A=0x00;//工作在普通模式,
    TCCR1B=0x01;//工作在内部8M时钟1分频,普通模式
   
}
void main()
{
DDRC=0xff;
PORTC=0;
int_time1();
while(1);


}


0个回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则


关闭

站长推荐上一条 /9 下一条

小黑屋|手机版|Archiver|电子发烧友 ( 粤ICP备14022951号-2 )

GMT+8, 2018-10-23 06:49 , Processed in 0.347779 second(s), 56 queries , Memcache On.

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

微信扫描
快速回复 返回顶部 返回列表