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

20160311-허도경-업무일지-펌웨어분석

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

2핀몰랙스를 꼽을땐 선의 색깔을 잘 확인하여 꼽아야 작동에 오류가 생기지 않는다.

------------------------------------------------------------------------------------------------------------------

DK128의 7Segnent 출력


34출력

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

int main(void)

{

DDRA = 0XFF;
PORTA = 0X00;

volatile unsigned int uiCnt;
volatile unsigned int uiLoop;
uiCnt = 0;

while(1)

{

PORTA=((uiCnt/10)<<4)(uiCnt %10);

for(uiLoop = 0; 60000 > uiLoop; ++uiLoop);

++uiCnt

if(uiCnt>99)

{

uiCnt=0;

}

}

return 0;

}


0-99까지 반복

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

int main(void)
{
     volatile unsigned int uiCnt;
     volatile unsigned int uiLoop;
 
     uiCnt = 0;
 
     DDRA = 0XFF;
     PORTA = 0X00;
 
 
     while(1)
     {
          PORTA = ((uiCnt/10)<<4)|(uiCnt%10);
          for(uiLoop = 0; 60000 > uiLoop; ++uiLoop);
          ++uiCnt;
          if(uiCnt>99)
          {
               uiCnt=0;
          }
     } 
 
     return 0;
}

DK128 LED 교차(->,<-)점등


D4~D11까지 순차적으로 점등되었다가 다시 하향시키기

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

int main(void)
{

volatile unsigned int iLoop;

volatile  int iDir;

volatile unsigned int uiPos;

DDRA = 0XFF;

PORTA = 0X00;

iDir = 1;

uiPos = 0;

while(1)

{

if(1==iDir)

{

PORTA = ~(1<<uiPos);

}

else

{

PORTA = ~(0X0080>>uiPos);

}

for(uiLoop = 0; 60000>uiLoop; ++uiLoop);

uiPos = uiPos+1;

if(7<uiPos)

{

iDir=iDir*-1

uiPos = 0;

}

}

return 0;

}

-----------------------------------------------------------------

Interrupt:하던 일을 잠시 중단-우리가 호출하는 함수X

Polling: 문재가생겼는지를 계속 지켜본다.

Interrup Sevice Routine: ISR



728x90