完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
想通过程序实现闪烁功能,不使用看门狗程序很容易就跑死了,现在还不明白看门狗怎么使用,请大家鞥能够指点,只有5积分了,希望大神们不要拘泥于积分
#include "msp430x14x.h" #define UINT8 unsigned char #define UINT16 unsigned int #define False 0 #define True 1 UINT16 timer_Counter = 0; UINT8 Timer_Flag = False; UINT8 Light_Start = False; UINT8 Fun_Choose = False; /***********时钟初始化函数***********/ void clk_init() { UINT8 i; BCSCTL1&=~XT2OFF; //打开高频晶体振荡器 BCSCTL2|=SELM_2+SELS; //MCLK和SMCLK都选择XT2,8MHZ do { IFG1&=~OFIFG; //清除振荡器失效标志 for(i=0xff;i>0;i--); //延迟待稳定 } while((IFG1&OFIFG)!=0); } void GPIO_Init() { P1DIR &= ~BIT5; P1OUT |= 0xFF; P2DIR |= BIT6; P2OUT &= 0x00; P5DIR |= BIT4; P5OUT &= ~BIT4; } /*****************TimerA_Init*******************/ void TimerA_Init() { TACTL|=TASSEL_2+MC0+TACLR+TAIE+ID_3; CCTL0 = CCIE; TACCR0=29999; } //****************************************************** //352微秒延时程序 void delay_352us(UINT16 i)//352us延时程序 { UINT8 j; while(i--) { for(j=0;j<255;j++) { _NOP(); _NOP(); _NOP(); _NOP(); } } } /************************************************/ /* 主函数 */ /************************************************/ void main(void) { // WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer WDTCTL = WDTPW + WDTCNTCL; P5DIR |= BIT4; // Set P5.4 to output direction P5OUT ^= BIT4; clk_init(); GPIO_Init(); TimerA_Init(); _EINT(); LPM0; WDTCTL = WDTPW + WDTCNTCL; } /************定时器A中断函数******************/ #pragma vector=TIMERA0_VECTOR __interrupt void timer0() { switch(TAIV) { case TAIV_TACCR1:break; case TAIV_TACCR2:break; case TAIV_TAIFG: { Timer_Counter++; if(((P1IN & BIT5)>>5) == 1) { Fun_Choose = False; } else { Fun_Choose = True; } if(Fun_Choose == True) { if(Timer_Counter >= 11) { Timer_Flag = 0; } if(Timer_Counter >= 33) { Timer_Counter = 0; Timer_Flag = 1; } if(Timer_Flag == True) { P2OUT |= BIT6; P5OUT |= BIT4; } else { P2OUT &= ~BIT6; P5OUT &= ~BIT4; } } else { P5OUT |= BIT4; P2OUT |= BIT6; } } break; } } |
|
相关推荐
1个回答
|
|
你的主函数连while都没有不死才怪。
|
|
|
|
只有小组成员才能发言,加入小组>>
3052个成员聚集在这个小组
加入小组2965 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3677 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2362 浏览 1 评论
4827 浏览 1 评论
2586 浏览 1 评论
1362浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3678浏览 2评论
2965浏览 1评论
1559浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 18:55 , Processed in 1.255394 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号