20160318_김가연_업무일지_LCD출력
오늘은 많은 것을 하였습니다.
저번시간에 LCD출력에 이어 그것을 응용한 것을 해보았습니다.
Stop & Start & Reset & 1분 증가
이 네가지 응용을 해보았습니다.
일단 Stop & Start 소스를 보면
vector_1 함수에
void __vector_1(void) //ㅇㅌㄹㅌ
{
volatile unsigned int uiCnt;
if(STOP==uiSstate)
{
TCCR0B=(0<<FOC0A)|(0<<FOC0B)|(0<<WGM02)|(0<<CS02)|(1<<CS01)|(1<<CS00);
uiSstate=START;
}
else
{
TCCR0B=(0<<FOC0A)|(0<<FOC0B)|(0<<WGM02)|(0<<CS02)|(0<<CS01)|(0<<CS00);
uiSstate=STOP;
}
for(uiCnt = 0; 30000>uiCnt ; ++uiCnt);
}
이렇게 소스를 짜고 START 와 STOP은 당연히 헤더파일에 추가해야 합니다.
다음은 Reset 입니다.
vector_2 함수 내용을 다시 재정비 합니다.
void __vector_2(void)
{
volatile unsigned int uiCnt;
TCCR0B=(0<<FOC0A)|(0<<FOC0B)|(0<<WGM02)|(0<<CS02)|(0<<CS01)|(0<<CS00);
uiSec=0;
uiSstate=STOP;
for(uiCnt = 0; 30000>uiCnt ; ++uiCnt);
}
다음은 1분증가 입니다.
vector_3을 추가하고 헤더파일에도 올립니다.
void __vector_3(void)
{
volatile unsigned int uiCnt;
uiSec=uiSec+60;// 1분증가
for(uiCnt = 0; 30000>uiCnt ; ++uiCnt);
}
60s를 더하는 방식으로 1분을 더합니다. 저 수를 바구면 그에따라 증가하는 값도 바뀌겠죠?
작동영상입니다.