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

📄 main.c

📁 AVR单片机GCC程序设计随书光盘源码 内附AVR嵌入式操作系统源码
💻 C
字号:
/*
	ATMega8 T/C0中断方式测试程序 
	文件名:main.c
	硬件:CA-M8
	时钟:外部4MHz
	
	芯艺 2004-12-01
*/

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>

#define uchar unsigned char

#define SET_LED PORTB&=0XFE //PB0接黄色发光管
#define CLR_LED PORTB|=0X01

static uchar g_bCount=0;	//中断计数器
static uchar g_bDirection=0;

//T/C0中断例程
SIGNAL(SIG_OVERFLOW0)
{
	// 产生中断周期 T = 256 * 1024 / 4MHz 
	// T * 15 约等于 1 秒 
	if(++g_bCount >14)		//中断15次约一秒
	{
		if(g_bDirection)	//反向LED控制脚
			SET_LED,g_bDirection=0;
		else
			CLR_LED,g_bDirection=1;	
			
		g_bCount=0;
	}
}

int main(void)
{
	//PB0初始化成输出
	DDRB=_BV(PB0);
	PORTB=_BV(PB0); 

	TCNT0=0; // T/C0开始值 
	TCCR0=_BV(CS02)|_BV(CS00); // 预分频 ck/1024 ,计数允许
	
	TIMSK=_BV(TOIE0);	//T/C0中断允许
	sei();				//总中断标志置位
	
	while(1);
}

⌨️ 快捷键说明

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