본문 바로가기

Cadence Certificate Specialist/AVR

각각의 FND 숫자 표시

각각의 FND 숫자 표시













#define F_CPU 16000000UL  // 16Mhz에서 동작하는 ATmega128A를 실제시간으로 동작을 맞추기 위해 사용

#include <avr/io.h>

#include <util/delay.h>

#define FND (*(volatile unsigned char*)0x8000)



void io_init(void) //입력, 출력 초기화시키는 함수

{

MCUCR|=(1<<SRE)|(1<<SRW10);

XMCRA|=(1<<SRL2)|(0<<SRL1)|(0<<SRL0)|

(1<<SRW01)|(1<<SRW00)|(1<<SRW11);

XMCRB|0x00;

}





int main(void)     // 넘버안에 6자리를 정하고 FND에 표현하기

{

int number[6]= {3,7,5,2,9,5};

io_init();

while (1)

{

FND=(number[0]<<3)+0;

_delay_ms(1);

FND=(number[1]<<3)+1;

_delay_ms(1);

FND=(number[2]<<3)+2;

_delay_ms(1);

FND=(number[3]<<3)+3;

_delay_ms(1);

FND=(number[4]<<3)+4;

_delay_ms(1);

FND=(number[5]<<3)+5;

_delay_ms(1);

}

return ;

}