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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
想通过程序实现闪烁功能,不使用看门狗程序很容易就跑死了,现在还不明白看门狗怎么使用,请大家能够指点. P) K! g1 ^% Z9 M4 |+ X; o) l
#include "msp430x14x.h"$ ?: Q) m: @! ]( K  J9 N& m
#define UINT8 unsigned char" s$ a" U2 T# y' K, L' V/ S
#define UINT16 unsigned int
0 o8 F* S0 ^9 e#define False 0- U2 Q' o; Z, L- x/ q7 Q& I( U
#define True 14 z, l" ~) A: k: W+ T7 P. j
0 L2 Q% |: u0 v6 Q5 h
UINT16 timer_Counter = 0;# p: O8 I) R6 V2 t* G! O0 B; I: \1 n
UINT8  Timer_Flag = False;
0 X1 O% p4 s: a  a8 [UINT8  Light_Start = False;
* H5 s/ |8 K3 H- M/ F7 j+ d0 jUINT8  Fun_Choose = False;
- `8 b9 @, f! w8 }5 [9 a6 D( r* M" }& J
/***********时钟初始化函数***********/
7 ^3 @% k* Y- ?1 c' H$ |9 Qvoid clk_init()+ w2 R1 @% ]; e* r+ n! b
{: k/ Y& R7 ^6 k5 E% g' `
  UINT8 i; 2 M  I6 ^  g: b/ i% m: s
  BCSCTL1&=~XT2OFF; //打开高频晶体振荡器3 m1 Y; s9 p3 Z% l" K. D7 K
  BCSCTL2|=SELM_2+SELS; //MCLK和SMCLK都选择XT2,8MHZ
4 V4 K( f0 }* @9 ]4 Z    do
% O/ O4 T( E% d! ~2 j. `2 v    {
9 O: r* P7 T9 T& d9 @+ c1 U      IFG1&=~OFIFG;   //清除振荡器失效标志
) i/ R: I" Z. ^: J+ T2 g2 U2 P# n      for(i=0xff;i>0;i--);  //延迟待稳定
" C, G. ]( F! X% m  ]! }      
2 h( `9 b1 X) K( o0 I. _    }
# O' W4 K: ]% w- {6 v! U5 }   while((IFG1&OFIFG)!=0);3 |, G) q! [  D+ |1 Y# a6 `
}   % |9 {! x# @1 I. \+ X0 l5 R
   
6 f8 t' r! M+ r8 Z, S* |; X+ U& Wvoid GPIO_Init()( ]5 D9 Q! A8 h8 S; c2 V" E6 S5 b
{
# J3 B# D! {6 u  P1DIR &= ~BIT5;+ P8 x' g% A+ D" E# l, R0 p' a  a7 E; w; U
  P1OUT |= 0xFF;* Z7 ^5 I+ t, C: c* i: ~7 ^. D
  P2DIR |= BIT6;7 l8 |! I$ f0 M" O: i( I0 u& Y
  P2OUT &= 0x00;
  `% s( L0 L+ V3 v+ y! U$ f  
7 f7 G# [% m/ j4 A8 O  P5DIR |= BIT4;
! K7 v# V: l- {& I/ |  P5OUT &= ~BIT4;  ( ^' x! ^" c- J
}# V) E* e4 d3 v) R& H1 F
/*****************TimerA_Init*******************/3 [- Y( f, {, I) Y" {
void TimerA_Init()3 ]( ~& G0 z& c9 z
{
" t1 F2 a* ^: L' }6 @. J  TACTL|=TASSEL_2+MC0+TACLR+TAIE+ID_3;, m9 ^, A1 d6 k$ |$ u* _
  CCTL0 = CCIE; 1 X* ]# u0 y# B. |' j
  TACCR0=29999;
* F' R& o# U/ e& W; ~& s}' b; l& Y! N+ y# S6 X' A
//******************************************************0 Q& w: i8 C7 F: Y' q4 Z
//352微秒延时程序
) [' F- Y. ~1 |6 Y0 Jvoid delay_352us(UINT16 i)//352us延时程序
+ h# b  i2 s$ J7 t8 A9 S2 z  H, [; B{
% l) \2 l( S9 D7 E; V8 K, a6 F  UINT8 j;# M  @" J$ s, i) Z$ X6 ~- S6 H! |
  while(i--)
) r( f3 ]: g4 J: d+ w0 ]  {9 A/ G4 d- h- Q7 F
   for(j=0;j<255;j++)
4 `, }* ~$ Q3 d) Q   {  & X  H7 _1 `0 N: J# |
    _NOP();' T, _/ T& ^$ K  \4 }6 j- S) ~
    _NOP();" r1 G6 R1 h; P4 q( j% M5 ]
    _NOP();
; X+ q' @9 L, `9 b    _NOP();   3 ~# w* X  {2 H5 ?. S2 ^
    }/ m2 f  k2 Z' t6 I9 ]
  }
