void T3init() <br /> { *EVBIMRA=*EVBIMRA|0X0080;//init<br /> *EVBIFRA=*EVBIFRA&0X0080;<br /> *T3CON = 0x1040; // 定时器3为连续增计数模式<br /> *T3PER = 0x0820;//设置定时器3的周期寄存器,并设置CMPR4~CMPR6, <br /> *CMPR5 = 0x00C0; //*CMPR5 = 0x0010;//pwm9,10 1:1 <br /> *CMPR6 = 0x00C0; //*CMPR6 = 0x0010;//pwm11,12 1:1<br /> *T3CNT=0X00;//计数器清0<br /> <br /> <br />*GPTCONB=0XF04A; <br />//*T3CMPR=1000; <br /> <br /> *ACTRB=0x0000;<br /> *DBTCONB=0; //不使能死区控制 <br /> *COMCONB = 0x8200; <br />}<br /><br /><br />void interrupt T3INT() <br />{ <br /> *EVBIFRA=*EVBIFRA&0X0080;<br /> <br /> flag=*EVBIFRA&0X0080;<br /> <br /> <br /> <br /> *T3CNT=0X00;//计数器清0 <br /> *EVBIFRA=*EVBIFRA&0X0080; <br /> asm (" clrc INTM");<br /> return;<br />}<br /><br /><br />..........<br />void do()<br />{ *CMPR5 = 0x00C0;<br /> while (flag!=0X0080){ }<br /> *T3CON=0x1000;<br /> *T3PER = 0x820; <br /> *ACTRB=0x0010;// 9di <br /> <br /> *T3CON=0x1040; <br /> *T3CNT=0X00;//计数器清0 <br /> *EVBIFRA=*EVBIFRA&0X0080;<br /> } |
|