- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
定时器TA中断服务程序产生正弦波 #pragma vector=TIMERA0_VECTOR __interrupt void TA_ISR (void) { if(WaveSelect==5)//Sine {Count_line++; if(Count_lineSin_line) {TACCR1=sin[M]; M+=Delt_M; if(M=1024) M=M-1024; Count_line=0; } } * if(WaveSelect==10)//Triangle { Count_line++; if(Count_line3) { if((Count=1405)(Rise==1))//三角波上升 { Count+=f_out; if(Count1405) { Count=2810-Count; Rise=0; TACCR1=Count; Count_line=0; return; } } * 定时器TA中断服务程序产生三角波 if(Rise==0)//三角波下降 { if(Count=f_out)Count-=f_out; else { Count=f_out-Count; Rise=1; } } TACCR1=Count; Count_line=0; } } * 定时器TA中断服务程序产生三角波 if(WaveSelect==15)//Sawtooth { Count_line++; if(Count_line6) { Count+=f_out; if(Count=1405)Count-=1405; TACCR1=Count; Count_line=0; } } } * 定时器TA中断服务程序产生锯齿波 P1口中断服务程序 #pragma vector=PORT1_VECTOR __interrupt void P1_ISR_KEYS(void) { unsigned int i,Keytime1=0,Keytime2=0; unsigned char PushKey; PushKey=P1IFG(BIT6+BIT7); for(i=0;i1000;i++); if((P1INPushKey)==PushKey) { P1IFG=0;return; } if(PushKeyBIT6)//对应电路板上的S3 S3:Disable Output { TACCTL0|=CCIE;//开TA中断,允许输出信号 } * if(PushKeyBIT7)//对应电路板上的S4 S4:Sub { while((P1INBIT7)==0)//判断按键是否是长按 { Keytime1++; if(Keytime160000) { Keytime2++; Keytime1=0; if(Keytime210) { if(f_out) f_out-=5; Keytime2=0; } } } if(f_out) f_out-=1; } P1IFG=0; return; } * P1口中断服务程序 #pragma vector=PORT2_VECTOR __interrupt void P2_ISR_KEYS(void) { unsigned int i,Keytime1=0,Keytime2=0; unsigned char PushKey; PushKey=P2IFG(BIT6+BIT7); for(i=0;i1000;i++); if((P2INPushKey)==PushKey) { P2IFG=0;return; } if(PushKeyBIT6)//对应电路板上的S6 S6:Select Wave { TACCTL0=~CCIE; WaveSelect+=5; switch(WaveSelect) { case 5: TACCR0=255;P1OUT|=BIT5;P1OUT=~(BIT3+BIT4);break; case 10: TACCR0=1405;P1OUT|=BIT4;P1OUT=~(BIT3+BIT5);break; case 15: TACCR0=1405;P1OUT|=BIT3;P1OUT=~(BIT4+BIT5);break; //
文档评论(0)