main.c

来自「《AVR单片机GCC程序设计》」· C语言 代码 · 共 60 行

C
60
字号
/*
	模拟比较器测试程序 
	main.c
	MCU:ATMega8
	
	芯艺 2004-09-16
*/

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

#define uchar unsigned char

#define SET_RED_LED PORTB&=0XFD //PB1接红色发光管
#define CLR_RED_LED PORTB|=0X02

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

//模拟比较器中断函数
SIGNAL(SIG_COMPARATOR)
{
	if(ACSR & _BV(ACO))
	{
		SET_YEL_LED;
		CLR_RED_LED;
	}
	else
	{
		CLR_YEL_LED;
		SET_RED_LED;
	}
}

int main(void)
{
	DDRB=0X03;
	PORTB=0X03;

	//模拟比较器上下均触发中断 ACIS1=ACIS0=0
	//中断允许 ACIE=1
	ACSR=_BV(ACIE);

	sei();
	
	//AIN0:正极 AIN1:负极  AIN0脚上的电压高于AIN1上电压时AC0=1
	if(ACSR & _BV(ACO))
	{
		SET_YEL_LED;
		CLR_RED_LED;
	}
	else
	{
		CLR_YEL_LED;
		SET_RED_LED;
	}

	while(1);
}

⌨️ 快捷键说明

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