2015년 강좌 | 101 - [타이머인터럽트-15] 스위치 8개 SRAM에 읽어서 LED에 출력
페이지 정보
작성자 키트 작성일17-08-23 16:45 조회2,910회 댓글0건본문
|
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=1; else PORTA.0=0;
if(sw&0x02)PORTA.1=1; else PORTA.1=0;
if(sw&0x04)PORTA.2=1; else PORTA.2=0;
if(sw&0x08)PORTA.3=1; else PORTA.3=0;
if(sw&0x10)PORTA.4=1; else PORTA.4=0;
if(sw&0x20)PORTA.5=1; else PORTA.5=0;
if(sw&0x40)PORTA.6=1; else PORTA.6=0;
if(sw&0x80)PORTA.7=1; else 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|=0x01; else PORTA&=~0x01;
if(sw&0x02)PORTA|=0x02; else PORTA&=~0x02;
if(sw&0x04)PORTA|=0x04; else PORTA&=~0x04;
if(sw&0x08)PORTA|=0x08; else PORTA&=~0x08;
if(sw&0x10)PORTA|=0x10; else PORTA&=~0x10;
if(sw&0x10)PORTA|=0x20; else PORTA&=~0x20;
if(sw&0x10)PORTA|=0x40; else PORTA&=~0x40;
if(sw&0x10)PORTA|=0x80; else PORTA&=~0x80;
}
}
|
cs |
댓글 : 0
조회수 : 2,910
등록된 댓글이 없습니다.