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

20160311_송찬호_펌웨어 분석

by 알 수 없는 사용자 2016. 3. 11.
728x90
반응형

#define DDRA    (*((volatile unsigned char *)0x21))
#define PINA    (*((volatile unsigned char *)0x20))
#define PORTA   (*((volatile unsigned char *)0x22))
int main(void)

{

  volatile unsigned int uiCnt;
  volatile unsigned int uiLoop;

  DDRA=0xFF;//입력을 1로한다.

  PORTA=(0x00);//출력은 0으로한다.
  
  int iDir;//if문에 쓸 변수를 만든다. 
  iDir=1;
  unsigned int uiPos;//PORTA에 쓸 변수를 만든다.
  uiPos=0;
  while(1)//반복 한다.
  {  
      
  
    
    if(1==iDir)//iDir을 1로지정 
    {
      PORTA=~(1<<uiPos);//이진수0000 0001의 반대기호(~)로인해  
                          1111 1110이면 0이 uiPos 만큼 이동한다.
 
   
}
    else //else는 if의 규정에 벗어난 값을 나타낼때의 값이다. 
    {  
      PORTA=~(0x0080>>uiPos);//0x80은 음수이다 (왜 음수 인지는 기억이안남)
                              
그래서 0x0080한다.
                               반대의 이진수는0111 1111이다.
   
    }
    for(uiLoop=0; uiLoop<60000; ++uiLoop);
    for(uiLoop=0; uiLoop<60000; ++uiLoop);
    uiPos=uiPos+1;//위uiPos에 1씩 더하라



if(7 < uiPos)// 만약 uiPos가 1씩 더하는데 7보다 크면
iDir에 -1을
                곱한다는 함수이다.iDir은 -1이 되면
if문에 계
                산이 안되므로
else문으로 이동하는대 이를 반복한
                다.

    {        

      iDir=iDir * -1;
      uiPos=0;    
    }
  }

  return 0;    
}

선연결방법  j15 1부터 8까지  j13의 PORTA의 포트 0포트 부터 포트7까지 차래 대로 연결 한다.

  

 

 

728x90