211123_class
Micro Controller
MCU : Micro Controller Unit
MCU = CPU + Memory
Compile - 변역
Fusing - Download
RAM(휘발성) - 변수
ROM(비휘발성) - 코드
Interrupt
GPIOG->ODR = GPIOG->ODR ^ (1 « 10);
원하는 부분 반전
ODR 레지스터 : OUT으로 설정된 PIN의 출력여부 결정하는 레지스터 (0~15)
Output data register
G포트 10번 반전, 15번 출력핀(SW7)으로 인터럽트 생성
Servo Motor
MG90
PWM Period : 20ms (50Hz) 제품 사양
:Prescale: | 720 | 72 |
:Period: | 2000 | 20000 |
Period 가 크면 더 세밀하게 조절 할 수 있다.
Step Motor
period 줄이면 빠르게 돈다.
빠르게 순환해야함(Rising에 따라 회전)
참고
고민할 것
struct vs union
구조체 주소 한번에 잡힘
union 최대 크기만 잡힘
Address offset, segment 이란?
- 실제 계산 능력보다 더 큰 자리수를 연산하기 위해
- 메모리 절대 주소(물리적 주소)를 알 수 있음
(segment : offset) 메모리 절대 주소 = offset Register + segment*bit
용어
C언어 주소 직접 제어
volatile 아니고 읽기만 하면 사라짐, register 값 고정용
BSRR 상위(16개)1로 -> 0(reset), 하위(16개)1-> 1(set)
BSRR : Bit Set/Reset Register
16u (u : unsigned)
byte
1byte = 8bit
8bit => 0000 0000 (4자리 -> 8421 = 0~15, 0~F)
Hex => 0x00
즉, 1byte 를 16진법 2자리로 표현가능
32비트 보드
32bit = 4byte 한번에 처리
4byte Hex => 0x00000000 => 00 00 00 00 표기
Hex 한개에 4bit 씩이니까 0123…핀으로 사용가능
12번 핀이면 0x0000 1000, 13번 핀이면 0x0000 2000
0123 번 핀 다 사용하면 0x0000 000F
32비트 보드가 한 포트당 16개인 이유
해석되어있는 블로그
핀 한개당 2bit를 사용하여 용도를 정할 수 있음
00 : 입력
01 : 출력
11 : 아날로그
10 : 특정 기능
참조) 카르노 맵
Leave a comment