time1.c

来自「AVR定时器1最简例程」· C语言 代码 · 共 65 行

C
65
字号
/*=========================================================================
*
*  文件名:time1
*
*  文件描述:定时器1范例程序
*
*  创建人: FM
*
*  版本号:1.0
*
*  运行环境:IAR mega8
*
*  修改记录:
*
==========================================================================*/
#include<iom8.h>
#define uchar unsigned char
int tem=0;


//定时器1初始化
void time1_init()
{
  TCCR1B = 0x00;//关闭定时器1
  TCNT1H = (65536-1000)/256;//定义初始值
  TCNT1L = (65536-1000)%256;
  TCCR1A = 0x00;
  TCCR1B = 0x01;//启动定时器1,无分频
}  
void main()
{
  DDRB = 0xff;
  PORTB = 0xFF; 
  
  DDRC = 0xff;
  PORTC = 0xFF;
   
  DDRD=0xFF;    /*方向输出*/ 
  PORTD=0x00;    /*电平设置*/
  
  time1_init(); 
  
  SREG|=0x80;//开中断
  TIMSK = 0x04; 

//  PORTD=0xfe;
  
  while(1);
}

/*中断服务程序*/
#pragma vector=TIMER1_OVF_vect
__interrupt void time1(void)
{
  TCNT1H = (65536-1000)/256;//定义初始值
  TCNT1L = (65536-1000)%256;
  tem++;
  if(tem==1000)
  {
    PORTD_Bit0=~PORTD_Bit0; 
    tem=0;
  }
  
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?