LED가 왔다 갔다 하면서 켜진다.
#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;
DDRA = 0XFF;
while(1)
{
PORTA = ~(0x01); //1111 1110
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
PORTA = ~(0x02); //1111 1101
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
PORTA = ~(0x04); //1111 1011
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
PORTA = ~(0x08); //1111 0111
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
PORTA = ~(0x10); //1110 1111
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
PORTA = ~(0x20); //1101 1111
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
PORTA = ~(0x40); //1011 1111
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
PORTA = ~(0x80); // 0111 1111
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
PORTA = 0xBF; // 1011 1111
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
PORTA = 0xDF; // 1101 1111
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
PORTA = 0xEF; // 1110 1111
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
PORTA = 0xF7; // 1111 0111
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
PORTA = 0xFB; // 1111 1011
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
PORTA = 0xFD; // 1111 1101
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
PORTA = 0xFE; // 1111 1110
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
}
return 0;
}
else 구문 사용
#include <stdio.h>
int main()
{
int iNum;
printf("숫자를 입력하시오\n");
scanf("%d", &iNum);
if(100<iNum)
{
printf("100보다 큰수입니다.\n");
}
else
{
printf("100 보다 작다.\n");
}
return 0;
}
간편하게 바꾼 식
#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;
DDRA = 0XFF;
int iDir;
unsigned int uiPos;
iDir = 1;
uiPos = 0;
while(1)
{
if(1 == iDir)
{
PORTA= ~(1 << uiPos); //순방향
}
else
{
PORTA = ~(0x0080 >> uiPos); // 역방향
}
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
for(uiLoop = 0; uiLoop < 60000; ++uiLoop);
uiPos = uiPos+1;
if(7 < uiPos)
{
iDir = iDir * -1;
uiPos = 0;
}
}
return 0;
}
'코스웨어 > 16년 스마트컨트롤러' 카테고리의 다른 글
20160307_송민규_업무일지_파일입출력 (2) | 2016.03.13 |
---|---|
알파고 대국 매커니즘 (0) | 2016.03.12 |
20160311_최기영_업무일지_펌웨어분석 (0) | 2016.03.11 |
20160311_김가연_업무일지_펌웨어 분석 (2) | 2016.03.11 |
20160311_송찬호_펌웨어 분석 (1) | 2016.03.11 |
20160310_송찬호_펌웨어 분석 (2) | 2016.03.11 |
20160310_박진한_업무일지_데이터시트, 실습 (4) | 2016.03.11 |
20160309_업무일지_송찬호_cpu 모듈 (2) | 2016.03.11 |