AVR-GCC SRAM 에서의변수및상수특별히속성을정하지않고변수를정의하면 SRAM 영역에저장된다. 이것들은외부메모리에저장되는경우에비하여빠르게엑세스할수있다. 축약표현은 <stdio.h> 에정의되어있다. 그러나, <io.h> 를인클루드하면내부적으로 <stdio.h> 파일을자

Similar documents
<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

슬라이드 1

슬라이드 1

K&R2 Reference Manual 번역본

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

untitled

T100MD+


Chapter #01 Subject

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

Microsoft PowerPoint - chap10-함수의활용.pptx

슬라이드 1

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

금오공대 컴퓨터공학전공 강의자료

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

PowerPoint 프레젠테이션

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A632B0AD20BAAFBCF6BFCD20C0DAB7E12C20C0FCC3B3B8AEBFCD20C0D4C3E2B7C2>

인터럽트 * 인터럽트처리메커니즘 ATmega128 인터럽트 2

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

<4D F736F F F696E74202D2037C0E55FC0CEC5CDB7B4C6AEC0C720B5BFC0DB2E707074>

歯7장.PDF

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

chap7.PDF

문서의 제목 나눔명조R, 40pt

PowerPoint 프레젠테이션

Microsoft PowerPoint - AVR 시리얼 통신.ppt [호환 모드]

ATmega128 교재 - 8장 EEPROM.hwp

PowerPoint 프레젠테이션

Section 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역

6주차.key

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

2. Deferred Interrupt Processing A. Binary Semaphores를이용한동기 (Synchronization) i. Binary Semaphores는 Interrupt가발생하였을때특정한 를 Unblock 하는데사용할수있다. 이러한기능은 In

UART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ UL UART PORT1 void UAR

C++-¿Ïº®Çؼ³10Àå

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

untitled

AVR Atmega128

PA for SWE2007

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

ATmega128

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

ABC 2장

PowerPoint 프레젠테이션

Microsoft PowerPoint - Chapter_04.pptx

Microsoft PowerPoint - ch07 - 포인터 pm0415

PowerPoint 프레젠테이션

13 주차문자열의표현과입출력

C# Programming Guide - Types

untitled

C 프로그래밊 개요

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

슬라이드 1

API 매뉴얼

정보보안 개론과 실습:네트워크

Microsoft PowerPoint - polling.pptx

Microsoft PowerPoint - chap11-포인터의활용.pptx

[8051] 강의자료.PDF

/chroot/lib/ /chroot/etc/

Microsoft PowerPoint - chap12-고급기능.pptx

chap 5: Trees

OCW_C언어 기초

1장. 유닉스 시스템 프로그래밍 개요

KEY 디바이스 드라이버

Microsoft PowerPoint APUE(Intro).ppt

CAN 통신

PA for SWE2007

컴파일러

슬라이드 1

Microsoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

PowerPoint 프레젠테이션

ABC 11장

chap x: G입력

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

CANTUS Evaluation Board Ap. Note

슬라이드 1

Microsoft PowerPoint - 제9강 문자열

Microsoft PowerPoint os2.ppt [호환 모드]

The C++ Programming Language 4 장타입과선언 4.11 연습문제 Hello,world! 프로그램을실행시킨다. 프로그램이컴파일되지않으면 B3.1 을참고하자. #include<iostream> //#include 문, 헤더파일, 전처리지시

4. 1 포인터와 1 차원배열 4. 2 포인터와 2 차원배열 4. 3 포인터배열 4. 4 포인터와문자그리고포인터와문자열

Microsoft Word - PEB08_USER_GUIDE.doc

PowerPoint Template

Microsoft PowerPoint - 제5장 인터럽트 (HBE-MCU-Multi AVR).ppt [호환 모드]

Microsoft Word - FunctionCall

한글사용설명서

Transcription:

