Deutsch English Français Italiano |
<utp3l0$bcu6$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder6.news.weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: The Natural Philosopher <tnp@invalid.invalid> Newsgroups: comp.sys.raspberry-pi Subject: Re: Need help with PI PICO... Date: Sun, 24 Mar 2024 11:43:27 +0000 Organization: A little, after lunch Lines: 54 Message-ID: <utp3l0$bcu6$1@dont-email.me> References: <utn4f2$3p985$1@dont-email.me> <QZq*00-Fz@news.chiark.greenend.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Sun, 24 Mar 2024 11:43:28 -0000 (UTC) Injection-Info: dont-email.me; posting-host="7cae268abee9cfb09fee7c9189a2892f"; logging-data="373702"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/ZrpSOwuYfHdZjwQACtMrDQ30pVNQ+Dhg=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:5hyn+YPQjiUpBZ0MEykoA5+N4/U= In-Reply-To: <QZq*00-Fz@news.chiark.greenend.org.uk> Content-Language: en-GB Bytes: 3069 On 24/03/2024 09:39, Theo wrote: > The Natural Philosopher <tnp@invalid.invalid> wrote: >> It would seem from the pin states that it gets permanently stuck in >> >> while(!gpio_get(ULTRASONIC_IN)) >> ; >> >> Which as understand it is waiting for the module (HCSR04) to *start* to >> send a pulse. > > Can you scope it to see if the module is actually sending a pulse? > I could, but in fact it was easier to simply look at it in 'stuck' mode with a DVM. > Is the pulse perhaps too short for the Pico to detect? eg if the loop or > gpio_get() function took some time, it could be the signal goes 0-1-0 in the > middle of a loop iteration and so the gpio_get() never sees it go 1. > As you can see from my last reply that is roughly where I am headed. Or similar. Lacking full ICE., its all a bit 'poke the black box with different sized sticks, and try and infer from what it does, what is happening inside it' I think this must be where it sticks, because this is the only infinite loop with both input and output to the module in a low state, which is what I measured: gpio_put(ULTRASONIC_OUT,1); sleep_us(10); gpio_put(ULTRASONIC_OUT,0); //reset the input // wait for echo pulse start while(!gpio_get(ULTRASONIC_IN)) ; I.e that it (allegedly) sends a 10µs wide high pulse, and then waits for that to trigger a response from the unit, but that response never happens. However that should not vary with the echo *delay*, and a longer target distance seems to improve things.. ....unless, thinking a bit more, the pulse is so short it comes *and* goes inside that loop, as you suggested.. it certainly should *not* be, as even on a few cm of target distance, its hundreds of microseconds (i make it 58µs per cm roughly) > Theo -- “It is dangerous to be right in matters on which the established authorities are wrong.” ― Voltaire, The Age of Louis XIV