코스웨어/16년 스마트컨트롤러
20160311_업무일지_정우민_펌웨어실습
알 수 없는 사용자
2016. 3. 16. 13:28
728x90
반응형
펌웨어실습
1. LED 이동
#define DDRA (*((volatile unsigned char *)0x21))
#define PINA (*((volatile unsigned char *)0x20))
#define PORTA (*((volatile unsigned char *)0x22))
int main(void)
{
volatile unsigned int uiLoop;
unsigned int uiPos;
int iDir;
DDRA = 0xff;
PORTA = 0x00;
iDir = 1;
uiPos = 0;
while(1)
{
if(1 == iDir)
{
PORTA=~(1<<uiPos); //순방향
}
else
{
PORTA=~(0x0080>>uiPos); //역방향
}
for(uiLoop = 0 ; uiLoop<60000 ; uiLoop++);
uiPos = uiPos+1;
if(7<uiPos)
{
iDir = iDir * -1;
uiPos = 0;
}
}
return 0;
}
2. FND(0~99 카운트)
#define DDRA (*((volatile unsigned char *)0x21))
#define PINA (*((volatile unsigned char *)0x20))
#define PORTA (*((volatile unsigned char *)0x22))
#define PINA (*((volatile unsigned char *)0x20))
#define PORTA (*((volatile unsigned char *)0x22))
int main(void)
{
volatile unsigned long uiLoop;
unsigned int uiCnt;
DDRA=0xff;
PORTA=0x00;
uiCnt=0;
uiLoop=0;
while(1)
{
PORTA=((uiCnt/10)<<4)|(uiCnt%10);
for(uiLoop=0 ; uiLoop<100000 ; uiLoop++); //시간지연
uiCnt++;
if(uiCnt>99)
{
uiCnt=0;
}
}
return 0;
}
728x90