久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

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

QQ登錄

只需一步,快速開始

搜索

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

[復(fù)制鏈接]
11#
 樓主| 發(fā)表于 2011-5-2 20:41:27 | 只看該作者
回復(fù) metalstorm 的帖子3 m+ f  s. a$ T2 K/ y: q! l
+ I) G# N3 ~5 t, j3 s" K
額,不好意思,沒說清楚,在主函數(shù)中已經(jīng)給order1賦值1了
12#
 樓主| 發(fā)表于 2011-5-2 20:43:34 | 只看該作者
回復(fù) robi 的帖子
, c5 f2 M  I6 J2 {. Y% a0 q
5 @# x& f7 q2 S9 |0 z& [' d8 S0 d額,那個(gè)是switch函數(shù),和pwm沒關(guān)系
13#
發(fā)表于 2011-5-2 20:52:18 | 只看該作者
回復(fù) 三月的暴風(fēng)雪 的帖子
! k" m7 R* {# a0 ~, t+ u1 q! G. a0 b: Y& i9 ^4 i0 q
OOP編程思想一般都建議子函數(shù)使用參數(shù)傳遞機(jī)制。當(dāng)單步執(zhí)行到case12時(shí),能否通過編程軟件的調(diào)試功能查看timer()函數(shù)中的order1變量的實(shí)際值是多少?最好在order++語句前增加一個(gè)輸出語句,將order1打印出來,這個(gè)值才是千真萬確的判斷條件。如果order1不等于1,能排除不少可能因素。
% ^$ M" H# ^5 h6 }. g2 i
14#
發(fā)表于 2011-5-2 21:01:06 | 只看該作者
回復(fù) 三月的暴風(fēng)雪 的帖子  g) ]9 ^0 c! |, ^
# ^% K) a5 C* l8 x
               嗯~看懂了~
15#
 樓主| 發(fā)表于 2011-5-2 21:41:59 | 只看該作者
回復(fù) metalstorm 的帖子1 c( P1 S$ l& p" i+ G1 y
! g& Z) {2 Y# D
嗯,按您的方法調(diào)試了,在執(zhí)行order1++之前一直等于1,直到執(zhí)行完order1++之后,那個(gè)就是跳到TL0=-(3300-PWM_Value1[5])%256;    order1=0;# W; C2 l5 y/ w! n. {+ F  c' B
* Z8 u$ ]2 [- n: n+ K" ?0 _: F
TR1=0;
' _, s0 U/ ^0 U/ T- f+ ?& \/ I1 ^: S0 D1 g$ X* ?
break;
0 b3 @0 D* d; X, h: X4 _
9 c/ O5 N% U; z+ h; Y相當(dāng)郁悶; Q- @+ x2 U5 l1 K
16#
發(fā)表于 2011-5-2 22:11:59 | 只看該作者
不太明白,學(xué)習(xí)了,
17#
發(fā)表于 2011-5-2 23:19:30 | 只看該作者
建議將timer()函數(shù)改寫為參數(shù)傳遞機(jī)制:
+ F7 T; j, z5 r2 a9 e  Hint timer0(int par)/ [7 q$ v5 p4 m. G% m1 B6 ]; u8 [* v
{' e  u4 Z8 z4 |
        switch(par)- T* [& v4 L% Q/ h$ c1 O
{  b: t1 _4 `: M& J4 i
case 1:' W. \* g7 v5 p: \6 T% `
...
. j9 l7 D. l0 \; d+ b...
0 L2 R( L) ^8 V# w4 c3 gcase 12:  5 D% r/ x2 X/ ]1 B: A9 i
        PWM0_5=0 ;% [1 G! d! Y# w, o2 h7 ?
        TH0=-(3300-PWM_Value1[5])/256;-8 Z/ P8 P' |( m3 P  L5 \
        TL0=-(3300-PWM_Value1[5])%256;
4 t, N4 C6 r% _( v& l) Y4 m' D& p        order1=0;  //為什么要在這里清零?建議刪除該行,改為在主函數(shù)中調(diào)用timer0()后,判斷如果order1==13,則=1。, s; i% W/ \% b3 ?7 ?6 _
        TR1=0;  //為什么要在這里清零?建議刪除該行,改為在主函數(shù)中調(diào)用timer0()后,判斷如果order1==13,則清零。% B' d  N, O% _
        break;;+ J8 n. @/ D+ t2 g
}
+ E; o+ |. }/ o4 x: U' yreturn(par++); 5 O/ G. o3 M/ z; d# d8 n* @
}! S5 r) t4 D) P: p3 p) K" }

- t0 l+ P5 A2 l" U5 x0 s4 W- `! x在主函數(shù)中調(diào)用timer0()的語句:+ C; A- i9 J  F% x# `$ [" K" o/ {
order1=timer0(order1);# s, B; S% Y; M; r
if(order1==13) {order1=1; TR1=0;}  r2 S9 K2 A! `' F

點(diǎn)評

Thank you very much!  發(fā)表于 2011-5-2 23:37
18#
發(fā)表于 2011-5-3 20:07:29 | 只看該作者
看了一下你的程序,沒看明白要實(shí)現(xiàn)什么功能,感覺有點(diǎn)亂,switch沒這么用的。
4 l( m& v- P2 i! X按說跳轉(zhuǎn)沒問題,如果出現(xiàn)異常,建議寫個(gè)測試函數(shù)test(),本函數(shù)逐個(gè)顯示所有變量的當(dāng)前值,test()加在每個(gè)break;之前。

點(diǎn)評

呵呵,謝謝,已經(jīng)可以了  發(fā)表于 2011-5-3 23:02
您需要登錄后才可以回帖 登錄 | 注冊會(huì)員

本版積分規(guī)則

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

GMT+8, 2025-7-19 09:36 , Processed in 0.073842 second(s), 13 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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