FND TEST
VCC는 빨간선, GND는 검은색 선임을 잘 확인하고 기판에 연결
seven segment에 00 이 출력된다.
3 |
2 |
1 |
0 |
3 |
2 |
1 |
0 |
J 1 9 |
L |
L |
L |
L |
H |
L |
L |
H |
09를 출력하기 위해선 PORTA와 J19를 위와 같이 연결한다.
프로그래밍을 통한 숫자 바꾸기
숫자 34 출력
|
십자리에 3을 출력
34/10=3
3=0011
0011<<4=00110000 // 0011의 비트를 왼쪽으로 4칸 이동 (shift 연산자)
일자리에 4를 출력
34%10
34/10의 몫은 3이고 "나머지는 4"
카운터
#define DDRA (*((volatile unsigned long *)0x21))
#define PORTA (*((volatile unsigned long *)0x22))
#define PINA (*((volatile unsigned long *)0x20))
int main(void) //void 안적으면 컴파일시 warning isn't a prototype
{
volatile unsigned int uiCnt;
volatile unsigned int uiLoop;
DDRA=0xFF; // 모두 출력으로 쓴다.
PORTA=0x00;
uiCnt=0;
while(1)
{
for(uiLoop=0;60000>uiLoop;++uiLoop);
PORTA=((uiCnt/10)<<4)|(uiCnt%10);
++uiCnt;
}
return 0;
} |
위 소스 그대로 프로그래밍시 카운터 앞자리가 사라지는 문제가 생긴다.
#define DDRA (*((volatile unsigned long *)0x21))
#define PORTA (*((volatile unsigned long *)0x22))
#define PINA (*((volatile unsigned long *)0x20))
int main(void) //void 안적으면 컴파일시 warning isn't a prototype
{
volatile unsigned int uiCnt;
volatile unsigned int uiLoop;
DDRA=0xFF; // 모두 출력으로 쓴다.
PORTA=0x00;
uiCnt=0;
while(1)
{
if(uiCnt>99)
{
uiCnt=0;
}
for(uiLoop=0;60000>uiLoop;++uiLoop);
PORTA=((uiCnt/10)<<4)|(uiCnt%10);
++uiCnt;
}
return 0;
} |
앞자리 문제 해결
if, 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;
} |
if()에서 괄호안이 조건
조건이 참일때 if {}의 내용들 수행
거짓일때 else {}의 내용들 수행
LED 교차 점등 TEST
|
19번째 줄 PORTA=~(1<<uiPos);
~( )은 NOT 연산자
1<<uiPos 0000 0001을 왼쪽으로 uiPos(0~7)의 bit만큼 옮김
끝의 LED는 1000 0000이며, NOT 연산자인 ~()가 붙어서 0111 1111이 됨
PORTA
L |
H |
H |
H |
H |
H |
H |
L |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
if(7<uiPos) { iDir=iDir*-1; uiPos=0; }
uiPos가 7을 초과할 시, iDir은 -1이 되고 else{} 수행
LED TEST
'코스웨어 > 16년 스마트컨트롤러' 카테고리의 다른 글
main.c (2) | 2016.03.15 |
---|---|
2016.03.11 이종찬 업무일지 (3) | 2016.03.15 |
20160314_송민규_업무일지_펌웨어분석 (3) | 2016.03.15 |
미 정부 오픈소스 직접개발 &배포 (0) | 2016.03.15 |
20160314_장진웅_업무일지_펌웨어 분석 (4) | 2016.03.15 |
인터럽트 (0) | 2016.03.14 |
인터럽트 (0) | 2016.03.14 |
인터럽트 (1) | 2016.03.14 |