AVR 실습.

Slides:



Advertisements
Similar presentations
컴퓨터 계측 및 실습 개 요 영남대학교 기계공학부. PC 의 기본장치 PC 의 작동구조.
Advertisements

KT-M128 Peripheral Device
마이크로콘트롤러 설계 – 4 Timer 실습 2 – T1, T3
KT-M128 Peripheral Device
마이크로프로세서설계 - 3 ATmega128 마이크로컨트롤러의 특징 LED 실습 1
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
ROBOTICS LAB. DSP TMS320F2812 ROBOTICS LAB.
4. ADC 충북인력개발원 전자과 공학박사 강원찬.
임베디드 프로그래밍 Lecture #
One Step Closer - AVR ATMEGA128 -
ATmega128의 A/D 컨버터 제어 Robotics_LAB 발표자 : 유 홍 선.
PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소.
AVR - Chapter 11 황 지 연.
다섯째날 : 외부 인터럽트 - 당근이의 AVR 갖고 놀기 - 당근닷컴
리니어 스케일 김한수.
PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소.
ATMega128 I/O Ports KyungHee Univ..
13. 인터럽트 제어 - 스마트 폰으로 제어하는 아두이노 -.
2013 스마트 컨트롤러 중간 프로젝트 김성엽 진종영 조유진
아두이노 프로그래밍 1일차 – Part2 아두이노 사양 강사: 김영준 목원대학교 겸임교수.
컬러 LED바 이해하기 목차 재료준비 및 브레드 보드 배선 구성하기 컬러 LED바 이해 및 프로그램 실습 응용 작품 만들기.
UNIT 15 Timer & Watch Dog 로봇 SW 교육원 조용수.
마이크로프로세서 응용 및 실습 (AVR Microprocessor) 정 원 근.
RnA DISPLAY 구동 Clcd 구동 Made by Bonobonobono.
Analog Signal 의 PWM 출력 By hyaoo.
 midi LOGGER GL220   신제품 소개 Dec, 2011.