AVR-GCC SRAM 에서의변수및상수특별히속성을정하지않고변수를정의하면 SRAM 영역에저장된다. 이것들은외부메모리에저장되는경우에비하여빠르게엑세스할수있다. 축약표현은 <stdio.h> 에정의되어있다. 그러나, <io.h> 를인클루드하면내부적으로 <stdio.h> 파일을자동인클루드하도록연결되어있다. - AVR-GCC 에서데이터의형및이름축약하여표현방법 일반적인데이터형의표현 AVR-GCC 의데이터형축약표현 바이트수 표현범위 signed char int8_t 1-128 ~ +127 unsigned char uint8_t 1 0 ~ 255 signed int int16_t 2-32768 ~ +32767 unsigned int uint16_t 2 0 ~ 65535 signed long int32_t 4-2147483648 ~ +21474783647 unsigned long uint32_t 4 0 ~ 4294967295 signed long long int64_t 8-9.22 10^18 ~ +9.22 10^18 unsigned long long uint64_t 8 0 ~ 1.844 10^19 intptr_t 2-32768 ~ +32767 uintptr_t 2 0 ~ 65535 float 4 ±8.4 10^-37 ~ ±3.4 10^38 double 8 ±2.2 10^-308 ~ ±1.8 10^308 프로그램메모리에서의상수 AVR 의프로그램메모리인플래시메모리에상수를정의가능하며읽는것만가능하다. SRAM 에저장할수도있지만플래시메모리는 SRAM 에비하여용량이훨씬크므로유용하게사용할수있다. 아래의상수데이터표현을사용하려면 <pgmspace.h> 를인클루드하여야한다. - AVR-GCC 에서프로그램메모리상수를정의하는방법 AVR-GCC 에서프로그램메모리데이터의형상수 바이트수 표현범위 signed char prog_char, prog_int8_t 1-128 ~ +127 unsigned char prog_uchar, prog_uint8_t 1 0 ~ 255 signed int prog_int16_t 2-32768 ~ +32767 unsigned int prog_uint16_t 2 0 ~ 65535 signed long prog_int32_t 4-2147483648 ~ +21474783647 unsigned long prog_uint32_t 4 0 ~ 4294967295 signed long long prog_int64_t 8-9.22 10^18 ~ +9.22 10^18 unsigned long long prog_uint64_t 8 0 ~ 1.844 10^19 - AVR-GCC 에서프로그램메모리상수를읽는방법 프로그램메모리상수의형 16 비트어드레스를사용하여읽기 32 비트어드레스를사용하여읽기 prog_char prog_uchar prog_int8_t prog_uint8_t prog_int16_t prog_uint16_t prog_int32_t prog_uint32_t pgm_read_byte(address_short) pgm_read_byte_near(address_long) pgm_read_word(address_short) pgm_read_word_near(address_long) pgm_read_dword(address_short) pgm_read_dword_near(address_long) pgm_read_byte_far(address_long) pgm_read_word_far(address_long) pgm_read_dword_far(address_long) - 바이트상수의저장과읽기

prog_int8_t aaa = 1; int8_t value; value = pgm_read_byte(&aaa); - 바이트상수배열의저장과읽기 prog_int8_t array[] = 0, 1, 2, 3, 4; int8_t value; value = pgm_read_byte(&array[3]); - 문자열의저장과읽기 int8_t *str1 = PSTR( ABC DEF ); int8_t letter; letter = pgm_read_byte(str1 + 2); 다른방법으로는 int8_t str2[] _attribute_ ((progmem)) = ABC DEF ; int8_t letter; letter = pgm_read_byte(&str2[2]); EEPROM 의사용 AVR 에서 EEPROM 을엑세스하는것은 I/O 레지스터를사용하여야하므로 AVR-GCC 에서는 EEPROM 을엑세스하기위한특별한함수들을제공하는데, <eeprom.h> 에정의되어있다. 데이터의종류 EEPROM 읽기 EEPROM 쓰기 8 비트바이트 eeprom_read_byte() _EEGET() eeprom_write_byte() _EEPUT() 16 비트워드 eeprom_read_word() eeprom_write_word() 바이트블록 eeprom_read_block() eeprom_write_block() - EEPROM 의상태조사 eeprom_is_ready(); 리턴값이 1 이면 ready, 0 이면 busy 상태를나타낸다. - 8 비트바이트또는 16 비트워드의읽기, 쓰기 void eeprom_write_byte(uint8_t *addr, uint8_t value); void eeprom_write_word(uint16_t *addr, uint16_t value); uint8_t eeprom_read_byte(const uint8_t *addr); uint16_t eeprom_read_word(const uint16_t *addr); - SRAM 의 n 바이트의 *buf 버퍼값과 EEPROM 의지정된어드레스값과의읽고쓰기 void eeprom_write_block(const void *addr, void *buf, size_t n); void eeprom_read_block(void *buf, const void *addr, size_t n); - IAR C 컴파일러의호환 _EEGET(val, addr); _EEPUT(addr, val); I/O 레지스터및병렬 I/O 포트의액세스

AVR-GCC 에서는 I/O 레지스터또는확장 I/O 레지스터를액세스하기위한여러가지함수나매크로를지원하며, 헤더파일 <sfr_defs,h> 에정의되어있다. <io.h> 를인클루드하면자동으로인클루드가된다. - 8 비트 I/O 레지스터또는확장 I/O 레지스터의액세스 unsigned char a; PORTB = 0x80; a = PINB; - 특정비트의조사 #define bit_is_set(sfr, bit) #define bit_is_clear(sfr, bit) - 레지스터의특정비트의값을기다리는매크로 #define loop_until_bit_is_set(sfr, bit) #define loop_until_bit_is_clear(sfr, bit) 외부 I/O 나메모리의절대번지액세스 ex) #define keyword (*(volatile unsigned char *) 0x2000) 인터럽트처리 - 인터럽트서비스루틴함수 ISR(vector) - 모든사용하지않는인터럽트에대한인터럽트처리함수 ISR(_vector_default) - 다른인터럽트서비스루틴함수 SIGNAL(signame) 이방식은나중에폐지될예정이므로사용하지않는것이좋다. 예전에사용하던 INTERRUPT(signame) 형식은폐지되어서현재는사용하지않는다.

