【求助】mega8 模拟比较器进不了中断 AVRSTUDIO+PROTUS仿真
在mega16 上仿真的还好好啊,一到mega8就不行了。实在不知道为什么,小灯就是不变化,没有进中断的样子。
//-----------------------------------------------------------------
//-----------------------------------------------------------------
//Ãû³Æ: Ä£Äâ±È½ÏÆ÷²âÊÔ
//-----------------------------------------------------------------
#define F_CPU 1000000UL //1M¾§Õñ
#include <avr/io.h>
#include <avr/interrupt.h>
#define INT8U unsigned char
#define INT16Uunsigned int
#define LED3_ON()(PORTD &= 0xDF)//¿ªLED3
#define LED3_OFF() (PORTD |= 0x20)//¹ØLED3
//------------------------------------------------------------------
// Ö÷³ÌÐò
//------------------------------------------------------------------
int main()
{
DDRD =0B00100000; //PD2-INT0 ; PD67±È½Ï ; PD5 2¼«¹Ü
SFIOR &= ~_BV(ACME); //AIN1-PD7½Ó¸º¼«
SFIOR |=_BV(PUD); //½ûÓÃÄÚ²¿ÉÏÀ
ACSR =_BV(ACIE); //ÔÊÐí±È½ÏÖжÏ,ÄÚ²¿»ù×¼µçѹ£¬±ä»¯¼´ÖжÏ
sei();
while(1);
}
//-----------------------------------------------------------------
// Ä£Äâ±È½ÏÆ÷ÖжϷþÎñ³ÌÐò
//-----------------------------------------------------------------
ISR (_VECTOR(10))
{
if(ACSR & _BV(ACO))
{
LED3_OFF();
}
else
{
LED3_ON();
}
} SFIOR &= ~_BV(ACME);不使能模拟比较器多路复用器;不知楼主SFIOR |=_BV(PUD); 这句配置起什么作用? shuipaopao 发表于 2013-3-26 16:52 static/image/common/back.gif
SFIOR &= ~_BV(ACME);不使能模拟比较器多路复用器;不知楼主SFIOR |=_BV(PUD); 这句配置起什么作用? ...
禁止上拉 用实际硬件电路调试吧 ISR (_VECTOR(10))?????
这个是模拟中断向量号???
foxpro2005 发表于 2013-3-28 13:16 static/image/common/back.gif
用实际硬件电路调试吧
我是硬件不行才来仿真的...
本帖最后由 gzc581 于 2013-3-29 21:47 编辑
yklstudent 发表于 2013-3-28 21:22 static/image/common/back.gif
ISR (_VECTOR(10))?????
这个是模拟中断向量号???
看了一下手册
0x010 ANA_COMP 模拟比较器 yklstudent 发表于 2013-3-28 21:22 static/image/common/back.gif
ISR (_VECTOR(10))?????
这个是模拟中断向量号???
擦,我错了....应该是16或者 0x10,我试试 M8的模拟中断向量号是【17】吧?{:smile:}
页:
[1]