BASIC4MCU | 질문게시판 | 외부인터럽트와 타이머/카운터 인터럽트를 이용 응용 프로그램 작성
페이지 정보
작성자 MCU새우 작성일2018-06-29 22:04 조회6,938회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=5624
본문
외부인터럽트(PE4~PE7: 메인보드 스위치)와 타이머/카운터0 인터럽트 반드시 사용할 것 출력은 FND와 LED를 사용 PE4~7에 연결된 스위치 마다 다른 동작을 할 것 (예 좌로 시프트, 우로 시프트, FND 업, FND 다운 등)
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
unsigned char dec_font[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71,0x00};
fnd_t fnd;
uint16_t sec = 0;
ISR(INT4_vect){
PORTA<<=1; if(PORTA==0)PORTA=0x01;
}
ISR(INT5_vect){
PORTA>>=1; if(PORTA==0)PORTA=0x80;
}
ISR(INT6_vect){
}
ISR(INT7_vect){
}
void init_ExInt(void){
EICRB=0xaa; EIMSK=0x30;
}
int main(void){
DDRA=0xff;
init_ExInt();
sei();
while(1){
}
}
4번, 5번은 LED가 스위치를 누를때마다 좌 우 시프트되고6번, 7번은 FND가 스위치를 누를때마다 업 다운이 되게 하고싶습니다.AVR 사용하고 프로그램은 이클립스 사용하고있습니다. 프로세서는 ATMEGA128A를 사용하고 있고스위치는 PE7,6,5,4번을 사용하며 FND는 PORTC, PORTG3,2,1,0번으로 그라운드를 잡아여 사용합니다.
댓글 0
조회수 6,938등록된 댓글이 없습니다.