- 인터럽트처리함수를정의하는 vector 및 signame 번호 vector ( 새로운방식 ) signame ( 옛방식 ) 인터럽트발생조건 1 INT0_vect SIG_INTERRUPT0 External Interrupt Request 0 2 INT1_vect SIG_INTERRUPT1 External Interrupt Request 1 3 INT2_vect SIG_INTERRUPT2 External Interrupt Request 2 4 INT3_vect SIG_INTERRUPT3 External Interrupt Request 3 5 INT4_vect SIG_INTERRUPT4 External Interrupt Request 4 6 INT5_vect SIG_INTERRUPT5 External Interrupt Request 5 7 INT6_vect SIG_INTERRUPT6 External Interrupt Request 6 8 INT7_vect SIG_INTERRUPT7 External Interrupt Request 7 9 TIMER2_COMP_vect SIG_OUTPUT_COMPARE2 Timer/Counter2 Compare Match 10 TIMER2_OVF_vect SIG_OVERFLOW2 Timer/Counter2 Overflow 11 TIMER1_CAPT_vect SIG_INPUT_CAPTURE1 Timer/Counter1 Capture Event 12 TIMER1_COMPA_vect SIG_OUTPUT_COMPARE1A Timer/Counter1 Compare Match A 13 TIMER1_COMPB_vect SIG_OUTPUT_COMPARE1B Timer/Counter1 Compare Match B 14 TIMER1_OVF_vect SIG_OVERFLOW1 Timer/Counter1 Overflow 15 TIMER0_COMP_vect SIG_OUTPUT_COMPARE0 Timer/Counter0 Compare Match 16 TIMER0_OVF_vect SIG_OVERFLOW0 Timer/Counter0 Overflow 17 SPI_STC_vect SIG_SPI SPI Serial Transfer Complete 18 USART0_RX_vect SIG_UART0_RECV USART0 Rx Complete 19 USART0_UDRE_vect SIG_UART0_DATA USART0 Data Register Empty 20 USART0_TX_vect SIG_UART0_TRANS USART0 Tx Complete 21 ADC_vect SIG_ADC ADC Conversion Complete 22 EE_READY_vect SIG_EEPROM_READY EEPROM Ready 23 ANALOG_COMP_vect SIG_COMPARATOR Analog Comparator 24 TIMER1_COMPC_vect SIG_OUTPUT_COMPARE1C Timer/Counter1 Compare Match C 25 TIMER3_CAPT_vect SIG_INPUT_CAPTURE3 Timer/Counter3 Capture Event 26 TIMER3_COMPA_vect SIG_OUTPUT_COMPARE3A Timer/Counter3 Compare Match A 27 TIMER3_COMPB_vect SIG_OUTPUT_COMPARE3B Timer/Counter3 Compare Match B 28 TIMER3_COMPC_vect SIG_OUTPUT_COMPARE3C Timer/Counter3 Compare Match C 29 TIMER3_OVF_vect SIG_OVERFLOW3 Timer/Counter3 Overflow 30 USART1_RX_vect SIG_UART1_RECV USART1 Rx Complete 31 USART1_UDRE_vect SIG_UART1_DATA USART1 Data Register Empty 32 USART1_TX_vect SIG_UART1_TRANS USART1 Tx Complete 33 TWI_vect SIG_2WIRE_SERIAL Two-wire Serial Interface 34 SPM_READY_vect SIG_SPM_READY Store Program Memory Ready 기본헤더파일 1 C: WinAVR avr include 폴더에위치 2 C: WinAVR avr include avr 폴더에위치 3 C: WinAVR avr include compat 폴더에위치 4 C: WinAVR avr include util 폴더에위치 - WinAVR 에제공하는헤더파일 헤더파일파일의내용비고 assert.h Diagnostics 1 boot.h Bootloader support utilities 2 crc16.h CRC-16 computations 24 ctype.h Character operations 1 delay.h Busy-wait delay loops 24 eeprom.h EEPROM handling 2 errno.h System errors 1 ina90.h Compatibility header for IAR C compiler EWB 3.x 3

interrupt.h Interrupt handling 2 inttypes.h Integer type conversions 1 io.h AVR device-specific I/O definitions 2 iom128.h I/O definitions for various AVR microcontrollers 2 math.h Mathemathics 1 parity.h Parity bit generations 24 pgmspace.h Program space string utilities 2 portpins.h I/O port bit number definitions 2 setjmp.h Non local goto 1 sfr-defs.h Special function registers 2 signal.h 기능이모두 interrupt.h 파일로흡수되어사용하지않음 2 sleep.h Power management and sleep modes 2 stdint.h Standard integer types 1 stdio.h Standard I/O facilities 1 stdlib.h General utilities 1 string.h More string manipulation routines 1 twi.h TWI bit mask definitions 34 version.h avr-libc version macros 2 wdt.h Watchdog timer handling 2