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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
想通过程序实现闪烁功能,不使用看门狗程序很容易就跑死了,现在还不明白看门狗怎么使用,请大家能够指点
& j6 b0 t1 ~, L$ E# {) d% Y, f4 J#include "msp430x14x.h"
7 @0 s' W/ ?) r, H; M* I3 I$ i#define UINT8 unsigned char( G+ j; G% h+ ?$ o
#define UINT16 unsigned int2 j6 ~5 e5 p6 F1 X
#define False 0
( @5 E, }* @) ^! V#define True 1) R! c- Y, H# V3 [/ n: e; q4 P4 v
! S" ~0 T! E& F: Z2 H0 R3 d
UINT16 timer_Counter = 0;  |- }* _! r; ^3 H, C6 e
UINT8  Timer_Flag = False;/ X* G# Y# o6 Y" c0 P! n
UINT8  Light_Start = False;5 `0 A& v. P: t& z: P
UINT8  Fun_Choose = False;
! f: M- ~4 `5 h4 d. Z0 W! X9 E* a8 f7 _4 J3 n2 O) v
/***********时钟初始化函数***********/
$ n' G" i. u, w9 A1 pvoid clk_init()
* Z: q0 |- Q7 S6 I* S0 a$ h{0 |, d& U2 P6 f! U  t1 X+ b% m
  UINT8 i;
% b( L0 k. @: a' g3 ~  R) @- U2 q  BCSCTL1&=~XT2OFF; //打开高频晶体振荡器
) M3 ~1 ]  F5 b, R* ]% |  BCSCTL2|=SELM_2+SELS; //MCLK和SMCLK都选择XT2,8MHZ
# g! s( k, a% h# m! g3 K  U    do
( G# m% b' k: l! `2 J    {/ L. j5 I# @( _" v, a
      IFG1&=~OFIFG;   //清除振荡器失效标志7 r7 k* ?9 R, n% a% D
      for(i=0xff;i>0;i--);  //延迟待稳定
" v* p" }; P. J  q* J- q       $ B) e  O: @1 A$ [, d
    }
