人妻暴雨中被强制侵犯在线,亚洲国产欧美日韩精品一区二区三区,四虎影免看黄,国产无人区二卡三卡四卡不见星空

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5441|回復(fù): 17

單片機(jī)C語(yǔ)言程序問(wèn)題,請(qǐng)教

[復(fù)制鏈接]
1#
發(fā)表于 2011-5-2 18:13:29 | 只看該作者 |倒序?yàn)g覽 |閱讀模式
  我在調(diào)試單片機(jī)程序的時(shí)候,發(fā)現(xiàn)switch語(yǔ)句中break不起作用,比如說(shuō)本應(yīng)該從case11中結(jié)束循環(huán)的,但是發(fā)現(xiàn)沒(méi)有結(jié)束循環(huán),卻執(zhí)行了case12中的語(yǔ)句命令,請(qǐng)問(wèn)各位大俠,這是何故
2#
發(fā)表于 2011-5-2 18:23:18 | 只看該作者
建議將源程序貼上來(lái)。
3#
 樓主| 發(fā)表于 2011-5-2 18:35:14 | 只看該作者
這是部分程序,前面的程序沒(méi)有任何問(wèn)題,當(dāng)執(zhí)行0 u! e& @) V/ c
case 1:  8 b' C" ]. H2 ^, c' N, G0 Z5 C
        PWM0_0=1;& h3 c: t; ]( N8 F$ C* i7 {
        TH0=-PWM_Value1[0]/256;2 x  U/ {" n# x
        TL0=-PWM_Value1[0]%256;0 A/ c) ?1 T! C( a' c- b
        break;, \" M, w7 o; W- f" C5 W/ `+ W
時(shí),break沒(méi)有起作用,反而直接到了case 12中的這一步
! p3 a( Y8 R7 n) hTL0=-(3300-PWM_Value1[5])%256;
. N" c: k$ r  ^    order1=0;4 A/ F7 v0 q7 V) h7 l0 x
        TR1=0;
8 f  }" a( V2 w5 `: x3 _! L        break;/ b) e3 }# b- i3 `' M5 B; U; R; O! R% |+ m
    }
