⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 time0.h

📁 Proteus与AVR应用实例,对初学者很有帮助。
💻 H
字号:
#ifndef __time0_h
#define __time0_h
#include <iom16v.h>  
//#include <iom128v.h> 
#include <macros.h> 
#include <delay.h> 
#include <parameter.h> 
//---------------------------定时器0初始化------------------------------------//
void timer0_int(void)
{  
  DDRD |= 0xC0;  
 // TCNT0=178;  // T/C0 开始值 定时10ms  
 // TCNT0=100;  // T/C0 开始值 定时20ms  
  TCNT0=57;  // T/C0 开始值 定时0.0002s  
  TCCR0=0x02;
  //TCCR0=0x05;  
  // TCCR0.7=0: 不强制输出比较 
  // TCCR0.3.TCCR0.6(WGM01,WGM00)=00 : T/C0普通工作模式(定时和计数) 
  // TCCR0.5, TCCR0.4=00: 正常的端口操作,OC0未连接 
  // TCCR0.2~TCCR0.0=010: Ft0=Ftos/256 
  // 因为TCNT0=6->250,所以,计时中断250*256/Ftos 

}
//-------------------------50HzPWM波产生函数---------------------------------//
//mega16
#pragma interrupt_handler timer0_ovf_isr:10  
//mega128
//#pragma interrupt_handler timer0_ovf_isr:17
void timer0_ovf_isr(void)
{
 static unsigned char tt; //tt用来保存当前时间在一秒中的比例位置
 TCNT0=57;
 tt++;
 if(tt==99) 
 {
  tt=0;
  PORTD|=BIT(6);
 }
 if(scale==tt) //按照当前占空比切换输出高电平
 {
  PORTD&=~BIT(6);
 }
 if(tt==50) 
 {
  PORTD|=BIT(7);
 }
 if(tt==50+scale) 
 {
  PORTD&=~BIT(7);
 }
}
#endif

⌨️ 快捷键说明

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