找回密码
 注册
关于网站域名变更的通知
查看: 501|回复: 2
打印 上一主题 下一主题

大家好,请教大神关于430看门狗的使用问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-8-10 13:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
想通过程序实现闪烁功能,不使用看门狗程序很容易就跑死了,现在还不明白看门狗怎么使用,请大家能够指点( f# t: @$ Z* l9 }0 d7 Q
#include "msp430x14x.h"+ K: o5 D* L, ~
#define UINT8 unsigned char
1 y; B+ k3 H0 a# |1 z* U. C8 Y#define UINT16 unsigned int
2 B' Q) d# o' m' @#define False 05 D: `+ t5 P$ T
#define True 1; M% k9 Z9 C* g8 A. O

  D2 d% H) K1 H) e5 t3 Z; B% M: AUINT16 timer_Counter = 0;
  V, f9 D! R4 ~UINT8  Timer_Flag = False;9 Y. f3 [, b' O; ~# J( ?. H' @
UINT8  Light_Start = False;6 @* L( }0 Y- t$ H6 ^5 D" O+ [
UINT8  Fun_Choose = False;: g  k" s0 X/ V9 v8 s, D% h( O" b

4 f3 U  W2 H( m# z& G! ~8 k; g9 }/***********时钟初始化函数***********/
8 K( n/ B5 ?* ~void clk_init(). r1 J7 r9 q, P* d) O' L' I
{' K2 x; d7 p% s0 L9 l
  UINT8 i;
4 h7 [, ^4 m7 t) a* I: E: o% i  BCSCTL1&=~XT2OFF; //打开高频晶体振荡器7 r0 @* N2 `& f5 U- C! w& e# S
  BCSCTL2|=SELM_2+SELS; //MCLK和SMCLK都选择XT2,8MHZ( b2 L' `5 I/ @1 h4 }5 w6 t5 V0 f
    do# s) [" b1 x$ S& ^# L- I' P' q
    {# B% R5 E6 a! w/ W
      IFG1&=~OFIFG;   //清除振荡器失效标志( |' k( b5 Z$ B- y! p
      for(i=0xff;i>0;i--);  //延迟待稳定
# M; ]8 |) W, I2 h      
% i: J2 h. _/ g5 o9 W    } ( a0 r( o, h: d' C
   while((IFG1&OFIFG)!=0);
$ I- e5 s" K3 ^/ O6 I- J}   
! h3 U; i8 V6 `  q8 w. d: h4 z   
+ L, e2 p% ]  P5 {void GPIO_Init()
' c; J  }+ A3 s+ |6 S% d. }. N* {# ?{0 s( W" M0 @; f. N+ V. O$ B
  P1DIR &= ~BIT5;; W5 L; {% `: j( D
  P1OUT |= 0xFF;9 E0 }3 X& Q! T2 Z# _8 `8 O
  P2DIR |= BIT6;6 D, \/ g2 M8 x& n4 y
  P2OUT &= 0x00;3 I! e" a( U  h/ L4 J' }
  
( g8 F$ G1 Z0 p, u/ v4 E  P5DIR |= BIT4;* q5 h8 t! ?2 L0 d5 O
  P5OUT &= ~BIT4;  ) K  z# Y. s1 o2 f2 w: d* F/ z% H
}, g6 {* t: Y2 H- f! I9 x
/*****************TimerA_Init*******************/' o6 @# m/ i% w% h; ~
void TimerA_Init()8 H, ?2 ?+ e" J5 w2 d7 i5 W5 C" A
{& |' F/ w9 ?$ }$ {( `
  TACTL|=TASSEL_2+MC0+TACLR+TAIE+ID_3;; _2 T1 A7 ~6 w" T7 E
  CCTL0 = CCIE; ) L5 ~) T+ s4 x8 j+ w, i/ p8 u
  TACCR0=29999;
8 W+ U( j3 [3 D4 Q& y4 I}6 G( ~: V4 `: X) f2 w
//******************************************************
* o8 @6 b: y/ l/ h  A, x1 ]//352微秒延时程序2 |: i# H& @, A  ^( _4 u  t
void delay_352us(UINT16 i)//352us延时程序+ q- ]( }; k8 j  @2 @3 f2 U0 R
{  A/ s) O1 V! e. I" X
  UINT8 j;
/ _& ?0 y: B' i  while(i--)2 S5 n: ]! N: D
  {
) T; {& H' O4 t' H/ r   for(j=0;j<255;j++)7 q$ v  ?) b1 a; \- }& s. o
   {  
* k% i" ^; s8 N+ e- K2 u    _NOP();
- g# C8 j8 P  r4 y9 f8 Z6 ?    _NOP();' m+ n2 v1 v9 x/ x3 z1 O# E
    _NOP();
3 s1 i9 j. k4 ^5 R! R0 q( J    _NOP();   4 A% I( A% ^  B7 ]$ p
    }; K6 o- B; O+ A7 U% A0 [2 W: c8 q
  } ! }3 i( f: S3 J
}
) q! m- X. f8 D- i* U* G5 A7 ]/ U2 k9 w- A" p; }' ]
/************************************************// f/ ^( ^; ^8 `$ o! K& _
/*                   主函数                     */: t. @! p9 J2 Z0 X0 G  k
/************************************************/
# r* w( @& S9 T" y% j% D% Q) L' hvoid main(void): n0 e. K, n8 o+ n) k9 g) m+ U9 G% d
5 z4 Z% E+ t: P1 d7 Z( z. D
{; T, Q" j% O8 @8 ]/ t3 |' V
9 F, {" G- ]* [" z$ L5 ?
//  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer( }3 {6 r/ i" [5 L

2 \. T  t* [0 `$ j4 Q( ?    WDTCTL = WDTPW + WDTCNTCL;: U4 g: }" a7 Y' m, W

- A" y/ f4 d1 l; @9 h8 H# r5 J- }    P5DIR |= BIT4;                            // Set P5.4 to output direction0 O/ {+ F- {" c, R+ D
    P5OUT ^= BIT4; / a% P8 r$ b6 W: F2 p
    clk_init();7 k5 y! P7 a2 ~6 W6 X- h: {
  1 Q) e2 L$ h8 v/ L
    GPIO_Init();; C2 R8 s0 E; |' ?1 I: L$ c
   
) ?- [' c/ a7 a- N* M3 [' n    TimerA_Init();  X0 G; |0 C& x# m$ e! T
# n/ S# U9 ?/ T8 C, k9 d
    _EINT();0 G0 _/ P  n; \, S5 `
    LPM0;                       
" P. B. Z( Z0 d5 r    WDTCTL = WDTPW + WDTCNTCL;" n8 E  ^; H; k, T

* h; B' k3 Q5 T1 K1 o& {  T3 g  r* ?2 v: B* x( n5 [
9 ?* z) c% h3 _# z; {
}
# O+ x) _+ Y/ z1 `8 k) _, B* A# H0 q* _; G$ J' W
/************定时器A中断函数******************/
9 `2 B/ M; d) k# e) ]/ P# s, x; G/ ]#pragma vector=TIMERA0_VECTOR9 t- ~8 {8 b, C: k3 U& L0 i
__interrupt void timer0()
) d- a# \; `: a/ i( v{& m5 M: w4 l2 M, E5 X3 _  w! a
   switch(TAIV)
9 \8 \( t0 F8 X" O9 n. H   {
9 {/ u- @) i1 I; m: Z8 d, q6 y     case TAIV_TACCR1:break;
1 S8 L- L: p; {: F% k     case TAIV_TACCR2:break;- [7 a  b9 A- l, `
     case TAIV_TAIFG:# \- A$ O7 V! t; P$ N
     { 5 D6 U+ c+ b. B( n+ [' j: `
       Timer_Counter++;
5 [+ I4 h5 @9 V6 l- X$ V       if(((P1IN & BIT5)>>5) == 1)) t8 L& ^* E  }) r9 w3 }+ U# c
       {
' ~1 w% p6 \2 h; e. w           Fun_Choose = False;  / i. q- ]; |! q/ I, `' S6 X
       }9 {  P. `  `) n" f
       else
& W% l+ J" D4 L0 P8 c- E8 \       {         . V. |& t- U3 D% D  I
           Fun_Choose = True;
  y$ @0 I' W0 ^! u       }2 b& m% R2 [% Y* i9 R4 Q, x& t
      
- r' \7 I8 f1 j' [6 \7 O% x+ j       ) N: l' c" Z( l+ n8 {
       if(Fun_Choose == True)+ Q9 o/ j- O- G  G
       {
7 m2 r- }: y) A' f" Y% B0 {         if(Timer_Counter >= 11)' {9 \3 H2 ^: ?% P
            % b$ i7 M) ^2 s" \# M2 _( m9 l% @
         {
6 P6 E3 t' s3 @' L( _: l: P7 l3 C         
7 c$ v. n: o: V  [            Timer_Flag = 0;$ B7 A, `; @& ^( p; a
           
% w; J# s2 U' l- ?( W9 n9 d$ _         }
' k3 B/ ~; D+ p  k. z: F$ Z* k$ ?         if(Timer_Counter >= 33)6 v5 z& g7 X7 [; _' h
            {
6 [' q  f% P1 L8 g              Timer_Counter = 0;. O! Q$ g" s1 R5 X; R# C4 ]* m
              Timer_Flag = 1;$ W% C  z  ^/ K0 ?+ Q7 H
            }  0 m, o7 ^9 o/ ?' U
         if(Timer_Flag == True)6 G4 u% t, e! s" N4 [0 F
         {, M% G- D0 C+ I1 ?# ~5 w$ ^* z
           P2OUT |= BIT6;/ n4 f4 K* g" a. X
           P5OUT |= BIT4;" i! B6 J5 V: D7 q7 w0 h5 g
         }) S& c" o- Y  I/ i% F# f& |
         else( D% d. x) J: {
         {
& K: h8 U1 P  ^% M) Q           P2OUT &= ~BIT6;
) B: V+ y) U/ {6 t7 c9 Q# N) l           P5OUT &= ~BIT4;
  P# V+ F& r4 |1 @% O( ?         }
: v* T4 S- G( A       }6 X1 U/ {1 }& E: u2 ^
       else
+ o. C! o, r4 b4 P2 }& ]       {
/ R# u- m' }2 z% e/ u4 X         P5OUT |= BIT4;
9 {8 k- E5 O3 P1 {5 Z. I         P2OUT |= BIT6;) c& L  H+ L3 ?* {4 y) S
       }   . M# O4 [1 w6 l* U: p% {
     }
! w4 Z/ I7 L6 \! n/ f7 g1 q     break;
- s' z! C. N8 V" r   }, h3 P+ F/ k! ]9 ]# h
}% k/ I) d5 m% [  e
- \) I- Q4 i8 u- W  i

该用户从未签到

2#
发表于 2020-8-10 14:53 | 只看该作者
你的主函数连while都没有不死才怪。

该用户从未签到

3#
发表于 2020-8-10 15:26 | 只看该作者
楼上说的对                             
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-9 03:29 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表