# N. z* H) E7 \. H$ x' N3 W! oorder1++;/ C7 X5 K; I+ ~8 A! Z7 _& M9 c
在case12中結(jié)束循環(huán)的
  U: M4 a! w3 w4 A/*===================================================================================3 v" H" P- q* Q! I' U9 t. `
    定時(shí)器T0的中斷服務(wù)程序
' B3 G2 a, C: T1 G% W3 n    一個(gè)循環(huán)20MS  ≈ 6*3.33ms
* @) [" Y1 O# I# s" Z=====================================================================================*/& @& Z$ i& p* x9 r
void timer0(void) interrupt 1 using 1' |- Q' ]5 @4 V# b# |
{
$ S* L% P/ j+ |0 D- e+ b6 K        switch(order1)# _1 k+ s8 \! d8 L! D; K
{
  b/ C* y/ a# }) {case 1:  
- L* N* G1 I4 b1 F7 i! v2 [- g        PWM0_0=1;
( w! o5 @' f0 D        TH0=-PWM_Value1[0]/256;
# `; n7 U% o1 h0 ~& y! \        TL0=-PWM_Value1[0]%256;2 Q9 H! P( }' Y: C: H. H2 X
        break;: T, V, g8 k9 X  x# w1 b( O
case 2:  ( ^- v( H' k1 Y# o; u2 x0 E& q
        PWM0_0=0;       5 a& r; r, V/ W. B- j2 i9 I# s+ E- ]
        TH0=-(3300-PWM_Value1[0])/256;
' }1 x! ]4 x7 H! _* J& X, Z        TL0=-(3300-PWM_Value1[0])%256;, p$ o. d, g. Z) x. L2 @
        break;
! f) m, k) f+ vcase 3:   , y/ ?* n1 @; u
        PWM0_1=1;8 n5 X' u" o6 F
        TH0=-PWM_Value1[1]/256;
# w! A) @+ z/ d+ D        TL0=-PWM_Value1[1]%256;. Q# S$ R) `5 B! f
        break;
$ V" [# I6 S$ c. {# F5 n& lcase 4:   4 v- _! K  o( n' k
        PWM0_1=0;5 j$ m- S7 y5 @, ?4 p9 A! v' r  \; ^
        TH0=-(3300-PWM_Value1[1])/256;2 \: c# X- B% F4 P) T7 i2 S$ u
        TL0=-(3300-PWM_Value1[1])%256;
4 I- ]! J9 C; J  r4 C9 d4 K        break;
. I8 C" D  z' wcase 5:   
& d2 N! X- E. b* A/ d9 V        PWM0_2=1;" O9 J# ?6 ^- e, M
        TH0=-PWM_Value1[2]/256;
6 O1 N" `! m# O        TL0=-PWM_Value1[2]%256;
: G+ K9 @1 @3 R6 I; g3 \7 h        break;
+ i7 b. ~) d- P' b: P6 |case 6:   ( l( K/ |6 x" I$ N+ d* i0 U
        PWM0_2=0 ;8 B$ |  s' C3 X  D- _& Z
        TH0=-(3300-PWM_Value1[2])/256;' N# G8 ]& R5 L: I) e) J
        TL0=-(3300-PWM_Value1[2])%256;5 ?; Q: d, d( _" I4 _8 H9 S$ I& c+ h  X7 u
        break;
- E( W8 ^- h5 d* C! k; L$ Hcase 7:  1 I1 f* y+ R, s- E% [
        PWM0_3=1;
7 h0 [9 j- D9 a0 R; f+ R& o4 o: l        TH0=-PWM_Value1[3]/256;! ?) E  ^; }' v' S4 t& G3 k
        TL0=-PWM_Value1[3]%256;8 h8 M/ k/ q. J+ n8 x5 w- |- H
        break;
; [6 o- U% A7 G" ycase 8:  
. O5 c" i& a- K" }, E        PWM0_3=0;       & \" V1 Q+ A; q+ N2 `' G. C. {
        TH0=-(3300-PWM_Value1[3])/256;5 X, g1 i; e$ Z* ~& l9 X- g6 e
        TL0=-(3300-PWM_Value1[3])%256;
. w& b/ c9 W9 m9 l2 f' R# G        break;, W+ q* j+ m2 M' s; X6 O
case 9:   , G" w1 d" S( i
        PWM0_4=1;* Q4 c. O/ o; P9 q9 w/ y
        TH0=-PWM_Value1[4]/256;
, ^5 t# ~# n- q        TL0=-PWM_Value1[4]%256;* r) F: H: Y/ D
        break;
8 s- }6 r4 H; s, L& {# G( e# M. _case 10:   
! \6 k" _4 T. `- B. p/ z9 e        PWM0_4=0;
6 Z, D% @: E* ~8 U% F+ i        TH0=-(3300-PWM_Value1[4])/256;
+ m: u1 c2 _: u) b" S8 p6 V        TL0=-(3300-PWM_Value1[4])%256;
2 [# e) {$ S1 C1 w5 S        break;0 O1 K; B# `- c8 U7 y2 z
case 11:   
5 C8 G+ H7 S! ]3 K  J9 R( ?% A        PWM0_5=1;
9 |) s$ J1 |) {        TH0=-PWM_Value1[5]/256;. F3 J7 p( }5 \$ U
        TL0=-PWM_Value1[5]%256;; f( J. [  _0 [* j0 r
        break;
! A7 \" |: r* v" U6 v6 J' R5 kcase 12:   # H) @& q# q, F; o7 G0 k- {
        PWM0_5=0 ;4 A  R: e5 y9 w
        TH0=-(3300-PWM_Value1[5])/256;
2 h( d3 ~6 H- v7 C3 t% ^2 |$ v, u        TL0=-(3300-PWM_Value1[5])%256;, V; P; v3 F) K# G3 A) P
    order1=0;; a# P$ ]5 h7 Z; i
        TR1=0;
/ j- K  Q9 c" U' _1 ]        break;
! o' \: `4 K) q7 y6 n/ u) W    }
; P6 |; }! ?; xorder1++;
; X+ V* _3 N' m7 D}
4#
發(fā)表于 2011-5-2 18:35:43 | 只看該作者
仔細(xì)的慢慢檢查吧,有時(shí)候錯(cuò)誤的地方不是你想的地方,呵呵。
5#
 樓主| 發(fā)表于 2011-5-2 18:37:06 | 只看該作者
回復(fù) Michael.MG 的帖子
+ i' y3 K& p2 e% ~% a) L# G9 b8 H9 t9 Q1 q& v, q2 s
這個(gè)實(shí)在是不明白了,才上來(lái)求教的
6#
 樓主| 發(fā)表于 2011-5-2 18:51:36 | 只看該作者
回復(fù) 無(wú)能 的帖子; N/ e# ^# ~3 o( y

* e  d( d) H  C5 g, \' P2 m' a+ N前輩,能幫忙解決一下嗎?謝謝,程序貼出來(lái)了。
7#
發(fā)表于 2011-5-2 20:19:19 | 只看該作者
本帖最后由 曉昀 于 2011-5-2 20:20 編輯
4 s* M$ T% L* n, Q* N* n
3 N5 G) _7 \% X6 N% |9 j單步執(zhí)行,看看執(zhí)行到break之后去執(zhí)行哪一步?. F. f' q# `6 M; |& R

2 k" [: k  W8 a/ L8 M* @很久不玩這個(gè),忘得差不多了。
* Y9 \" s. N1 U; s# J. y4 n
8#
發(fā)表于 2011-5-2 20:20:46 | 只看該作者
問(wèn)題原因可能在于switch(order1)的order1參數(shù)是局部變量,在timer()函數(shù)里沒(méi)有被賦值,因此數(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è)問(wèn)題不明白哈,如果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ù) 曉昀 的帖子
) E2 R, u0 N& g. k" R% R* I9 f6 W& a4 n" ~% R% S7 o# Q6 O7 v
就是單步執(zhí)行的,才知道跳到case12中去了

本版積分規(guī)則

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

GMT+8, 2025-7-19 17:35 , Processed in 0.081232 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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