?? jianfei.c
字號:
delay_ms(120);
}
break;
}
show();
while ((PIND & 0x0f)!=0x0f) WDR();
delay_ms(100);
while ((PIND & 0x0f)!=0x0f) WDR();
}
}
void modle1change(void)
{
if (xunhuan1==1)
{
trign++;
if (trign>60)
{
trign=0;
stopboxing();
xunhuan1=2;
}
}
else if (xunhuan1==2)
{
trign++;
if (trign>boxing2)
{
trign=0;
in50hza();
xunhuan1=3;
}
}
else if (xunhuan1==3)
{
trign++;
if (trign>60)
{
trign=0;
stopboxing();
xunhuan1=4;
}
}
else if (xunhuan1==4)
{
trign++;
if (trign>boxing2)
{
trign=0;
in50hzb();
xunhuan1=1;
fecte++;
if (fecte>3)
{
fecte=0;
if (boxing2>80) boxing2-=20;
else boxing2=140;
}
}
}
}
void modle2change(void)
{
if (xunhuan1==1)
{
trign++;
if (trign>80)
{trign=0;
xunhuan1=2;
in10hza();
}
}
else if (xunhuan1==2)
{
trign++;
if (trign>60)
{trign=0;
xunhuan1=3;
in30hza();
}
}
else if (xunhuan1==3)
{
trign++;
if (trign>40)
{trign=0;
xunhuan1=4;
in50hza();
}
}
else if (xunhuan1==4)
{
trign++;
if (trign>40)
{trign=0;
xunhuan1=5;
in90hza();
}
}
else if (xunhuan1==5)
{
trign++;
if (trign>200)
{trign=0;
xunhuan1=6;
stopboxing();
}
}
else if (xunhuan1==6)
{
trign++;
if (trign>250)
{trign=0;
xunhuan1=7;
in5hzb();
}
}
else if (xunhuan1==7)
{
trign++;
if (trign>80)
{trign=0;
xunhuan1=8;
in10hzb();
}
}
else if (xunhuan1==8)
{
trign++;
if (trign>60)
{trign=0;
xunhuan1=9;
in30hzb();
}
}
else if (xunhuan1==9)
{
trign++;
if (trign>40)
{trign=0;
xunhuan1=10;
in50hzb();
}
}
else if (xunhuan1==10)
{
trign++;
if (trign>40)
{trign=0;
xunhuan1=11;
in90hzb();
}
}
else if (xunhuan1==11)
{
trign++;
if (trign>200)
{trign=0;
xunhuan1=12;
stopboxing();
}
}
else if (xunhuan1==12)
{
trign++;
if (trign>250)
{trign=0;
xunhuan1=1;
in5hza();
}
}
}
void modle3change(void)
{
if (tran1==1)
{
trign++;
if (trign>300)
{
trign=0;
if (xunhuan1==1)
{
stopboxing();
xunhuan1=2;
}
else if (xunhuan1==2)
{
in30hzb();
xunhuan1=3;
}
else if (xunhuan1==3)
{
stopboxing();
xunhuan1=4;
}
else if (xunhuan1==4)
{
xunhuan1=1;
fecte++;
if (fecte<5) in30hza();
else
{
fecte=0;
in50hza();
tran1=2;
}
}
}
}
else if (tran1==2)
{
trign++;
if (trign>300)
{
trign=0;
if (xunhuan1==1)
{
stopboxing();
xunhuan1=2;
}
else if (xunhuan1==2)
{
in50hzb();
xunhuan1=3;
}
else if (xunhuan1==3)
{
stopboxing();
xunhuan1=4;
}
else if (xunhuan1==4)
{
xunhuan1=1;
fecte++;
if (fecte<5) in50hza();
else
{
fecte=0;
in90hza();
tran1=3;
}
}
}
}
else if (tran1==3)
{
trign++;
if (trign>300)
{
trign=0;
if (xunhuan1==1)
{
stopboxing();
xunhuan1=2;
}
else if (xunhuan1==2)
{
in90hzb();
xunhuan1=3;
}
else if (xunhuan1==3)
{
stopboxing();
xunhuan1=4;
}
else if (xunhuan1==4)
{
xunhuan1=1;
fecte++;
if (fecte<5) in90hza();
else
{
fecte=0;
in30hza();
tran1=1;
}
}
}
}
}
void modle4change(void)
{
if (tran1==1)
{
trign++;
if (trign>1000)
{
trign=0;
stopboxing();
tran1=2;
}
}
else if (tran1==2)
{
trign++;
if (trign>300)
{
trign=0;
in30hzb();
tran1=3;
}
}
else if (tran1==3)
{
trign++;
if (trign>1000)
{
trign=0;
stopboxing();
tran1=4;
}
}
else if (tran1==4)
{
trign++;
if (trign>300)
{
trign=0;
in30hza();
tran1=1;
}
}
}
/*
void modle5change(void)
{
if (xunhuan1==1)
{
trign++;
if (trign>750)
{
trign=0;
xunhuan1=2;
stopboxing();
}
}
else if (xunhuan1==2)
{
trign++;
if (trign>80)
{
trign=0;
xunhuan1=3;
if (tran1==1) in100hzb();
else if(tran1==2) in200hzb();
else if (tran1==3) in300hzb();
}
}
else if (xunhuan1==3)
{
trign++;
if (trign>750)
{
trign=0;
xunhuan1=4;
stopboxing();
}
}
else if (xunhuan1==4)
{
trign++;
if (trign>80)
{
trign=0;
xunhuan1=1;
if (tran1<3) tran1++; else tran1=1;
if (tran1==1) in100hza();
else if(tran1==2) in200hza();
else if (tran1==3) in300hza();
}
}
}
*/
void modle6change(void)
{
if (tran1==1)
{
if (xunhuan1==1)
{
trign++;
if (trign>550)
{
trign=0;
xunhuan1=2;
stopboxing();
}
}
else if (xunhuan1==2)
{
trign++;
if (trign>100)
{
trign=0;
xunhuan1=3;
in30hzb();
}
}
else if (xunhuan1==3)
{
trign++;
if (trign>1000)
{
trign=0;
xunhuan1=4;
stopboxing();
}
}
else if (xunhuan1==4)
{
trign++;
if (trign>100)
{
trign=0;
xunhuan1=1;
fecte++;
if (fecte>2)
{
fecte=0;
tran1=2;
in5hza();
}
else in30hza();
}
}
}
else if (tran1==2)
{
if (xunhuan1==1)
{
trign++;
if (trign>1000)
{
trign=0;
stopboxing();
xunhuan1=2;
}
}
else if (xunhuan1==2)
{
trign++;
if (trign>200)
{
trign=0;
in5hzb();
xunhuan1=3;
}
}
else if (xunhuan1==3)
{
trign++;
if (trign>1000)
{
trign=0;
stopboxing();
xunhuan1=4;
}
}
else if (xunhuan1==4)
{
trign++;
if (trign>200)
{
trign=0;
in30hza();
tran1=1;
xunhuan1=1;
}
}
}
}
//TIMER0 initialize - prescale:256
// desired value: 4mSec
// actual value: 4.000mSec (0.0%)
void timer0_init(void)
{
TCCR0 = 0x00; //stop
TCNT0 = 0x83; //set count
// TCCR0 = 0x04; //start timer
}
#pragma interrupt_handler timer0_ovf_isr:10
void timer0_ovf_isr(void)
{
TCNT0 = 0x83; //set count
switch (selmodle)
{
case 1:
modle1change();
break;
case 2:
modle2change();
break;
case 3:
modle3change();
break;
case 4:
modle4change();
break;
case 5:
//modle5change();
break;
case 6:
modle6change();
break;
}
hao++;
if (hao==125)
{
if (share==0) share=1; else share=0;
show();
}
else if (hao>=250)
{hao=0;
if (share==0) share=1; else share=0;
show();
second++;
if (second>=60)
{second=0;
minute--;
if (minute==0)
{stop();
sbipb0;
delay_ms(1000);
cbipb0;
delay_ms(500);
sbipb0;
delay_ms(1000);
cbipb0;
delay_ms(500);
sbipb0;
delay_ms(1000);
cbipb0;
}
show();
}
if (modus==1) //自動波動變化1
{modsec++;
if (modsec>=10) //10秒換一次
{modsec=0;
if (selmodle<6) selmodle++; else selmodle=1;
chmodle();
show();
}
}
else if (modus==2) //自動波動變化2
{modsec++;
if (modsec>=20) //20秒轉一次
{modsec=0;
if (selmodle<6) selmodle++; else selmodle=1;
chmodle();
show();
}
}
}
}
void timer1_init(void)
{
TCCR1B = 0x00; //stop
cbipb1;
cbipb0;
TCNT1H = 0xFE; //setup
TCNT1L = 0x0C;
TCCR1A = 0x00;
}
//TIMER2 initialize - prescale:1024
// WGM: Normal
// desired value: 10mSec
// actual value: 9.984mSec (0.2%)
void timer2_init(void)
{
TCCR2 = 0x00; //stop
ASSR = 0x00; //set async mode
TCNT2 = 0xB2; //setup
//TCCR2 = 0x07; //start
}
#pragma interrupt_handler timer2_ovf_isr:5
void timer2_ovf_isr(void)
{
TCNT2 = 0xB2; //setup
if (tempset!=0)
{
if (temptrig<100)
temptrig++;
else
{temptrig=0;
cbipc3;
cbipc4;
}
if (temptrig==tempture1) sbipc3;
if (temptrig==tempture2) sbipc4;
}
else
{
sbipc3;
sbipc4;
}
}
void wdt_enable(unsigned char tab)
{unsigned char temp;
temp=~(0xff<<tab);
temp=(0x8|temp);
WDTCR=(WDCE<<1)|(WDE<<1);
WDTCR=temp;
}
void main(void)
{
CLI(); //disable all interrupts
wdt_enable(2);
WDR();
port_init();
powerdown();
initram();
show();
timer0_init();//timer
timer1_init();//modle
timer2_init();//speaker
SPCR=0;
MCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x41; //timer interrupt sources
SEI(); //re-enable interrupts
sbipb0;
delay_ms(1000);
cbipb0;
show();
while(1)
{
checkbut();
WDR();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -