제목: [Intel] 엣지 AI SW 아카데미
부제목: 8일차
일정: 2023.11.06(월)
수업 내용:
- C언어 프로그래밍
- Micro Processor 원리
- Atmel사의 8bit Micro-controller
- KUT0128 Evaluation Board 기능과 특징
- IO Port 제어
목표:
LED 출력 회로
중요한점 PULL UP 저항!!
예제) LED 순차 점멸하기 [배열이용]
#include <mega128.h>
#include <delay.h> // 딜레이 함수 정의 헤더 파일
const unsigned char led[8] = {0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F};
void main(void) // 배열 이용하여 순차 점멸하기(Flash 형 : 값 고정 이용)
{
int i;
DDRC = 0xFF; // 포트C 출력 설정
while(1){ // 무한 루프
for(i = 0;i < 8;i++){
PORTC = led[i]; // i번째 led값 출력
delay_ms(500); // 500ms 딜레이
}
}
}
실험영상 :
https://youtube.com/shorts/zqkpjBmpoHU?feature=share
예제) LED 하나만 점멸하기
#include <mega128.h>
#include <delay.h> // 딜레이 함수 정의 헤더 파일
void main(void)
{
DDRC = 0xFF; // 포트C 출력 설정
PORTC = 0x55; // 포트C 0x55 출력
while(1){ // 무한 루프
PORTC = PORTC ^ 0x01; // PORTC의 0비트만 반전
delay_ms(500); // 500ms 딜레이
}
}
실험영상 :
https://youtube.com/shorts/goUmucz7jbU?feature=share
예제) 스위치 상태 읽기
#include <mega128.h>
void main(void)
{
unsigned char sw;
DDRC = 0xFF; // 포트C 출력 설정
DDRE = 0x00; // 포트E 입력 설정
PORTC = 0xFF; // LED 모두 off (output=1, off)
while(1){
sw = PINE & 0b00010000; // PE4비트 추출 (PORT E의 4번 입력핀)
if(sw != 0) PORTC = 0xFF; // 입력이 1이면, SW OFF -> LED 모두 OFF
else PORTC = 0x00; // 입력이 0이면, SW ON -> LED 모두 ON
}
}
예제) 스위치 상태에 따라 다르게 출력하기
#include <mega128.h>
void main(void) {
unsigned char key;
DDRC = 0xFF; // 포트 C 출력 설정
DDRE = 0x00; // 포트 E 입력 설정
PORTC = 0xFF; // LED 모두 OFF
while(1){
key = PINE & 0xF0; // 포트 E 4.5.6.7 읽어오기.
switch(key){
case 0b11100000 : // SW1(E.4)이 눌리면 LED 모두 ON
PORTC = 0x00;
break;
casse 0b11010000 : // SW2(E.5)가 눌리면 LED 모두 OFF
PORTC = 0xFF;
break;
case 0b10110000 : // SW3(E.6)이 눌리면 짝수번째 LED ON
PORTC = 0b01010101;
break;
case 0b01110000 : // SW4(E.7)가 눌리면 홀수번째 LED ON
PORTC = 0b10101010;
break;
default:
break;
} // end of switch
} // end of while
} // end of main
설명:
버튼 입력에 따른 LED 점등 표시 각각 틀리게 하는 예제입니다.
switch 문으로 총 4개의 케이스로 나눴으며,
각각의 케이스는 버튼의 입력이 이루어 지는 것을 표현 하였고,
입력에 따른 LED의 점등이 되게끔 만들어진 코드입니다.
'[Intel] 엣지 AI SW 아카데미 > 펌웨어 프로그래밍 75hour' 카테고리의 다른 글
[Intel] 엣지 AI SW 아카데미 12일차 (부산상공회의소 인력개발원) (0) | 2023.11.30 |
---|---|
[Intel] 엣지 AI SW 아카데미 11일차 (부산상공회의소 인력개발원) (1) | 2023.11.30 |
[Intel] 엣지 AI SW 아카데미 10일차 (부산상공회의소 인력개발원) (0) | 2023.11.30 |
[Intel] 엣지 AI SW 아카데미 9일차 (부산상공회의소 인력개발원) (0) | 2023.11.17 |
[Intel] 엣지 AI SW 아카데미 7일차 (부산상공회의소 인력개발원) (1) | 2023.11.17 |