, `6 v& r: F3 _2 H) P   while((IFG1&OFIFG)!=0);- b( x' q5 u9 Z( a
}   3 H+ w+ ~# ^$ G/ ^) D/ a. ], w' d
   
) q' I2 n% `2 \' B# vvoid GPIO_Init()
2 ]0 a2 |+ S6 H# S1 g{
; p- h5 i! [& ^8 G8 w  P1DIR &= ~BIT5;3 R. s( {3 S2 M4 F
  P1OUT |= 0xFF;
$ g% Y7 o8 g; s4 d9 e) V  P2DIR |= BIT6;
0 g8 @# y. h5 e9 N  P2OUT &= 0x00;+ v5 D; J0 Y2 r8 K+ T
  
* ?$ t( Z- i( W* [  P5DIR |= BIT4;5 D7 N. e1 c- |$ J" s
  P5OUT &= ~BIT4;  2 N" p* J  Q: h
}
2 {0 E" _1 e  |# \1 W0 m% U/*****************TimerA_Init*******************/- Z" U) }2 c+ ^3 l" R6 f
void TimerA_Init()7 x" o; w* I. k* t6 ?
{- e6 P& N, @& r2 L4 K" n
  TACTL|=TASSEL_2+MC0+TACLR+TAIE+ID_3;
2 H5 S% K* G6 |1 G& O% b5 V7 @  CCTL0 = CCIE;
/ [5 O" X% }. v) b% d0 b8 D7 a  TACCR0=29999;  ^3 ^/ L$ v! }5 p" k- a, s
}
. y+ P# t. k  ?. e# L: g* {& |//******************************************************
8 I, i$ {" _8 `; O7 ~; R% v//352微秒延时程序/ H0 v# H" i  A
void delay_352us(UINT16 i)//352us延时程序
3 N- p& q! p* j: j5 z$ Z{9 s8 v8 _$ d" t
  UINT8 j;
: G2 r( p& K# p' k, w4 r5 k  while(i--)2 F/ w( x- _" ?2 C
  {* R0 X) i# b0 P1 E& t' y
   for(j=0;j<255;j++)5 e+ Q; u; O9 }8 M" X  t4 n! A! ]# L
   {  ! j$ O; e; @, [5 u9 x  `
    _NOP();. U$ i( j) R9 ?' S9 X) _+ n
    _NOP();
, k) i/ Q2 I- u( @: t$ F4 C- b    _NOP();4 _/ E) H2 ?! c5 d* z( M
    _NOP();   # Y! u; T: s( F4 g: h$ f4 ]5 d
    }
" B8 v3 G/ b) u: a  }   R: m: P% J. ~/ b
} 2 T+ V9 W! k: J) O. J) R
+ _1 H$ J$ y& L3 F6 R, F2 |
/************************************************/
$ G4 V! z& n$ U6 ]) u! `9 |/*                   主函数                     */
) m1 I6 }, f+ L/************************************************/
8 X# F$ T5 v9 E5 V0 t. P! tvoid main(void). X/ F  |4 i% {* g0 e
) y" F6 s$ M0 x$ Z8 \7 p
{& j7 d: I$ u# C3 ]5 c2 H* f

4 U; }# Y! {, o1 F0 ~//  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer. P- O! e1 _$ z. K
; E; V! f) s! H1 d5 S
    WDTCTL = WDTPW + WDTCNTCL;* ~8 J, F3 ?* k" C2 m* z5 e+ D. f

- l! @$ x: I  ^6 N. J) I    P5DIR |= BIT4;                            // Set P5.4 to output direction
9 P" ?. R5 x; W; o    P5OUT ^= BIT4; , |1 Q) k. L0 H+ b' _
    clk_init();
3 E: B% z& L3 h3 X  
2 d+ b- T1 d8 Q' g    GPIO_Init();" m: P0 ?4 P1 A+ r% }4 g' O6 p
   0 K4 o5 f: l; y0 n
    TimerA_Init();
/ a1 i$ \! s% t& j# v
0 f% E5 P+ e4 L( s6 t: S. T5 U$ K3 _% C' k    _EINT();7 ^% m% W: n& F/ ?0 u
    LPM0;                       
" b% g3 r9 z6 J# ~    WDTCTL = WDTPW + WDTCNTCL;
( l" @/ a* N7 ~5 |* c$ b. V* n4 C% `& N& p& \

3 Y" X3 |! s5 _, a& z! }
( ]4 t( c/ Z6 t2 n$ L}
& M6 E5 `5 M/ K" m" R
9 u9 y' P( O3 N/************定时器A中断函数******************/9 {8 s1 v4 {/ a! E+ _
#pragma vector=TIMERA0_VECTOR$ w$ U  M/ K5 [/ `6 V! F0 A; b$ D
__interrupt void timer0()) K9 T; Z& V+ [) f) S6 ~: t
{
# S- U. o% U( W' Z# _   switch(TAIV)# r7 H* o) ]: F0 h. m
   {
! m* \: x, L& e3 N) v3 h' V     case TAIV_TACCR1:break;9 B1 h! l$ V& @; E4 h1 Y, w2 ]
     case TAIV_TACCR2:break;
. F; v+ T# _# i1 H     case TAIV_TAIFG:
- [; v8 w& I& ^7 Y, |8 N     {
/ N- R8 m2 g5 ~# C/ J# k+ ?& a       Timer_Counter++;
" c" ?& Q' f# N2 g' J2 S+ z       if(((P1IN & BIT5)>>5) == 1)
. ^1 V  l; X, [8 x" }       {
' ~6 c# ]; k& G7 |1 `* G' y           Fun_Choose = False;  8 S  F2 w# a- N+ J+ C( }* m
       }
4 ?- @& n! }, e# O& D; s% q4 N       else& j( N# T/ y1 W) c
       {         ; I! {1 Z; _( X% E+ v( T
           Fun_Choose = True;- c2 J0 _8 Q, x
       }
. M0 A% r, F0 `/ e% q9 L3 L      
3 M# f2 {: }; L7 V! \       ! h4 f7 \: s4 [; S* T. f* h
       if(Fun_Choose == True)
4 Z  z. `' S" ~' q( R       {
# H" V( i7 ?! B. c2 R         if(Timer_Counter >= 11)
1 @1 H( e6 w) X- Q0 S3 U            
( ^7 f. }% r5 f. u         {( K8 F. ~2 }8 g, ~; F
         
% F8 ~: G6 B$ T! I! Q) t( \7 V5 C            Timer_Flag = 0;
+ u! B$ r; z' j, Q; ]  F# d; p           4 n5 k9 f0 {9 v
         }
, c# ~( ^# q& V3 v' K/ f7 x* a( Y* ]         if(Timer_Counter >= 33)
# i) C/ z, y* Y6 p3 y/ o            {' I, N3 C) ^+ i2 R/ L& l
              Timer_Counter = 0;7 E9 @$ t5 T$ i+ m+ y
              Timer_Flag = 1;
0 ?: p5 [  p+ L0 A! @$ X            }  " G0 l7 A0 D. u9 ~8 X. j) ]5 u
         if(Timer_Flag == True)
0 @0 V. h( k0 p7 p/ m* X         {
' x( F& {7 ^( e) r5 w           P2OUT |= BIT6;6 ]( m; ]3 k; u3 Z1 N' w
           P5OUT |= BIT4;+ ?( e& s5 J$ e4 ]
         }
0 G; [* S6 }, X1 h: Q7 y         else
- l9 f/ f7 c' G: C9 R0 L1 ?8 W+ F         {, C6 @- [5 |7 U( C. o7 c" T
           P2OUT &= ~BIT6;8 k" [+ F- ?8 B2 }
           P5OUT &= ~BIT4;7 `8 y6 ^8 |6 Z% w! p/ o' ]& z
         }
: M) P6 @- e: c4 X. y  `3 g       }4 I1 E8 P0 n+ k8 d9 ]2 D
       else
& y( A2 F( S, V; I. c8 |       {) I/ _: s9 [6 I( f& q+ q: u
         P5OUT |= BIT4;# E# K3 z+ D9 |  H5 E5 ^3 i- q9 _
         P2OUT |= BIT6;
+ z4 l& z+ I9 ]; v) ?       }   ! q  S+ G) d  C
     }4 W& ]4 q" M% G2 d
     break;
9 R, [- b' |0 |5 ]   }7 M, y. G. y, x( K3 r5 ?$ F* }
}+ A* s4 A$ z+ a/ w' P# B
' N$ X! S9 ?) S- z

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-21 05:32 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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