📄 tc0_2.c
字号:
/*****************************************************
**** AVR T/C0 使用范例2(T/C0作为定时器) ***
**** 作者: liugangdi ***
**** 编译器:WINAVR20050214 ***
**** 日期:2005.12.11 ***
******************************************************/
/*功能简单说明:T/C0作为定时器,8MHZ晶振,1024分频,128us计
1个数。T/C0初值为131,每计125个数(16ms),T/C0溢出一次。其中
中断服务子程序使PC2 (由于mega16实验板的限制,可通过PC2引脚接到
示波器来观察)改变方向,产生32ms的对称方波。 此时的OC0可以设置没
有被连接,PB3作为普通的端口使用.*/
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <stdio.h>
#define uchar unsigned char
#define PC2 2
uchar data,data1;
void init_timer0(void)
{TIMSK=0x01; //T/C0溢出中断使能
TCCR0=0X05; //1024分频
TCNT0=0X83; //T/C0置初值131
}
SIGNAL (SIG_OVERFLOW0) //T/C0溢出中断服务程序
{TCNT0=0X83; //T/C0重新置初值131
PORTC^=_BV(PC2); //哪一位要取反就与1异或
}
int main(void)
{DDRC=0XFF; //定义C口方向
init_timer0();
sei();
while(1){;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -