본문 바로가기

코딩 놀이

aduino nano MPU, C언어로 이해하기 [26]

아두이노 보드에는 Atmega328 MPU(CPU)가 장착되어 있습니다. C언어로 다루면 내부구조를 상세하게 이해 할 수 있습니다.

32개의 핀으로 되어 있습니다.
PD7, PD6, PD5, PD4, PD3, PD2, PD1, PD0 8개의 비슷한 이름을 갖고 있습니다. 한 가족으로 D port라고 합니다.
PORTD={ PD7, PD6, PD5, PD4, PD3, PD2, PD1, PD0} 집합 형식으로 쓸 수 있습니다.
PORTC={ PC6, PC5, PC4, PC3, PC2, PC1, PC0}
PORTB={  PB7,PB6, PB5, PB4, PB3, PB2, PB1, PB0} 
PORT는 데이타가 동시에 8개가 들어가고 나갈 수 있습니다. 각각의 원소는 1비트 로 0, 1 의  값을 저장할 수   있습니다.
{  bit7,bit6, bit5, bit4, bit3, bit2, bit1, bit0} 순서입니다. 8bit는 1byte입니다.

검은 박스 안dms  PB5입니다.  즉 PORTB에 속하는 PIN입니다.
PORTB={  PB7,PB6, PB5, PB4, PB3, PB2, PB1, PB0} 그리고 아래 노란색은4개는  LED로 맨 좌측은 PB5에 연결되었습니다. 이를 C 언어로 ON, OFF 해봅니다.

C언어 소스
아래와 같이 업로드해봅니다.

#include <avr/io.h>
#include<util/delay.h>
int main (void) {
DDRB |= (1<<PB5);  // 아두이노 pinMode(PB5,1)와 같습니다. 출력으로 설정

  while (1) {
    PORTB = 0b00100000; // 5번 비트를 1로
    _delay_ms (1000);
   
    PORTB = 0b00000000;  // // 5번 비트를 0으로
    _delay_ms (1000);
  }
  return(0);
}

 

'코딩 놀이' 카테고리의 다른 글

tstory 글쓰기 에러 해결  (3) 2024.12.13
xy좌표와 모터 방향 설정 [27]  (0) 2024.12.11
GRBL 속성 모바일 제어 [25]  (0) 2024.12.10
G-code 모바일 제어 XYDrawing[24]  (0) 2024.12.09
SERVO 모터 동작 속성 [22]  (0) 2024.12.06