BASIC4MCU | 질문게시판 | 어제 받은 소스에서 질문있습니다.
페이지 정보
작성자 남동 작성일2018-12-19 17:12 조회6,175회 댓글0건본문
#include <mega128.h>
#include <delay.h>
#define UINT unsigned char
#define INT unsigned int
UINT FND[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98}; // 0~9
INT nansu;
UINT Run=1;
UINT d1=0,d2=0,d3=0,d4=0, i=0;
void main(void)
{
UINT SW,OLD_SW;
DDRA=0xFF; // A 포트 모든 핀 출력 설정
PORTA=0xFF; // 모든 LED 초기값 OFF
DDRB=0xFF; // B 포트 모든 핀 출력 설정
DDRF=0xF0; // PF4-PF7 출력 설정
DDRE=0x02; // PE 포트 입력 설정(PE1 출력) <-- 0x02로 설정된 이유가 궁금합니다. 혹시 몰라 0xFF로 변경해보았을때 스위치가 작동하지 않았습니다.
OLD_SW=(~PINE>>4)&3; // SW8 상태값 추출 <-- (~PINE>>4)&3의 의미가 정확이 어떤 의미인지 잘 모르겠습니다.
TCCR1B=0x09; OCR1A=9999;
while(1)
{
PORTF=~0x80; PORTB=FND[d1]; delay_us(2450);
PORTF=~0x40; PORTB=FND[d2]; delay_us(2450);
PORTF=~0x20; PORTB=FND[d3]; delay_us(2450);
PORTF=~0x10; PORTB=FND[d4]; delay_us(2450);
SW=(~PINE>>4)&3;
if(SW!=OLD_SW)
{
OLD_SW=SW;
if(SW&1)
{
Run^=1; // SW8 <-- Run^=1 의 의미를 잘 모르겠습니다. 인터넷에도 정확한 설명이 잘 나오지 않아 부탁드립니다.
}
}
if(Run)
{
nansu=TCNT1;
d1=nansu/1000;
d2=nansu/100%10;
d3=nansu/10%10;
d4=nansu%10;
}
if(FND[d1]==FND[d2]==FND[d3]==FND[d4]==0xf8)
{
for(i=0;i<10;i++)
{
PORTA=0x00;
delay_ms(200);
PORTA=0xFF;
delay_ms(200);
}
}
}
}
프로그래밍 실력과 지식이 많이 부족해 반복되는 질문 죄송합니다. 또한 답변 감사합니다.
댓글 0
조회수 6,175등록된 댓글이 없습니다.