|
发表于 2011-5-2 23:19:30
|
显示全部楼层
建议将timer()函数改写为参数传递机制:' h1 H0 k- ?3 H
int timer0(int par)
/ [2 i, F% P6 k+ A{6 H1 B& h, W1 f' v. F: {' S
switch(par)$ b1 C& N6 C# s1 W5 T
{
( t/ ?1 z4 `* y6 d7 S+ tcase 1:
- o* b9 h8 Y8 U1 d% d6 a2 d! l...
. U, L4 k0 f1 x0 ^: Z$ Z' q/ G) Q...
0 H2 g0 y" }& D- ]2 I9 l2 p1 T4 K; x% \case 12:
! _( Z8 x/ y5 ^0 {! s3 h PWM0_5=0 ;
/ n) W* o+ K& \) ?+ }6 D TH0=-(3300-PWM_Value1[5])/256;-- O1 _: a) C' t s* P9 E
TL0=-(3300-PWM_Value1[5])%256;% K ?# J f$ J r$ D( G
order1=0; //为什么要在这里清零?建议删除该行,改为在主函数中调用timer0()后,判断如果order1==13,则=1。: H4 W8 B$ Z/ g H- F
TR1=0; //为什么要在这里清零?建议删除该行,改为在主函数中调用timer0()后,判断如果order1==13,则清零。
1 j& w9 i; P( |+ r; P- K% m, @2 ?2 O break;;
/ y/ A1 k" _) l. E6 }% e! p/ \, R}
, v2 u, U' [; z4 S: M1 ]return(par++); / ~- z' i9 j: f1 l' I: i' V
}
+ k! V8 [5 i7 g1 O/ h% W9 P* _ W4 {9 `$ Y6 t
在主函数中调用timer0()的语句:6 ^8 @2 k7 s$ f1 L. \ Y% t6 E! T8 P
order1=timer0(order1);7 K4 p' Y# N \
if(order1==13) {order1=1; TR1=0;}
" ?+ ^5 N$ v: T1 O |
|