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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
想通过程序实现闪烁功能,不使用看门狗程序很容易就跑死了,现在还不明白看门狗怎么使用,请大家能够指点
; Z: q2 r) l( o' E' Z- V- c  C& r" ]9 x#include "msp430x14x.h"
! b+ ~- w6 p# ~  e( F. M#define UINT8 unsigned char! m/ E. ~& U, H+ ?# r( C' ?
#define UINT16 unsigned int5 P+ w7 ^% h* F& @8 E5 \
#define False 04 u5 J: j0 i" C2 ^2 Z3 Q! B% s
#define True 12 A* m  i: g; \. q1 z+ E( f8 d
  ]3 E/ E9 H  P
UINT16 timer_Counter = 0;
8 L' D/ R) e: R5 J5 b& cUINT8  Timer_Flag = False;
2 _! k5 J. w7 _8 [3 C* {UINT8  Light_Start = False;* @+ w. F& P/ u% y% x( E
UINT8  Fun_Choose = False;
& t# J7 a$ c  ^, h1 `: ~
* ^# f) i1 j; g9 Q, Z/***********时钟初始化函数***********/ 9 \! ]% p- E% m& S' `& Z+ l
void clk_init()
+ }) X0 T1 Y* Y$ P" |{: I1 I/ ]/ [4 {+ _) h
  UINT8 i;
( M2 S9 V( v0 ^8 l" D& x, O" B  BCSCTL1&=~XT2OFF; //打开高频晶体振荡器
7 f) r/ m# N; G+ r' Z' s) x4 F  BCSCTL2|=SELM_2+SELS; //MCLK和SMCLK都选择XT2,8MHZ
7 w! X( X& s6 i' n* f/ N    do) c' O6 x3 G6 h9 |1 W2 L& S; t/ P
    {  U. j" N, D$ ?+ x9 G
      IFG1&=~OFIFG;   //清除振荡器失效标志
/ Y# H9 H& q, j7 f6 b; l1 U      for(i=0xff;i>0;i--);  //延迟待稳定0 W5 b( P) E2 u  G* C
      
0 d7 I) C* e' _* m5 M$ t4 s    } ! j( s' f: p5 ^, Y' C) c4 x! z
   while((IFG1&OFIFG)!=0);
& b9 e' a' R2 U) l0 c* r% C6 D}   ! V$ ]$ ^- i8 Q/ X7 `
   / y2 I. ~" C( g* g' h3 {4 [$ C
void GPIO_Init()  U% [# L7 `9 v
{2 S9 O- w: N6 W* S8 c6 K
  P1DIR &= ~BIT5;- z! E! [5 v# \( z9 }4 A" A
  P1OUT |= 0xFF;- y: s0 r0 A0 \( r
  P2DIR |= BIT6;
3 U9 d, n5 Y. ^$ S  k  D  P2OUT &= 0x00;8 Y4 R/ ^/ F' Y  J/ C8 q
  . L- F: i2 T& r# Y& q
  P5DIR |= BIT4;
1 D( S2 y# w( o2 M  P5OUT &= ~BIT4;  & j: H8 U+ l0 O
}
; v, l# Y0 i$ q8 b' E0 G/*****************TimerA_Init*******************/: S+ r, a: v+ T
void TimerA_Init()# T3 {9 z( Z4 y3 G
{
$ N+ \/ f4 L/ s2 m  TACTL|=TASSEL_2+MC0+TACLR+TAIE+ID_3;, U# i6 ?' l  n! {! y
  CCTL0 = CCIE;
. o) t* r6 p3 H# ]: J$ |  TACCR0=29999;
1 |. @- O% B# {4 \) {}) P$ n& |7 D7 z) R$ V1 `7 E
//******************************************************
& [- x8 U9 w* B5 N//352微秒延时程序. i2 N8 B& S- X0 I- r7 L: f+ }
void delay_352us(UINT16 i)//352us延时程序3 h+ |; S0 v" s* l% @7 N/ Y- g
{
* [6 p& M" i- ]  A0 t0 Y- w  UINT8 j;
' J! `+ x# g+ r, z! o# A, f- h  while(i--). q: J& W6 t5 [, g9 o/ s: j
  {
: x# y0 M4 o% g3 Y   for(j=0;j<255;j++)
9 A+ U" {# N- z5 W9 e   {  * B, @" m" ^  ?* @8 X2 E9 k
    _NOP();, f7 ]8 ?4 T7 R1 M) i! ~) E; m$ d
    _NOP();
1 {/ V: R8 f& L, X8 e& b$ {6 P    _NOP();
" O" c" A) X& D+ l    _NOP();   + j; I& A- L% e" C# ?7 G0 O
    }
" U$ i8 ?9 G. x, A, P  }
5 |6 z7 f: a& P7 D. p1 j}
+ z4 K; m& b% c* a  L3 U8 v. y: o7 y7 u# X" r
/************************************************/  ^+ Q$ d3 |2 m1 C- j  W* t
/*                   主函数                     */. i% V) r/ g! ~
/************************************************/2 L2 `  `  S  m! }
void main(void)
. Y1 `) F* ^# c. o: M% L) L# {  R' F, [( y8 P
{
& v! ~& K  A! N' V( D+ C: I2 N" @. C! l2 {
//  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer
$ {9 w0 {. k# J
. t3 o+ a, p- ~( C, ?4 O    WDTCTL = WDTPW + WDTCNTCL;5 f  l$ b' A0 h5 \
* i  c- V( u; d5 h6 U
    P5DIR |= BIT4;                            // Set P5.4 to output direction- _: ~2 T! ]& o( I2 b- w" R5 [
    P5OUT ^= BIT4; # ~7 v7 @' k1 H" h9 P( @& k
    clk_init();
! }& n/ l: _: B& C7 I  m  # a' d9 Q% C1 `: A
    GPIO_Init();
' E! k* f, }) T8 B, ^0 b0 C; l1 \   
; C9 r5 m; E6 J/ y& _) w    TimerA_Init();
7 x3 t, s) y( a$ \. x
! C& {2 `, l( r# }# \( P& ?    _EINT();. E" g7 M! ~! H2 Z9 P6 f
    LPM0;                       
5 @! }) r6 p, U: o4 I+ S3 |* c    WDTCTL = WDTPW + WDTCNTCL;4 Y1 G' _# d* {4 j+ r' u. ?
7 s- Y$ U$ i- R+ Z# V! c
  |; q5 E; o* A' n. v
7 F5 `3 e: h9 s6 D! R
}8 F* r  N$ s/ a) ?
/ I8 }, ]# ?+ U( S) k: @6 J0 k8 R* h
/************定时器A中断函数******************/& Z+ k% P0 h9 L& _
#pragma vector=TIMERA0_VECTOR: H* r) E1 j6 K' R/ Q  f6 T" B. @
__interrupt void timer0()& ]" V  `3 D4 _+ }7 U" ?
{, y1 B( u! W: D' U& ]
   switch(TAIV)3 U% g* {. [2 Y& ?( J) a' l8 I
   {7 j$ E) T! ~5 P8 M. W" N: |
     case TAIV_TACCR1:break;1 q* s; L  e; k5 n
     case TAIV_TACCR2:break;
. z7 j+ ]2 J: k( W     case TAIV_TAIFG:
9 S/ E; H! {) g8 J/ Q6 g     { # y5 ~8 }! j. l! ^7 P$ k9 `$ ]
       Timer_Counter++;: J' [+ g$ U( `& @" y# n# i
       if(((P1IN & BIT5)>>5) == 1)0 i: i1 @" q' r- d" `5 Q
       {' y9 |0 _: \5 s8 \3 f# l
           Fun_Choose = False;  # r4 g. q) M( x/ m' i& @% i' ?& n
       }! S2 v; B1 Y: G+ R, l
       else
. ]5 T6 v" q' x7 u: M8 B( T+ q       {         ) O- Q+ r1 N' P+ o" _" J, H
           Fun_Choose = True;
3 ?3 y0 ?( w3 v' j5 H# j       }1 N" H3 k3 E5 X  |8 j* U# f, E
      
/ ~) ?. q) y: e) ~      
1 m% ^: K) Q  D, [5 G8 J       if(Fun_Choose == True). x& k1 S  i. y9 g9 ~2 i7 f* i9 p
       {, V9 F" n% [& y$ v: b+ e$ ]' a
         if(Timer_Counter >= 11)8 O( `( j7 g1 W  A6 {0 {
            0 ]# k/ J( q: c0 B  Z  s0 z8 p  {
         {
) ?* n. e/ R) P  E) ]: M         
4 N8 a" `% D8 I& {# b1 M4 w            Timer_Flag = 0;/ A2 l5 M4 k' Q9 T
           
4 W/ {  W+ {$ e; @+ l         }
. l' t! m8 f2 i2 D7 H         if(Timer_Counter >= 33)1 n& ]2 |4 Z6 B
            {
7 ?7 T, V) w2 A              Timer_Counter = 0;
: m2 k7 F1 T' q) X4 s              Timer_Flag = 1;
4 k' r1 Q# J0 k5 r            }  
; c1 P' E4 \4 ^9 @3 I         if(Timer_Flag == True)
# W+ j) A& G/ ~" ^  d2 D         {6 ]( H4 n  {) ~2 N
           P2OUT |= BIT6;$ d6 ?- ^+ t; m' w4 a( X
           P5OUT |= BIT4;
! V5 B+ W& B7 X* y         }- {; x2 O- `2 @) |) L' f5 n
         else) H% P! H( D; @! d6 @) B  z
         {: e/ ~, O% }) X0 o$ m/ O* V
           P2OUT &= ~BIT6;8 l+ z$ }! w0 m; s9 z
           P5OUT &= ~BIT4;
! {$ l/ s" Q3 i, i         } & V, G, u0 Q& \1 V" G
       }: k1 d+ j! P) D' S
       else
( s, y: z, d% y1 t0 Q       {
5 N) e9 P( a; X; \         P5OUT |= BIT4;
2 q$ E- H+ ~' Q( t         P2OUT |= BIT6;
/ y+ V1 b# a# f0 O3 s* N       }   2 X7 b; U& T" n3 x! ]
     }# L7 L/ W5 Y  e/ y* H
     break;! _$ \( ^% p; H
   }
' D- f9 M$ [7 P& S}! C' q5 f! r1 E+ {
2 x% Q( L' X* r' w* N% H

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 22:09 , Processed in 0.171875 second(s), 23 queries , Gzip On.

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

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

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