|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
如题% X$ l: }0 E6 t) {
一个超声波测距报警程序,可以设定距离报警阈值。" O) u4 y. A, ^' Z7 O$ v9 P
我把beep = ~beep; 改成beep =0; 后一直报警,但返回报警距离外还是一直报警,数码管显示的距离也停在了报警那里不变化了,请教各位怎样解决,谢谢!. I9 X2 }. {7 p- d6 {. P7 H) B. n
程序如下:) L) c" u* i7 @. i' E D7 s# M
1 Z0 f; P6 f5 P* g# u$ _6 `/****************报警函数***************/1 k5 v3 a# R) U9 w: d
void clock_h_l()
( l8 a, F; G& a, ^{* ]7 e1 d" c& ?) d/ F* b. f3 N
static uchar value;
8 @" c4 a- r3 l( e; i! s! n if(distance <= set_d)
* R; @* \/ j/ N& y: V) X {
# U7 ]- p4 v# x6 t1 g value ++; //消除实际距离在设定距离左右变化时的干扰( w" H' Z$ Z7 ~' s
if(value >= 2)3 q& t2 T9 T3 t1 s0 v3 K! D
{/ z. s9 M% |2 U% _5 Y! E7 } y
3 i% U' Z! N4 r$ l3 l beep = ~beep; //蜂鸣器报警
! q! p: E6 h( c$ T* e }
+ ?. s& S' O p* E9 E }
. a$ {7 Y+ A* o% W" O# W* K8 N$ g else & @' V) i$ B; z
{
`6 Z& S* ?, h O5 | value = 0;
1 C) {) ~" {+ g+ A3 n beep = 1; //取消报警
6 R0 d# G' u0 P( h0 w% e1 ~1 T. s" J } ) p! X8 ` ]' U9 S7 ?/ I- C
}! Q, E! L( h) d7 J0 y5 u0 M
' l2 H/ o, J+ c9 n$ e
| / q5 W# K3 _; u, \. O
|
|