BASIC4MCU | 질문게시판 | 답변 : atmega128 코드 질문있습니다
페이지 정보
작성자 master 작성일2022-06-07 15:08 조회7,344회 댓글3건본문
#include <mega128.h>
#include <delay.h>
//
char ss_data[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x67};
char led_B[10]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00};
char led_D[10]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe};
//
void main(void){
char i=0;
DDRA=0xff; DDRC=0xff; //세그먼트
DDRB=0xff; DDRD=0x01; //LED
while(1){
PORTC=0x0e; PORTA=ss_data[i]; //세그먼트 시간 0~9
PORTB=led_B[i]; PORTD=led_D[i]; //LED가 우측부터 켜짐
if(++i>9)i=0;
//----------------
delay_ms(1000);
}
}
1초마다 i 증가 하던 것을 스위치 누를 때마다 증가 하도록 변경하고 싶은 것인가요?
#include <mega128.h>
#include <delay.h>
//
char ss_data[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x67};
char led_B[10]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00};
char led_D[10]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe};
//
void main(void){
char i=0,flag=0;
DDRA=0xff; DDRC=0xff; //세그먼트
DDRB=0xff; DDRD=0xff; //LED
PORTE=0x10; //스위치 내부 풀업저항
while(1){
PORTC=0x0e; PORTA=ss_data[i]; //세그먼트 시간 0~9
PORTB=led_B[i]; PORTD=led_D[i]; //LED가 우측부터 켜짐
//----------------
if((PINE&0x10)==0){ // PE4 스위치를 누르면
if(flag==0){ flag=1; if(++i>9)i=0; delay_ms(50); } // 하강엣지 검출
}
else{
if(flag){ flag=0; delay_ms(50); } // 상승엣지 검출
}
}
}
댓글 3
조회수 7,344콜뚜기님의 댓글
콜뚜기 작성일단순히 스위치로 회로를 온오프할수있는지 질문드렸어요 ㅋㅋ 일단 감사합니다
master님의 댓글
master
#include <mega128.h>
#include <delay.h>
//
char ss_data[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x67};
char led_B[10]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00};
char led_D[10]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe};
//
void main(void){
char i=0,flag=0,run=0;
DDRA=0xff; DDRC=0xff; //세그먼트
DDRB=0xff; DDRD=0xff; //LED
PORTE=0x10; //스위치 내부 풀업저항
while(1){
if((PINE&0x10)==0){ // PE4 스위치를 누르면
if(flag==0){ flag=1; run^=1; delay_ms(50); } // 하강엣지 검출 // run 토글
}
else{
if(flag){ flag=0; delay_ms(50); } // 상승엣지 검출
}
//----------------
if(run){ // run=1일 때만 동작
PORTC=0x0e; PORTA=ss_data[i]; //세그먼트 시간 0~9
PORTB=led_B[i]; PORTD=led_D[i]; //LED가 우측부터 켜짐
if(++i>9)i=0;
delay_ms(1000);
}
}
}
콜뚜기님의 댓글
콜뚜기
정말 감사합니다