' V' W' \7 M: b4 c}
# {+ k0 \, l6 m9 v1 \6 o0 m) h% }) F6 f6 |1 ~3 Y6 g- c
/************************************************/
- y8 S8 v4 F9 x  _2 w+ ]' k$ Z/*                   主函数                     */9 G# ~: R7 z+ G4 y3 X
/************************************************/4 d+ `+ f* t) V2 b1 t" `( J% N
void main(void)$ o; j+ O2 b! l; d

6 a7 b$ J4 h+ E. h{
; F: u- t" C1 A
) K5 R& R1 {" j5 h6 Q# G) G3 Q//  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer) B0 |5 I1 l8 T7 D
" Y# y9 I5 b# ?0 v1 F
    WDTCTL = WDTPW + WDTCNTCL;
2 S+ S; Z$ O. K9 u5 c$ k
$ f8 s# J+ m# ]    P5DIR |= BIT4;                            // Set P5.4 to output direction
0 R$ n0 B* b9 c, S+ N    P5OUT ^= BIT4; 2 x" i8 |7 S. c/ Y6 A6 V+ m' s9 j
    clk_init();, `& z7 c2 k% ?: y2 y! ]( p
  * P5 U3 f, W5 }: ?5 [
    GPIO_Init();! c, |% s4 _- b9 E* D/ O
   
# |# ~6 u# X0 G    TimerA_Init();) i# I4 \( G' Z; i1 V2 s
  }1 x+ S8 \: Q% |$ ~4 I  S
    _EINT();. Q/ v+ ?/ L, ^3 r9 F& @
    LPM0;                       " y) Q/ f7 t) _- ~$ f
    WDTCTL = WDTPW + WDTCNTCL;8 b) [1 g& ^! z  d( I' O5 X  |. ^2 C; {
5 J3 `7 j# ?/ t6 R8 J
, ~- E& h" A1 I) t
: [  U4 O5 [# V: a! ^9 J: a  {
}4 m2 U) {0 j8 x+ I9 v$ I, ]

! u% T5 O8 j- E( P/************定时器A中断函数******************/% Z7 @7 x- i( K- u/ o0 `
#pragma vector=TIMERA0_VECTOR
( U) c# X% U) w* b5 R/ i__interrupt void timer0()% V0 F* x2 m$ ~- b8 t
{
# j4 X3 s5 |3 t: h$ k" Q, X   switch(TAIV)
% n* G2 t, g$ G% u$ F6 F& h   {
- H3 O+ d9 v8 L  P5 g% X& q     case TAIV_TACCR1:break;  A* r8 d- [9 a5 q
     case TAIV_TACCR2:break;
2 ?2 V3 ^) f' T- z4 s     case TAIV_TAIFG:
9 j$ \$ d3 c& U     { 2 V& o. ~( M$ ?; ~% p8 M- A" O
       Timer_Counter++;, T) K8 ~# t6 Y: V; ]  c) a
       if(((P1IN & BIT5)>>5) == 1)/ E2 I' J; o5 v: b
       {
+ B4 b: U! x5 \! n3 ~6 Z           Fun_Choose = False;  ' Q, r) t" z. D
       }& x$ t$ q$ \* I1 o
       else
% p# U* h' ^$ e2 [" e7 F       {         ) d7 K4 J$ O3 j1 u7 n1 ?
           Fun_Choose = True;  c" V9 j5 Q5 V4 _& K, Y9 M
       }$ ^9 I+ Y* `9 g6 _5 B3 H% C
      
0 j1 L9 l' r/ ?. C% |      
# Z2 x, \! i4 q; X       if(Fun_Choose == True)
$ G8 U' F0 r7 b' m       {8 ^0 J. |! M/ X7 v* L
         if(Timer_Counter >= 11)1 e5 R4 K) T2 O" y2 n- @
            % q6 i5 h) ]1 [! f& i
         {' H" x: _* J- _; s
         : L* z1 t: g- h4 `+ k- P
            Timer_Flag = 0;5 Q( t- k9 c/ _$ [0 V
           , p  m' B3 k0 L5 C* f% r! p3 y
         }
8 F8 x* B4 @2 @9 P5 g$ Q         if(Timer_Counter >= 33)
: J* A7 H( {6 U* b1 G* T( Z/ C& Z            {
) k) k& A' t; \              Timer_Counter = 0;
! {& m9 `+ e& P( r! T* ]              Timer_Flag = 1;
" ]2 p1 r, Y7 d: k2 n7 N9 I            }  $ q: Z5 ^& x* c% N, G
         if(Timer_Flag == True): @' i( P$ ]* v  l& c8 h& I
         {* \; M# ~2 L& D! D. [) |+ ~
           P2OUT |= BIT6;  L: z, Q) [% \) h# q
           P5OUT |= BIT4;8 c; x: K. |" ^! f1 m
         }: r; t, N* g8 G# ~
         else  Y) V- K( ~$ v9 G. g
         {
8 r( n) U8 D) f) O+ k5 y" h           P2OUT &= ~BIT6;
4 U+ _. M0 ]: M# w, w+ H           P5OUT &= ~BIT4;/ H( K4 Z/ k) c& H% d2 ^
         }
& G, J% f* k; Q/ A       }& c2 \2 w& ?. i+ l6 |- ^0 ^0 f
       else
6 V, I9 H& Y4 j9 `( |5 c: h       {- ~$ P/ i0 G' o
         P5OUT |= BIT4;
; v# \/ b  c. a& l2 \8 p2 p, L         P2OUT |= BIT6;, Y: i" ?* D: p# O. [1 ?! b
       }   ( I; a% y! B2 v* ?
     }
) }% z9 g. j  N+ S     break;, D1 B" D) p1 C% v% E' H& x% Y7 n
   }
/ A/ Y/ o! _1 h, _" E7 ]2 K2 M}( _+ X& J8 {$ L
' b3 T  l+ u' T  G+ V

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 19:53 , Processed in 0.218750 second(s), 24 queries , Gzip On.

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

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

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