AVR 따라하기 > 101 - [타이머인터럽트-15] 스위치 8개 SRAM에 읽어서 LED에 출력

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > AVR 따라하기

2015년 강좌 | 101 - [타이머인터럽트-15] 스위치 8개 SRAM에 읽어서 LED에 출력

페이지 정보

작성자 키트 작성일17-08-23 16:45 조회2,910회 댓글0건

본문

3660040649_TEPrkCnD_25C125A625B825F1_25BE25F825C025BD9.PNG3Ftype3Dw7403660040649_YtyEImHr_25C125A625B825F1_25BE25F825C025BD1.PNG3Ftype3Dw740
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//--------------------------------------------------------
// CVAVR
// [타이머인터럽트-15] 스위치 8개 SRAM에 읽어서 LED에 출력
//--------------------------------------------------------
#include <mega128.h>
//
char sw=0xFF;
//
interrupt [TIM1_COMPA] void timer1_compa_isr(void){ // 100ms
    sw=~PINE;
}
//
void main(void){
    PORTE=0xFF;  DDRA=0xFF;
    TCCR1B=0x0B; OCR1A=24999; TIMSK=0x10//100ms
    SREG|=0x80;
    while(1){
        if(sw&0x01)PORTA.0=1else PORTA.0=0;
        if(sw&0x02)PORTA.1=1else PORTA.1=0;
        if(sw&0x04)PORTA.2=1else PORTA.2=0;
        if(sw&0x08)PORTA.3=1else PORTA.3=0;
        if(sw&0x10)PORTA.4=1else PORTA.4=0;
        if(sw&0x20)PORTA.5=1else PORTA.5=0;
        if(sw&0x40)PORTA.6=1else PORTA.6=0;
        if(sw&0x80)PORTA.7=1else PORTA.7=0;
    }
}
cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//--------------------------------------------------------
// AVRStudio
// [타이머인터럽트-15] 스위치 8개 SRAM에 읽어서 LED에 출력
//--------------------------------------------------------
#include <avr/io.h>
#include <avr/interrupt.h>
//
volatile unsigned char sw=0xFF;
//
ISR(TIMER1_COMPA_vect){ // 100ms
    sw=~PINE;
}
//
int main(void){
    PORTE=0xFF;  DDRA=0xFF;
    TCCR1B=0x0B; OCR1A=24999; TIMSK=0x10//100ms
    SREG|=0x80;
    while(1){
        if(sw&0x01)PORTA|=0x01else PORTA&=~0x01;
        if(sw&0x02)PORTA|=0x02else PORTA&=~0x02;
        if(sw&0x04)PORTA|=0x04else PORTA&=~0x04;
        if(sw&0x08)PORTA|=0x08else PORTA&=~0x08;
        if(sw&0x10)PORTA|=0x10else PORTA&=~0x10;
        if(sw&0x10)PORTA|=0x20else PORTA&=~0x20;
        if(sw&0x10)PORTA|=0x40else PORTA&=~0x40;
        if(sw&0x10)PORTA|=0x80else PORTA&=~0x80;
    }
}
cs

댓글 : 0

조회수 : 2,910

등록된 댓글이 없습니다.

게시물 검색

AVR 따라하기 목록

게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전