亚洲欧美日韩国产一区二区精品_亚洲国产精品一区二区动图_级婬片A片手机免费播放_亚洲国产成人Av毛片大全,男女爱爱好爽好疼视频免费,中文日韩AV在线,无码视频免费,欧美在线观看成人高清视频,在线播放免费人成毛片,成 人 网 站 在 线 视 频A片 ,亚洲AV成人精品一区二区三区

機(jī)械社區(qū)

 找回密碼
 注冊會(huì)員

QQ登錄

只需一步,,快速開始

搜索
查看: 5169|回復(fù): 17
打印 上一主題 下一主題

單片機(jī)C語言程序問題,,請教

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2011-5-2 18:13:29 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  我在調(diào)試單片機(jī)程序的時(shí)候,,發(fā)現(xiàn)switch語句中break不起作用,,比如說本應(yīng)該從case11中結(jié)束循環(huán)的,,但是發(fā)現(xiàn)沒有結(jié)束循環(huán),卻執(zhí)行了case12中的語句命令,,請問各位大俠,,這是何故
2#
發(fā)表于 2011-5-2 18:23:18 | 只看該作者
建議將源程序貼上來。
3#
 樓主| 發(fā)表于 2011-5-2 18:35:14 | 只看該作者
這是部分程序,前面的程序沒有任何問題,當(dāng)執(zhí)行
1 J. x) k3 q+ M& ^7 @case 1:  . o9 k2 m6 P& a4 P
        PWM0_0=1;, T/ T0 E. i" W% ~  S
        TH0=-PWM_Value1[0]/256;" B0 N- H" M: D' c
        TL0=-PWM_Value1[0]%256;
' [0 M" U7 h& c9 E8 l* h        break;
+ \  q/ _. |; K2 W3 d; R" |7 s/ \2 Y時(shí),,break沒有起作用,,反而直接到了case 12中的這一步
1 s) F. Z/ ~# g1 ^TL0=-(3300-PWM_Value1[5])%256;1 O1 ]4 C/ P4 Y: }$ a$ Y
    order1=0;1 V* L/ `3 N6 z$ s5 I
        TR1=0;
/ n0 s$ K2 e- E0 l        break;9 U' x* w- m& }/ d$ h! @
    }% ~. A% t5 _# ~* q# U$ }7 {
order1++;
5 A4 o1 z0 S) D) r# w( g在case12中結(jié)束循環(huán)的8 l2 e" H- z( p; g! C/ w7 a& h) U
/*===================================================================================
' a. c) ?9 U* J$ e+ h! _    定時(shí)器T0的中斷服務(wù)程序
6 R  z$ w- y0 x' y9 A, r8 J* K    一個(gè)循環(huán)20MS  ≈ 6*3.33ms
! ^+ e: m$ t) u. i( t=====================================================================================*/; o* w& V6 z) }
void timer0(void) interrupt 1 using 1, Y% w5 n0 _: X# a8 ~& y& ^% f
{
5 J2 @9 H: \9 ~+ {8 Z2 e0 R        switch(order1)
7 I+ C: q# s" `{
( e; A% J' p: L; Scase 1:  ' P9 a; x& W# s. x0 o0 o
        PWM0_0=1;; E/ S1 C# D2 E; c
        TH0=-PWM_Value1[0]/256;
4 c4 ^- ~' {# p  Y5 X* k        TL0=-PWM_Value1[0]%256;+ Z: T# t/ L* [7 k( J
        break;
! T" P3 r  J+ m) tcase 2:  
# \9 M( P( P  {  r. a; `, P        PWM0_0=0;      
% f7 c. ?# g, p9 X& d% P        TH0=-(3300-PWM_Value1[0])/256;  ]5 r& c) q* \9 T; G* f+ U
        TL0=-(3300-PWM_Value1[0])%256;5 t# {3 w& j  R' V
        break;
- h3 q/ A# a+ v9 [- ^, zcase 3:   
6 B/ o# k+ E+ `- ~/ K3 m+ |" k        PWM0_1=1;8 R1 \' w& z# o4 [7 ^
        TH0=-PWM_Value1[1]/256;7 u5 ~" S$ o/ {6 e6 a
        TL0=-PWM_Value1[1]%256;
$ P5 u4 _6 v+ n' I        break;. _/ v  j5 i& j
case 4:   + {7 q6 u+ i2 V% P4 Y5 t/ u
        PWM0_1=0;
) i# V5 s$ p8 }5 j3 Y0 D        TH0=-(3300-PWM_Value1[1])/256;
# k0 R- ^" v$ H6 _& }        TL0=-(3300-PWM_Value1[1])%256;; B6 y" Q+ h7 s5 t
        break;
) N- o% H) B: y# O/ Q6 C6 l* zcase 5:   ! y( i: n, G* a
        PWM0_2=1;
; S+ Q1 u5 o$ ]) M        TH0=-PWM_Value1[2]/256;% _# G: D4 d% r, M. ]$ x) ~
        TL0=-PWM_Value1[2]%256;
