본문 바로가기
[Intel] 엣지 AI SW 아카데미/펌웨어 프로그래밍 75hour

[Intel] 엣지 AI SW 아카데미 7일차 (부산상공회의소 인력개발원)

by 0x01 2023. 11. 17.

제목: [Intel] 엣지 AI SW 아카데미

부제목: 7일차

일정: 2023.11.03(금)

수업 내용: 

 - C언어 프로그래밍

 - Micro Processor 원리 

 - Atmel사의 8bit Micro-controller 

 - KUT0128 Evaluation Board 기능과 특징

 

목표: 

 ATmega128 I/O(input/output) 포트 제어

 I/O PORT의 특징
  • 8비트 양방향 병렬 I/O포트 6개(A,B,C,D,E,F)와 5비트 양방향 병렬 I/O포트 (G)로
 53개의 I/O포트
  • 각 I/O핀은 보호용 다이오드와 20KΩ~100KΩ의 내부 풀업 저항을 가지며
  • LED를 직접 구동할 수 있는 40mA 출력

 

 

※ 각 레지스터에서 x는 각 포트 A,B,C,D,E,F,G 를 나타낸다.

- PORTA는 PORTA7~PORTA0번까지 8개의 비트로 제어가 되며

- PORTG는 PORTG4~PORTG0번까지 5개의 비트로 제어된다.

 

 LED ON/OFF 점멸 하기

#include <mega128.h> // LED 점멸하기(라이브러리 딜레이 함수 이용)
#include <delay.h> // delay_ms(), delay_us() 정의 헤더파일

void main(void)
{
    DDRC = 0xFF; // 포트C 출력 설정
    while(1){ // 무한 루프
        PORTC = 0x55; // 0101 0101 출력
        delay_ms(500); // 500ms 대기
        PORTC = 0xAA; // 1010 1010 출력
        delay_ms(500); // 500ms 대기
    }
}

 

 

 LED 쉬프트 하면서 순차 점멸하기

#include <mega128.h>
#include <delay.h> // 딜레이 함수 정의 헤더 파일

void main(void) // LED 순차 점멸하기(쉬프트 연산자)
{
    int i;
    unsigned char led;
    
    DDRC = 0xFF; // 포트C 출력 설정
    
    while(1){ // 무한 루프
        led = 0xFE; // led 초기값
        for(i = 0;i < 8;i++){ // 8회 실행
            PORTC = led; // led 값 출력
            delay_ms(500); // 500ms 딜레이
            led = led << 1; // 1비트 왼쪽 쉬프트
        }
    }
}