본문 바로가기

EmbeddedSystem17

[AVR] External Interrupts 2 Interrupt Vector Table메모리에서 ISR의 주소가 적혀있는 데이터셋interrupt Vecto table의 위치(주소)는 정해져 있고, 주소값은 빌드(중 linking) 시 주소값이 해당 주소의 쓰여진다.그 주소값은 인터럽트 핸들러의 함수 위치이다.Interrupt Vector Table in AVRAVR은 인터럽트 핸들러 함수의 주소가 저장되어 있는게 아니라 명령어(Assembly어)가 저장되어 있다.#include ISR(INT7_vect){ PORTC ^= 0X03; // 함수 정의(ISR()) : 이 함수가 ISR임을 compiler가 인지 // 인터텁트 벡터(INT7_vect) 어떤 interrupt handler인지 compiler에게 알려줌}.lss fil.. 2024. 10. 15.
[AVR] External Interrupt AVR External Interrupt에 대한 이해 우리는 무언가 집중하는 작업 중인데 갑자기 전화가 걸려왔다고 상상해 보면, 전화를 받기 위해 하던 작업을 일시 중지한다.마이크로컨트롤러(MCU)의 세계에서 interrupt도 비슷하게 작동한다.인터럽트란?interrupt는 MCU가 하는 일을 멈추고 다른 작업을 즉시 처리하라는 신호입니다. 인터럽트를 처리한 후 MCU는 이전 작업으로 돌아갑니다.인터럽트의 예:전화 알림: 휴대폰이 울려서 업무를 방해하는 것과 마찬가지로 외부 장치가 MCU에 신호를 보내 일시 중지하고 처리할 수 있습니다.타이머 인터럽트: MCU는 매 밀리초와 같이 일정한 간격으로 작업을 수행해야 할 수 있습니다. 타이머 인터럽트를 사용하면 작업이 제때 처리됩니다.마우스 또는 키보드 입력.. 2024. 10. 14.
[Arduino] Stepper motor - 28BYJ-48 사용한 HW아두이노 우노 R3 모터 드라이버(motor driver) : ULN2003 스텝 모터(Stepper motor) : 28BYJ-48 USB cable B (AM-BM) 스텝 모터(28BJY-48) 1. unipolar 5 wire 방식 2. Half step sequence 전력이 더 많이 소모 되지만, 더 작은 분해능으로 부드럽게 작동한다. 3. 스텝 각도 (Stride Angle): 5.625도/64 (1회전 당 64스텝, 기어비로 인해 4096스텝 필요) // 핀 번호 정의 const int IN1 = 8; const int IN2 = 9; const int IN3 = 10; const int IN4 = 11; // 스텝 시퀀스를 배열로 정의 (8단계 시퀀스) const int step.. 2024. 10. 9.
[AVR] atmega1281 - switch로 LED 점멸 제어 #define LED1 PC0#define LED2 PC1#define LED3 PC2#define LED4 PC3#define SW2 PE7#include uint8_t switch_hit();int main(void){ static unsigned char cnt; DDRC = _BV(LED1) | _BV(LED2) | _BV(LED3) | _BV(LED4); PORTE = _BV(SW2); while(1) { if(switch_hit()) { cnt++; if(cnt % 2) // turn on LED1 and LED2 and turn off LED3 and LED4 else // turn on LED3 and LED4 and turn off LED1 and LED2 .. 2024. 10. 2.
[Arduino] LCD Display(1602A - parallel communication) https://docs.arduino.cc/learn/electronics/lcd-displays/ https://docs.arduino.cc/learn/electronics/lcd-displays/ docs.arduino.cc  간단히 원하는 문자열과 현재 시스템의 시간 등의 정보를 시각화하기 위해 LCD 디스플레이를 사용하고자 한다.  I2C(Inter-Integrated Circuit) 인터페이스- 새로운 쉴드가 필요함    병렬 인터페이스:마이크로컨트롤러가 여러 핀을 동시에 제어하여 LCD 디스플레이를 조작 PIN map- RS (Register Select) 핀: LCD의 메모리에서 어떤 레지스터를 사용할지를 선택-- 명령 레지스터에 접근하여 LCD의 동작을 제어하는 명령(0)-- 데이터 레지스.. 2024. 10. 1.
[Arduino] tutorial: IDE 다운로드 및 실행, 예제 https://www.arduino.cc/en/software SoftwareOpen-source electronic prototyping platform enabling users to create interactive electronic objects.www.arduino.cc  기부,, 해도 되는데 나중에 성공해서 할게요일단 just download! linux 에선 실행하면 다음과 같다.(저는 최근에 ESP32 사용해서 저렇게 떴어요)  설정(preference)로 가서- 파일 저장할 위치 선택- 배경화면 바꿔도 되고~  보드 연결 후  예시 파일   체크는 "컴파일러" 동작  화살표는 업로드- 펌웨어 주입 2024. 10. 1.