|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
如题+ i3 j# B& o' Y2 @8 W, E
一个超声波测距报警程序,可以设定距离报警阈值。' c0 i7 y: O; F7 o ?+ [, _
我把beep = ~beep; 改成beep =0; 后一直报警,但返回报警距离外还是一直报警,数码管显示的距离也停在了报警那里不变化了,请教各位怎样解决,谢谢!
3 J) ^$ R ^" L+ i, U* A程序如下:9 V% ~" M7 x5 ?, r+ F, F
. h$ r2 I# F" [8 _. y9 D/****************报警函数***************/: l0 ?+ m9 {% w% ~2 H5 r
void clock_h_l()
% n" F2 ?7 W; N" w2 T{1 V9 j1 P4 A* i/ K
static uchar value;: F4 j+ d3 [# a
if(distance <= set_d)! @; U% s# L% ~$ a
{
& L' I% \0 R4 M1 g, p( \ value ++; //消除实际距离在设定距离左右变化时的干扰
7 u8 ^; `8 l# `) ~1 n if(value >= 2)4 g7 A' P" a2 s5 X/ I: @
{
" {: h5 R9 G1 T- |
, O; n7 O3 O3 M6 H beep = ~beep; //蜂鸣器报警
9 C2 Q2 _4 w* k. e7 d8 S }* Y3 B5 f( k. h
}
7 c8 v7 b7 e8 @, \9 H; a" C, w else ' Z1 {* d2 c+ s$ y* C6 r
{
0 k; _8 m" t J0 O+ M value = 0;
6 k# |8 H, K6 W7 ?5 B( H: l( ]% h beep = 1; //取消报警
$ v; ]0 _- o# X2 P: e8 g. G3 W } * Q% o( G5 n- M
}7 E2 o7 e% r( Z" @+ o/ o. V/ L
) i6 K7 M% k3 G) s: [+ X
|
" b7 u7 {; p& C |
|