ساخت یک play/pauseتوسط یک 7segو دوعدد شستی(push button) که با فشردن یکی ازشستی ها pauseو بادیگری ادامه شمارش را انجام میدهد .
کدی که خودم نوشتم :
#include <mega16.h>
#include <delay.h>
int i,seg[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X9 8};//7SEG-CA
interrupt [EXT_INT0] void ext_int0(void){
if(PIND.2==1){
PORTC=seg[i];
while(PIND.2==0);}
}
interrupt [EXT_INT1] void ext_int1(void){
if(PIND.3==1){
while(PIND.3==0)i++;}
}
void main(){
DDRC=0xff;
DDRD.2=0;
PORTD.2=1;
DDRD.3=0;
PORTD.3=1;
GICR=0B11000000;
GIFR=0B11000000;
MCUCR=0X00;
#asm ("sei")
while(1){
for(i=0;i<10;i++){
PORTC=seg[i];
delay_ms(500);
}}}
کدی که خودم نوشتم :
#include <mega16.h>
#include <delay.h>
int i,seg[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X9 8};//7SEG-CA
interrupt [EXT_INT0] void ext_int0(void){
if(PIND.2==1){
PORTC=seg[i];
while(PIND.2==0);}
}
interrupt [EXT_INT1] void ext_int1(void){
if(PIND.3==1){
while(PIND.3==0)i++;}
}
void main(){
DDRC=0xff;
DDRD.2=0;
PORTD.2=1;
DDRD.3=0;
PORTD.3=1;
GICR=0B11000000;
GIFR=0B11000000;
MCUCR=0X00;
#asm ("sei")
while(1){
for(i=0;i<10;i++){
PORTC=seg[i];
delay_ms(500);
}}}