/* Atmega8a
tool : avr studio4
win avr gcc
*/
// √ 한건 코드를 짜야함 ㅠㅠ
//현재 timer/counter에서 고전하고 있다... resister와 타이밍도 그리고 분주기설정하는 것을 이해를 못하겠다.....
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
unsigned int pwck = 0;
unsigned int cnt=0;
//timer 사용 , 부저사용 , sleep모드
//스위치 누를 때마다 부저 울림√
ISR(INT0_vect){ // 전원스위치 인터럽트 1. led켜기 2. led끄기 3. sleep모드 √
PORTD = 0x20;
pwck++;
if(pwck ==1){
if((PIND &0x20)==0xff){
PORTC = 0xff;
TIMSK = 0x00;
}
else if((PIND & 0x60) ==0xff){
PORTC = 0xff;
}
if((PIND & 0xd0) == 0xff){
PORTC = 0xff;
}
}
if(pwck == 2)
PORTC = 0x00;
pwck=0;
// 2~3초간 누를시 sleep모드 timer사용√
}
int main(){
PORTD = 0x00;
PORTC = 0x00;
DDRB = 0x02; // 부저
DDRC = 0x01; // 후면 led
DDRD = 0x47; // 전면 led 출력 & 스위치 입력 & 인터럽트 INT0
if((PIND & 0x10) == 0xff){
cnt++;
switch(cnt){
case 0:
PORTD=0x20;
break;
case 1:
PORTD=0x60;
break;
case 2:
PORTD=0xd0;
break;
default:
PORTD=0x20;
cnt=0;
break;
}
}
while(1){
// 슬립모드 √
}
return 0;
}
'Study > 8-bit MCUs' 카테고리의 다른 글
스위치를 이용한 led제어 소스코드 (0) | 2015.06.09 |
---|---|
Atmega8a - Timer/Counter 레지스터 (0) | 2015.06.08 |
Timer/counter 참고하기! (0) | 2015.06.08 |
Atmega128 - 타이머/카운터 레지스터& 분주기 (1) | 2015.06.08 |
timer/counter 이해 참고 (0) | 2015.06.08 |