Introduce to ATmega128 & Codevision
컴퓨터 계측 및 제어 영남대학교 기계공학부.
Arduino uno의 Hardware 구성부품의 종류와 그 용도.
AVR - Chapter 15 황 지 연.
UNIT 18 AD Converter Test 로봇 SW 교육원 조용수.
조도 센서 김한수.
AVR - Chapter 2 황 지 연.
Presentation 정보통신과 6조.
DK-128 ADC 실습 아이티즌 기술연구소
DK-128 ADC 실습 아이티즌 기술연구소
임베디드 실습 # LED, 7’Segment 제어
마이크로 시스템 lecture8. Interrupt Greet class 선 덕 한.
ATmega128의 구조 및 TOOL의 이해 Robotics_LAB 발표자 : 유 홍 선.
AVR - Chapter 12 황 지 연.
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
타이머카운터 사용법 휴먼네트웍스 기술연구소
다섯째날 : 외부 인터럽트 - 당근이의 AVR 갖고 놀기 - 당근닷컴
PSW : PROGRAM STATUS WORD
ATmega128 FND 실습 휴먼네트웍스 기술연구소
ATmega128 기초와 응용 A/D 변환기.
DK-128 FND 실습 아이티즌 기술연구소 김태성 연구원
Microprocessor I/O Port & CLCD Noh Jin-Seok.
과제#4 내용 정성훈.
ATmega128 기초와 응용 타이머/카운터.
2011년2학기 임베디드시스템 응용(# ) #5. Timer_3
5. 아두이노로 LED와 스위치 제어하기 - 스마트 폰으로 제어하는 아두이노 -.
8051 IO-PORT 정보통신•컴퓨터 공학부 송명규
DK-128 FND 실습 아이티즌 기술연구소
연산자 (Operator).
Moving Walk 17조 장철훈 장황재 이연호.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
마이크로소프트 박종호.
프로젝트 진행내용.
DK-128 개발환경 설정 아이티즌 기술연구소
DK-128 직렬통신 실습 아이티즌 기술연구소
논리회로 설계 및 실험 4주차.
AdcRead API 함수 분석 마이크로프로세서.
PMC-6208 Easy Manual 작성일자 : 2015년 02월 17일 INTER-M C/S팀 김성배
아두이노 프로그래밍 Lecture #
Lecture 7 7-Segment LED controller using u-controller
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
Presentation transcript:

AVR 실습

ESL-ATmega16 ports ATmega16 VCC BIT0 BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 GND PORTB PORTA PORTD PORTC

PORT 제어 100ms 마다 PORTC의 LED가 차례로 점멸되는 프로그램을 작성하시오.

Char led = 0x01 PORTC=0x0F; DDRC=0xFF; While(1){ // Place your code here PORTC = ~led; delay_ms(100); led<<=1; if(led == 0 ) led = 0x01; }

PORT 제어 2 PORTA로 부터 값을 읽어와서. PORTC로 출력하는 프로그램을 작성하시오

PORTA=0x00; DDRA=0x00; PORTC=0x0F; DDRC=0xFF; While(1){ PORTC = PINA; }

외부 인터럽트 외부 INT0에 달린 스위치를 한번 누를 때 마다 PORTC의 값을 토글 시키는 프로그램 (PORTC 초기값 0xf0)

Interrupt setting // External Interrupt(s) initialization // INT0: On // INT0 Mode: Falling Edge // INT1: Off // INT2: Off GICR|=0x40; MCUCR=0x02; MCUCSR=0x00; GIFR=0x40;

Interrupt handler interrupt [EXT_INT0] void ext_int0_isr(void) { // Place your code here PORTC ^= 0xff; }

Lab 1 스위치를 누르고 있는 동안에 500ms 마다 토글되는 프로그램을 작성하시오.

외부 인터럽트 셋팅 interrupt [EXT_INT0] void ext_int0_isr(void) { // Place your code here #asm("cli"); PORTC ^= 0xff; delay_ms(500); #asm("sei") }

Lab2 INT0를 누르면 오른쪽으로 쉬프트 되고, INT1버튼을 누르면 왼쪽으로 쉬프트 되는 프로그램을 작성하시오.

interrupt [EXT_INT0] void ext_int0_isr(void) { // Place your code here led >>=1; if(led == 0) led = 0x01; PORTC = ~led; } // External Interrupt 1 service routine interrupt [EXT_INT1] void ext_int1_isr(void) led <<=1; if(led == 0) led = 0x80;

Timer 실습 Timer1을 이용하여 0.1초마다. PORTC의 LED가 순차적으로 점멸하도록 프로그램 하시오.

Timer1 Setting // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 15.625 kHz // Mode: CTC top=OCR1A // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: On // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x0D; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x06; OCR1AL=0x1A; OCR1BH=0x00; OCR1BL=0x00;

char led = 0x00; // Timer 1 output compare A interrupt service routine interrupt [TIM1_COMPA] void timer1_compa_isr(void) { // Place your code here led <<=1; if(led == 0) led = 0x01; PORTC = ~led; }

ADC ADC0 핀으로 들어오는 값을 ADC를 통하여 8비트 디지털 값으로 변환하여 그 값을 PORTC로 출력하는 프로그램을 작성하라

// ADC initialization // ADC Clock frequency: 125.000 kHz // ADC Voltage Reference: AVCC pin // ADC Auto Trigger Source: Free Running // Only the 8 most significant bits of // the AD conversion result are used ADMUX=ADC_VREF_TYPE; ADCSRA=0xAF; SFIOR&=0x1F; ADCSRA |= 0x40; //start conversion

interrupt [ADC_INT] void adc_isr(void) { unsigned char adc_data; // Read the 8 most significant bits // of the AD conversion result adc_data=ADCH; // Place your code here PORTC = ~adc_data; }