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

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

QQ登錄

只需一步,快速開始

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

單片機(jī)C語(yǔ)言程序問題,請(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)沒有結(jié)束循環(huán),卻執(zhí)行了case12中的語(yǔ)句命令,請(qǐng)問各位大俠,這是何故
2#
發(fā)表于 2011-5-2 18:23:18 | 只看該作者
建議將源程序貼上來(lái)。
3#
 樓主| 發(fā)表于 2011-5-2 18:35:14 | 只看該作者
這是部分程序,前面的程序沒有任何問題,當(dāng)執(zhí)行" |- E+ O( d) U
case 1:  
7 `( m. R6 H# `  x# P        PWM0_0=1;
( g- k8 \( ^' H8 m% R* T9 L4 L- R        TH0=-PWM_Value1[0]/256;+ u; I1 D, O; q9 X! p
        TL0=-PWM_Value1[0]%256;. W! M- T& ^( |0 m6 i4 x
        break;5 C4 ?) l6 v% ?4 X; H/ t
時(shí),break沒有起作用,反而直接到了case 12中的這一步
1 c8 V9 b' v: X8 aTL0=-(3300-PWM_Value1[5])%256;
* Z2 I6 n3 [& \" S/ ^    order1=0;
- o/ }6 z, W) J7 b. s2 M        TR1=0;
6 `6 x; Y8 ^7 ?' ]+ t. ?        break;
. X  {6 {$ B. Q" O  T$ J* A    }+ ^" q, }8 A: e$ w3 ?! N) B
order1++;
4 M  P: M' L/ ^在case12中結(jié)束循環(huán)的: d* h# s1 `+ @8 c& K3 l
/*===================================================================================
7 {8 j3 p0 L( @) ], ~* p% X9 O    定時(shí)器T0的中斷服務(wù)程序
! {3 G9 h+ ~' x1 f    一個(gè)循環(huán)20MS  ≈ 6*3.33ms
$ X$ D9 @% x0 K+ Z, a* s8 t! K( X=====================================================================================*/- }1 o* Q( L) S8 N( {
void timer0(void) interrupt 1 using 16 {+ W" |1 m# z" i
{4 Q, n! j, d" a* Q+ m2 `# {
        switch(order1)$ ]  ~2 g% a, p% F4 V+ @& \
{* t6 V8 l/ [( Y+ Z) P3 k, S' h
case 1:  
- F1 s) h" |4 L6 i  n# @4 G        PWM0_0=1;
. y. H! x! A9 V* x  K        TH0=-PWM_Value1[0]/256;
; a% w8 j" }, W: i8 f" H        TL0=-PWM_Value1[0]%256;
, q, j) u4 ^% d  @1 U9 d; T        break;
8 S3 \5 b/ D/ v5 w9 {case 2:  
* e. f/ T. o8 _7 [2 {        PWM0_0=0;       # U% Z3 X5 M8 M; k& a/ m
        TH0=-(3300-PWM_Value1[0])/256;
6 l. q; n# g0 t# ]! _# s& Q        TL0=-(3300-PWM_Value1[0])%256;
) A: t1 K/ X& B" C3 b8 s        break;6 g& k: R: E! Y4 E
case 3:   , A) G$ ^" M. h  F! c: z: i
        PWM0_1=1;5 l3 ?! b+ r) n6 y" j2 p
        TH0=-PWM_Value1[1]/256;
# _& I: V8 O: o: ~        TL0=-PWM_Value1[1]%256;
$ [! Z' Y) Y7 d4 P  w8 M9 F        break;
* ?9 t- V5 i8 ycase 4:   % j# [' p7 e- d% G" F5 y
        PWM0_1=0;
+ q. g# p6 ~. i9 {        TH0=-(3300-PWM_Value1[1])/256;8 z/ Q7 K- i& R8 L* x
        TL0=-(3300-PWM_Value1[1])%256;
8 Y3 ]. d! d' u* L0 c+ C: a        break;
: ~2 w5 A* A+ Z3 q. s- \9 Y/ w4 ucase 5:   9 U0 a" z7 u8 ^1 k9 b- p. }
        PWM0_2=1;: M' _* m; w' Q- v( R  C
        TH0=-PWM_Value1[2]/256;
6 d- C* z- y  N        TL0=-PWM_Value1[2]%256;
' u/ J' O  j1 }0 R) Z- Q, Y# b, ]        break;
7 ^8 N$ R% t* |, D/ Ncase 6:   4 V9 Z  A" S* B2 @3 Y
        PWM0_2=0 ;  S7 O6 H& Q/ H/ l4 E  e- E
        TH0=-(3300-PWM_Value1[2])/256;
3 x  i7 m' E7 Q; A        TL0=-(3300-PWM_Value1[2])%256;0 x$ {4 H$ i, M7 _8 K& `
        break;& j/ P# `0 a6 F
case 7:  
5 `6 |; i. f- c) s; C2 Q4 q3 w9 K1 @        PWM0_3=1;  S! N' N  h+ h9 c+ J
        TH0=-PWM_Value1[3]/256;
% |4 |6 r: i. L        TL0=-PWM_Value1[3]%256;& Q: |: Z3 l( Q( X+ R
        break;' D) W6 [  L* R
case 8:  
6 v8 o3 b  ]. D/ t        PWM0_3=0;       : O3 j1 E$ m, z8 |  e8 j2 n: V/ S
        TH0=-(3300-PWM_Value1[3])/256;
/ N# }. N1 V; Y' z3 X2 D2 P. ^9 `        TL0=-(3300-PWM_Value1[3])%256;
% y- M7 W, T7 ^/ E! H        break;4 \/ u* [: v9 K* H
case 9:   
( c6 n, M* |1 ~$ o/ D5 N4 @( T        PWM0_4=1;% `6 p8 p/ }  ?
        TH0=-PWM_Value1[4]/256;
+ n" X) A2 ~, t2 l        TL0=-PWM_Value1[4]%256;( G3 V9 h/ V2 Z& u+ N# r1 W  l
        break;3 @, [3 w7 |+ J; h5 Y
case 10:   % q& K. N/ T9 c9 l$ C1 {' g6 G
        PWM0_4=0;
; X. u# [0 o2 }8 W0 t; n8 p        TH0=-(3300-PWM_Value1[4])/256;
% N0 q2 |% c" V% ]1 ~( [% C        TL0=-(3300-PWM_Value1[4])%256;
* Y0 }6 g9 j7 R) M        break;# T( z0 _5 l, V! Q
case 11:   # N, a) R9 @$ E8 J6 x
        PWM0_5=1;: m+ |- Q) r3 ?! b3 {
        TH0=-PWM_Value1[5]/256;) F: ?; O- ]( E9 @6 e( C7 x
        TL0=-PWM_Value1[5]%256;& O% ~8 H" ^) b8 N% p! O$ E
        break;
* M- r, z9 C. O9 K  Ocase 12:   4 w. E6 }5 N- \; L3 e* L
        PWM0_5=0 ;
, C1 |& f: N" ~! a% [* a        TH0=-(3300-PWM_Value1[5])/256;) g) M4 o" b# c5 A! R
        TL0=-(3300-PWM_Value1[5])%256;
; z; I3 I$ u( q4 a( y: u+ x    order1=0;0 D$ h4 I4 R" m! @6 y" S
        TR1=0;
# [2 u% X2 I' M        break;
; [+ W) l+ r7 x3 k    }/ @3 t- H7 v, w
order1++;
  u5 ]* Z1 m/ u6 E" M- z}
4#
發(fā)表于 2011-5-2 18:35:43 | 只看該作者
仔細(xì)的慢慢檢查吧,有時(shí)候錯(cuò)誤的地方不是你想的地方,呵呵。
5#
 樓主| 發(fā)表于 2011-5-2 18:37:06 | 只看該作者
回復(fù) Michael.MG 的帖子
# k5 L) T9 p/ t% \$ H# m
, y* v7 u1 w) D5 a+ S$ r這個(gè)實(shí)在是不明白了,才上來(lái)求教的
6#
 樓主| 發(fā)表于 2011-5-2 18:51:36 | 只看該作者
回復(fù) 無(wú)能 的帖子! ^' T: |, B  x. f3 ?8 K( A2 y% z
2 \& O% I# @/ v/ S! {! f' T5 ?8 a
前輩,能幫忙解決一下嗎?謝謝,程序貼出來(lái)了。
7#
發(fā)表于 2011-5-2 20:19:19 | 只看該作者
本帖最后由 曉昀 于 2011-5-2 20:20 編輯 $ [7 }8 R! C6 C5 n1 b: h
: [4 j7 d6 {  `* t
單步執(zhí)行,看看執(zhí)行到break之后去執(zhí)行哪一步?
& ~! y' y* Q5 x; ~2 Q
  f" P9 ?6 f$ Z5 R很久不玩這個(gè),忘得差不多了。6 q' M8 ^& D( o0 Q$ E
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ù) 曉昀 的帖子( O" G5 \5 A% s! r# }' _5 `" o; }
, c* c. _2 i: k) i+ Y0 k& 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 10:58 , Processed in 0.080714 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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