본문 바로가기
코스웨어/16년 스마트컨트롤러

20160311_업무일지_정우민_펌웨어실습

by 알 수 없는 사용자 2016. 3. 16.
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))


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