سلام
یکی میتونه بگه این وقفه مقایسه گر آنالوگ چرا رخ نمیده.....اون LED متصل به PIND.0 روشن نمیشه
پایه AIN0 رو ولتاژ 1.4 گزاشتم(به کمک بیت ACBG) و به پایه AIN1 رو هم یه ولتاژ قابل تغییر وصل کردم
با همین شماتیک انواع حالات مقایسه گر آنالوگ رو من پروژش رو انجام دادم و فقط این مونده که اعصابم رو خورد کرده، هر چی فک میکنم نمیدونم کجای کار اشتباهه
دیتاشیت 3 صفحه ایش رو هم خوندم ولی :angry: :angry: :angry: :angry:
[code=c]#include <mega16.h>
// Analog Comparator interrupt service routine
interrupt [ANA_COMP] void ana_comp_isr(void)
{
PORTD.0 = !PORTD.0;
}
void main(void)
{
DDRD = 0xff;
PORTD = 0x00;
SFIOR |= (0<<ACME);
ACSR |= (0<<ACD) | (1<<ACBG) | (0<<ACO) | (0<<ACI) | (1<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
#asm("sei"
// فعال کردن وقفه سراسری
while(1){}
}[/code]
اضافه شده در تاریخ :
خب طبق معمول مشکل از پروتئوس بود
در عمل بستم و جواب داد.^_^
یکی میتونه بگه این وقفه مقایسه گر آنالوگ چرا رخ نمیده.....اون LED متصل به PIND.0 روشن نمیشه
پایه AIN0 رو ولتاژ 1.4 گزاشتم(به کمک بیت ACBG) و به پایه AIN1 رو هم یه ولتاژ قابل تغییر وصل کردم
با همین شماتیک انواع حالات مقایسه گر آنالوگ رو من پروژش رو انجام دادم و فقط این مونده که اعصابم رو خورد کرده، هر چی فک میکنم نمیدونم کجای کار اشتباهه
دیتاشیت 3 صفحه ایش رو هم خوندم ولی :angry: :angry: :angry: :angry:
[code=c]#include <mega16.h>
// Analog Comparator interrupt service routine
interrupt [ANA_COMP] void ana_comp_isr(void)
{
PORTD.0 = !PORTD.0;
}
void main(void)
{
DDRD = 0xff;
PORTD = 0x00;
SFIOR |= (0<<ACME);
ACSR |= (0<<ACD) | (1<<ACBG) | (0<<ACO) | (0<<ACI) | (1<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
#asm("sei"

while(1){}
}[/code]
اضافه شده در تاریخ :
خب طبق معمول مشکل از پروتئوس بود
در عمل بستم و جواب داد.^_^