BASIC4MCU | 질문게시판 | 답변 2: IAR ATmega128 7세그먼트 스위치
페이지 정보
작성자 master 작성일2018-09-07 14:44 조회7,688회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=2946
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-09-08 오전 11:23:04// by Ok-Hyun Park//#include <iom128.h>#include <ina90.h>//unsigned char fnd[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};char flag=0,run=0,mode=0,buf[2];int cnt=0;//#pragma vector=TIMER0_OVF_vect__interrupt void TIMER0_OVF_Isr(void){ // 1msstatic char fnd_cnt=0;TCNT0=131;PORTC&=~0x80; PORTD=0x7F; // 세그먼트 OFFif(run){switch(fnd_cnt){case 0: PORTD=fnd[buf[0]]; PORTD|=0x80; break;case 1: PORTD=fnd[buf[1]]; PORTC|=0x80; break;}if(++fnd_cnt>1)fnd_cnt=0;//if(mode==0){ if(++cnt>15000)cnt=0; } // 30 // 15secif(mode==1){ if(++cnt>10000)cnt=0; } // 60 // 10secif(mode==2){ if(++cnt>5000)cnt=0; } // 90 // 5secif(cnt==0){if(PORTC&1){ PORTC&=~1; PORTC|=2; }else{ PORTC&=~2; PORTC|=1; }}}else{ PORTC&=~3; }}//void main(){char n=30;DDRC=0x83; DDRD=0xFF;TCCR0=4; TCNT0=131; TIMSK=1; //8000000/64/(256-131),1ms__enable_interrupt();while(1){if(PINA&1)run=1;else run=0; // PA0 // 토글스위치 // ON/OFF//if(PINA&2){if(flag==0){ flag=1; if(++mode<2)mode=0; cnt=0; } // PA1 // 푸쉬스위치}flag=0;//if(mode==0){ buf[0]=3; buf[1]=0; } // 30 // 15secif(mode==1){ buf[0]=6; buf[1]=0; } // 60 // 10secif(mode==2){ buf[0]=9; buf[1]=0; } // 90 // 5sec}}
댓글 0
조회수 7,688등록된 댓글이 없습니다.