본문 바로가기

IoT10

ATmega328 프로그래밍 LCD 출력 성공! 기초지식 1 가변저항 2. LCD 회로 보면서 연결 LCD ASCII 코드 정의문자를 기본으로 Vss 그라운드 Vdd 5V 동작 전원 Vo 가변저항을 통해 0~5V RS 핀 LCD 제어, 레지스터 선택 E 핀으로 하강 엣지에서 LCD 드라이버 처리 -최대 80문자 저장이 가능하며 그 중 일부인 32문자만 표시됨 -1행으로 표시하는 경우(N=0) 0x00 ~ 0x4F로 연속적으로 정해짐 -2행으로 표시하는 경우(N=1) 0x00 ~ 0x27, 0x40 ~ 0x67로 정해짐 2020. 6. 25.
ATmega328 조도센서, 온도센서, 초음파센서 조도센서 void ADC_INIT(unsigned char channel) { ADMUX |= 0x40; // 01000000 AVCC 를 기준 전압으로 ADCSRA |= 0x07; // 00000111 분주비 (8비트) ADCSRA |= (1 2020. 6. 11.
오버플로 / 비교일치 인터럽트 8비트 타이머/카운터 2개 |0 ~ 255 16비트 타이머/카운터 1개 |0 ~ 65535 분주비 = 클록을 나누는 값 - 오버플로 인터럽트 : TCNTn 레지스터에 오버플로가 발생 - 비교일치 인터럽트 : TCNTn 레지스터의 값이 미리 설정된 값과 동일 오버플로 인터럽트 #define F_CPU 16000000L #include #include #include #include #include "UART.h" int count = 0; int state = 0; ISR(TIMER0_OVF_vect) //오버플로 인터럽트 벡터 { count++; if(count == 32){ //오버플로 32 회 발생 count = 0; state = !state; if(state) PORTB = 0xFF; else P.. 2020. 6. 9.
ATmega328 가변저항 / 난수 생성 가변 저항 A0 ~ A5 VCC / A0 / GND 10K 저항 #define F_CPU 16000000L #include #include #include #include #include "UART.h" void ADC_INIT(unsigned char channel) { ADMUX |= 0x40 ; 0100 0000 // AVCC를 기준전압으로 선택 ADCSRA |= 0x07 ; 0111 // 분주비 설정 ADCSRA |= (1 2020. 6. 8.
인터럽트 인터럽트 처리 인터럽트 발생 -> 벡터 테이블의 해당 프로그램 주소로 이동 -> 프로그램 주소에 기록된 ISR 주소 찾기 -> ISR로 이동 및 처리 -> 인터럽트 발생이전으로 되돌아가 실행 ISR 호출 조건 * '전역적 인터럽트 활성화' 비트가 세트 * 인터럽트 별로 '개별 인터럽트 활성화' 비트 세트 * 인터럽트에 해당하는 이벤트 발생 전역 인터럽트 활성화 sei() 전역 인터럽트 비활성화 cli() 주의 중첩 인터럽트 금지 : ISR 내 인터럽트 발생 허용 x 최적화 방지 : 최적화 과정 생략하도록 volatile 키워드 사용 volatile int .. 단일 동작 보장 : 실행중인터럽트 발생 일시 금지 : ATOMIC_BLOCK 외부 인터럽트 –INT0 : PD2 또는 디지털 2번 핀 –INT1 .. 2020. 5. 30.
LED & button 1. LED 출력 #define F_CPU 16000000L #include #include int main(void) { DDRB = 0x0F; //0000 1111 출력할 곳 초기화 DDRD = 0xF0; //1111 0000 /* Replace with your application code */ while (1) { char p1; char p2; for(int i = 0; i =4){ p1 = 0x01 > (i-4); }else{ p1 = 0x08 >> i; p2 = 0x10 D7 void INIT_PORT(void) { DDRB = 0x00; // 버튼 입력 PORTB = 0x0F; // (D11~ D8) 입력전 1인상태로 설정 0000 1111 DDRD = 0xF0; // LED 출력 초기화.. 2020. 5. 24.
시리얼 통신 / UART 통신 1. 터미널 애드온 설치 2. 터미널 실행 순서 빌드 - AVR 업로드 - 터미널 실행( 커넥트 ) UART c와 h 파일 라이브러리에 배치 버튼 실행 2020. 5. 21.
UART 라이브러리 만들기 add ㅡ existing items 데이터 주고 받는 거 2020. 5. 8.
아두이노와 아트멜 스튜디오 업로드 여기에 쓰이는 소프트웨어가 아두이노와 아트멜 스튜디오 이다. 아두이노 https://www.arduino.cc/en/Main/Software 비전공자를 위한 간단한 인터페이스를 이용하고 간편하게 사용할 수 있다. 아트멜 스튜디오 http://www.microchip.com/avr-support/atmel-studio-7 •ATmega328 제작사인 아트멜에서 제공하는 IDE •Microsoft의 Visual Studio 인터페이스 사용 그래서 C/C++ 를 이용해서 전공자 들에게 익숙하다. 1. 먼저 아두이노 Arduino 1) 먼저 확인을 눌러 디버깅 2) 업로드 누르면 끝,, 2. 아트멜 스튜디오 아두이노 우노와 USB 연결하면 장치관리자에서 포트번호가 뜬다 아트멜 스튜디오 tools - extern.. 2020. 4. 27.
아트멜 스튜디오와 아두이노로 배우는 ATmega328 프로그래밍 아트멜 스튜디오와 아두이노로 배우는 ATmega328 프로그래밍 아트멜 스튜디오와 아두이노로 배우는 ATmega328 프로그래밍 아두이노 우노의 심장, ATmega328을 뛰게 하는 두 가지 방법! 베스트셀러 《아두이노 상상을 스케치하다》의 저자가 공개하는 마이크로컨트롤러의 새로운 학습법! 출판사 제이펍 저자명 허경용 출판일 2015년 7월.. jpub.tistory.com 이 책을 토대로 아두이노를 배우게 되었다 여기서 나오는 아트멜 스튜디오, 아두이노, 아트메가328에 대해 알아보자 아두이노란 아두이노 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 아두이노(이탈리아어: Arduino 아르두이노[*])는 오픈 소스를 기반으로 한 단일 보드 마이크로컨트롤러로 완성된 보드(상품)와 .. 2020. 4. 26.