티스토리 뷰
int0에서 Low level 검출 시 count 값을 하나 증가
count 값을 2진수로 led 표현
count값 초기값은 0, 최대값을 255로 정의
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
30
31 |
#include <io.h>
#include <mega128.h>
#include <delay.h>
unsigned char led = 0;
interrupt [2] void add_num(){ // INT.0의 인터럽트 벡터는 2
if(led == 255){
led = 0;
PORTB = ~led;
delay_ms(300);
}else {
led = led +1;
PORTB = ~led;
delay_ms(300);
}
}
void main(){
EIMSK = 0x01;
EICRA = 0x00;
SREG |= 0x80;
DDRB = 0xff;
DDRD = 0x00;
while(1){
}
}
|
cs |
0~255까지 0.5초 주기로 2진수 led 표현
int1에서 falling edge 검출 시 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 29 30 | #include <io.h> #include <mega128.h> #include <delay.h> unsigned char led = 0; interrupt [3] void add_num(){ // INT.1의 인터럽트 벡터는 3 led = 0; } void main(){ EIMSK = 0x02; EICRA = 0x08; SREG |= 0x80; DDRB = 0xff; DDRD = 0x00; while(1){ PORTB = ~led; if(led == 255){ led = 0; delay_ms(100); } else{ led = led +1; delay_ms(100); } } } | cs |
Byte type 변수 led 초기값 10으로 정의
int2에서 rising edge 검출 시 led 값 +1
int3에서 falling edge 검출 시 led 값 -1
led 변수값을 2진수로 LED 표현
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 30 31 32 33 34 35 36 37 38 39 | #include <io.h> #include <mega128.h> #include <delay.h> unsigned char led = 10; interrupt [4] void int2_func(){ // INT.2의 인터럽트 벡터는 4 if(led == 255){ led = 0; } else{ led++; } PORTB = ~led; delay_ms(100); } interrupt [5] void int3_func(){ // INT.3의 인터럽트 벡터는 5 if(led == 0){ led = 255; } else{ led--; } PORTB = ~led; delay_ms(100); } void main(){ EIMSK = 0b00001100; EICRA = 0b10110000; SREG |= 0x80; DDRB = 0xff; DDRD = 0x00; while(1){ } } | cs |
'프로그래밍 > C' 카테고리의 다른 글
마이크로프로세서 0607 (0) | 2018.06.07 |
---|---|
마이크로프로세서 0517 (0) | 2018.05.24 |
C언어, 한정자 const/volatile/static/extern (0) | 2018.04.20 |
[자료구조] 3일차_과제(180323) - 연결리스트 (0) | 2018.03.30 |
[자료구조] 4일차_과제(180323) - 재귀함수 (0) | 2018.03.30 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- REACT
- Cloud
- oracle
- Gatsby.js
- gcp
- 이진탐색 #중복
- Next.js
- Remix
- vue.js
- RDBMS
- MySQL
- nuxt.js
- Angular
- node.js
- nosql
- Quasar
- alpine.js
- SQLite
- DevOps
- aws
- svelte
- Azure
- PostgreSQL
- vue
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 | 31 |
글 보관함