ATmega128 질문입니다. 꼭 좀 도와주세요ㅜㅜ
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#define F_CPU 16000000UL
#define LIMIT_SW 2000
unsigned char digit[] = {0x77, 0x41, 0x3B, 0x5B, 0x4D, 0x5E, 0x7C, 0x43, 0x7F, 0x4F}; // Common Cathode
void display_7segled(unsigned char led[], unsigned int number);
// ***********************************************************
// Main program
//
int main(void) {
// variable initialize
DDRC = 0xFF; //output
DDRD = 0x00; //input
PORTC = 0xFF; //초기출력 high
PORTD = 0xFF; //내부 풀업 사용
unsigned char sw = 0; //PORTD에서 들어오는 값 저장
unsigned int cntSw = 0; //스위치 눌린 횟수 카운팅
unsigned char fndState = 0; //fnd값 표시 설정
while(1) { // Infinite loop; define here the
sw = PIND&(1<<PD0); //D포트로 들어오는 입력 값 읽어옴
// 0번 핀 상태 읽어옴
switch(sw)
{
case 0;
if(sw == 0)
{
cntSw++;
}else
{
if(fndState == 9)
fndState = 0;
else
fndState++;
}
break;
case 1;
if(sw == 0)
{
cntSw--;
}else
{
if(fndState == 0)
fndState = 9;
else
fndState--;
}
break;
}
display_7segled(digit, (unsigned int)fndState);
cntSw = 0;
void display_7segled(unsigned char led[], unsigned int number)
{
PORTC = ~led[number];
}
k0(0)를 누를 때마다 FND의 숫자가 1씩 증가하고 k1(1)을 누를 때마다 1씩 감소하며 9를 넘어가면 0부터 시작하게끔 코드를 작성하고 싶습니다.
프로그램은 vmlab을 사용하고 있는데 조언해 주신다면 감사하겠습니다.