Chào mọi người, em đang làm 1 mạch điều khiển cho quạt điện, trong đó có 1 chức năng đó là hẹn giờ tắt
Tạm thời theo mô phỏng thì vấn đề như thế này:
-Dùng 1 phím bấm để kích hoạt chế độ hẹn giờ tắt: sau 30',60',90'
-Hiển thị các chế độ hẹn bằng led: 1 led, 2 led, 3 led sáng
Và dc đoạn code sau:
COmpily xong xuôi rồi và đã dc 1 file ".hex"
Thế nhưng khi chạy thì bấm switch mãi mà chẳng dc led nào sáng cả
Mọi người giúp em vụ này với.
Tạm thời theo mô phỏng thì vấn đề như thế này:
-Dùng 1 phím bấm để kích hoạt chế độ hẹn giờ tắt: sau 30',60',90'
-Hiển thị các chế độ hẹn bằng led: 1 led, 2 led, 3 led sáng
Và dc đoạn code sau:
#include <mega8.h>
#define hen_gio PIND.2 // chan INT0
//hien thi che do hen gio
#define hen30 PORTC.0 //led1
#define hen60 PORTC.1 //led2
#define hen90 PORTC.2 //led3
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here
int i;
int j=0;
j+=1;
if (j>3) j=0;
switch(j){
//case 0 : i=0;break;
case 1 : {i=30;hen30=1;};break;
case 2 : {i=60;hen30=hen60=1;};break;
case 3 : {i=90;hen30=hen60=hen90=1;};break;
default : {i=0;hen30=hen60=hen90=0;};
};
}
// Declare your global variables here
//int i;
//int j=0;
//int k=0;
void main(void)
{
// Port B initialization
PORTB=0x00;
DDRB=0x00;
// Port C initialization
PORTC=0x00;
DDRC=0xFF;
// Port D initialization
PORTD=0x00;
DDRD=0xFF;
// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Rising Edge
// INT1: Off
GICR|=0x40;
MCUCR=0x03;
GIFR=0x40;
ACSR=0x80;
SFIOR=0x00;
// Global enable interrupts
#asm("sei")
while (1)
{
hen30=hen60=hen90=0;
};
}
#define hen_gio PIND.2 // chan INT0
//hien thi che do hen gio
#define hen30 PORTC.0 //led1
#define hen60 PORTC.1 //led2
#define hen90 PORTC.2 //led3
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here
int i;
int j=0;
j+=1;
if (j>3) j=0;
switch(j){
//case 0 : i=0;break;
case 1 : {i=30;hen30=1;};break;
case 2 : {i=60;hen30=hen60=1;};break;
case 3 : {i=90;hen30=hen60=hen90=1;};break;
default : {i=0;hen30=hen60=hen90=0;};
};
}
// Declare your global variables here
//int i;
//int j=0;
//int k=0;
void main(void)
{
// Port B initialization
PORTB=0x00;
DDRB=0x00;
// Port C initialization
PORTC=0x00;
DDRC=0xFF;
// Port D initialization
PORTD=0x00;
DDRD=0xFF;
// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Rising Edge
// INT1: Off
GICR|=0x40;
MCUCR=0x03;
GIFR=0x40;
ACSR=0x80;
SFIOR=0x00;
// Global enable interrupts
#asm("sei")
while (1)
{
hen30=hen60=hen90=0;
};
}
Thế nhưng khi chạy thì bấm switch mãi mà chẳng dc led nào sáng cả
Mọi người giúp em vụ này với.
Comment