3 t, {1 x& T" p! F        break;( r  \4 o& ~. ?5 I
case 6:   2 Q8 @2 m: [% }
        PWM0_2=0 ;0 Q3 R3 d0 L: [6 M
        TH0=-(3300-PWM_Value1[2])/256;
6 N6 }4 o6 y& P0 D( e        TL0=-(3300-PWM_Value1[2])%256;
/ {1 E$ D  ?' p& j- |* e( t        break;( G3 [2 f( ~1 S" ~
case 7:  , H& M: z, H1 D) h7 A7 @
        PWM0_3=1;, ~9 B% f$ P# s* C7 q* T
        TH0=-PWM_Value1[3]/256;
4 ^. c2 B9 K) H" ]# u+ d, N$ O        TL0=-PWM_Value1[3]%256;& W, w% B$ B8 ]( Y
        break;
1 q0 R% z$ ^4 B9 P+ p) e# gcase 8:  * _. c3 }# u2 C! t5 Z: Y
        PWM0_3=0;       3 ~5 t; K. u3 S( [( _
        TH0=-(3300-PWM_Value1[3])/256;
! ~/ k! y' p8 S' b. ?        TL0=-(3300-PWM_Value1[3])%256;
- o) e/ @* _( m# |/ E  f* `        break;
; d  G" g! r# Z4 @, acase 9:   
9 y1 l6 A8 T4 y/ p9 m. `        PWM0_4=1;# B& e- k. n. d& M4 V1 K9 M
        TH0=-PWM_Value1[4]/256;
  [* }$ e& c# [  ?2 `        TL0=-PWM_Value1[4]%256;4 s5 U4 x9 D  O! i. A( `/ l& x% q
        break;% ]. v; G% p2 y: S
case 10:   * A2 r4 b. [4 w! [+ p: a
        PWM0_4=0;3 s+ q; V8 p+ s8 Y' j+ J0 ~
        TH0=-(3300-PWM_Value1[4])/256;
2 W" G# v3 y) W        TL0=-(3300-PWM_Value1[4])%256;. v2 j# R: [( R3 Q2 q
        break;/ Y$ p0 Q6 f1 ^) W' ]  J2 s$ L
case 11:   , X4 O8 G: I7 Q
        PWM0_5=1;1 z+ [0 i" I# ~4 O
        TH0=-PWM_Value1[5]/256;
5 E" A/ Q. R- o) K+ \/ z        TL0=-PWM_Value1[5]%256;
5 E8 `! N4 L5 r. z1 [        break;2 ~6 O6 l! Y1 g% \- S" S6 [' d
case 12:   , e4 {3 T# G3 R/ v4 j3 a. a
        PWM0_5=0 ;
) T3 ^6 O& \8 Q        TH0=-(3300-PWM_Value1[5])/256;8 k$ l+ P5 d  G6 s1 C
        TL0=-(3300-PWM_Value1[5])%256;
9 U7 }) O. G- X2 U3 n% _    order1=0;, @/ G" s5 Q" T* V( D. Y" ]$ k
        TR1=0;  R8 l2 i( [# C0 l
        break;9 b5 j6 A3 P% w: o- Z
    }7 V% {8 w8 L7 Z2 b# \" |1 C6 _
order1++;
2 ^" L  \6 u% {( e$ [  u}
4#
發(fā)表于 2011-5-2 18:35:43 | 只看該作者
仔細(xì)的慢慢檢查吧,,有時(shí)候錯(cuò)誤的地方不是你想的地方,呵呵。
5#
 樓主| 發(fā)表于 2011-5-2 18:37:06 | 只看該作者
回復(fù) Michael.MG 的帖子' f" Y2 J; `0 i4 @; t0 b
, J4 X% ]# Y) ~" e
這個(gè)實(shí)在是不明白了,才上來求教的
6#
 樓主| 發(fā)表于 2011-5-2 18:51:36 | 只看該作者
回復(fù) 無能 的帖子) X, [5 u( u# v* g. b) F8 O
, c% P+ b1 @" S; ^
前輩,,能幫忙解決一下嗎?謝謝,,程序貼出來了,。
7#
發(fā)表于 2011-5-2 20:19:19 | 只看該作者
本帖最后由 曉昀 于 2011-5-2 20:20 編輯
: j( l- W( |/ P6 }; F: n' M' v7 p2 J4 @) V. p; D; F
單步執(zhí)行,看看執(zhí)行到break之后去執(zhí)行哪一步,?% ]/ i. K0 R7 }8 m( t

$ ^; k; |. J) o/ q很久不玩這個(gè),,忘得差不多了。
! @5 d2 F" n1 [% T
8#
發(fā)表于 2011-5-2 20:20:46 | 只看該作者
問題原因可能在于switch(order1)的order1參數(shù)是局部變量,在timer()函數(shù)里沒有被賦值,,因此數(shù)值是多少是不確定的,。建議函數(shù)void timer0(void)應(yīng)該使用參數(shù)傳遞機(jī)制,每次調(diào)用timer()函數(shù)時(shí)應(yīng)該將order1作為參數(shù)傳遞給該函數(shù),,函數(shù)結(jié)束的時(shí)候返回order1++的大小。

點(diǎn)評(píng)

謝謝  發(fā)表于 2011-5-2 22:43
9#
發(fā)表于 2011-5-2 20:24:57 | 只看該作者
PWM是什么意思,?有個(gè)問題不明白哈,,如果PWM0_0,PWM0_1,,PWM0_2,,PWM0_3,PWM0_4,,PWM0_5同時(shí)為0,,執(zhí)行那個(gè)case?
10#
 樓主| 發(fā)表于 2011-5-2 20:32:17 | 只看該作者
回復(fù) 曉昀 的帖子
& n& ]8 l+ ~  ^7 G4 W" b
) H: A$ S0 _$ O5 O就是單步執(zhí)行的,才知道跳到case12中去了

本版積分規(guī)則

小黑屋|手機(jī)版|Archiver|機(jī)械社區(qū) ( 京ICP備10217105號(hào)-1,京ICP證050210號(hào),,浙公網(wǎng)安備33038202004372號(hào) )

GMT+8, 2025-2-21 04:49 , Processed in 0.055554 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表