Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch.embedded > #13830

Re: Counting 2ms long pulses on several input pins

From Don Y <this@isnotme.com>
Newsgroups comp.arch.embedded
Subject Re: Counting 2ms long pulses on several input pins
Date 2013-09-23 16:12 -0700
Organization Aioe.org NNTP Server
Message-ID <l1qhsc$52s$1@speranza.aioe.org> (permalink)
References <l1qck1$9dd$4@dont-email.me>

Show all headers | View raw


On 9/23/2013 2:42 PM, pozz wrote:
> I have a 5 microswitches
> (www.tamiyausa.com/images/product/470/75016/header_75016.jpg) connected
> to some inputs of a microcontroller.  The switches are normally closed
> and put the level to low.  When they are open, the level is high thanks
> to pull-up resistors.
>
> I have to count the pulses generated from the microswitches.  They are
> managed by a rotating cam (en.wikipedia.org/wiki/Cam) that push/release
> continuously the switches.
>
> The rotation speed could change. When it is slow, the complete pulse
> width could be up to 15-20ms, where the last part (about 3-5ms) is
> composed by many bouncing oscillations.
> When the rotation is fast, the complete pulse width is about 1-2ms and
> the boucing oscillations takes about 2-3ms.

So, there is a ~10X range of speeds?  Are you *sure* you are seeing
1ms pulse "ideal" widths?  Can you alter the shapes (dwell) of each
cam?

> What is the best approach/algorithm to debounce and detect/count pulses
> on all the lines, without stressing the microcontroller too much?

What do you consider "too much"?

Do you care *when* you recognize the switch as closed vs. open?
I.e., is the cam "timed" to some critical part of a mechanism
so the instant the cam closes corresponds to the mechanism being
in a "significant" position/orientation?

For example, if a SINGLE pulse looks like:

      +-+ +-+ +---------+
      | | | | |         |
      | | | | |         |
-----+ +-+ +-+         +---------

      A  B        C     D   E

Do you care if you "report" the pulse at time:
- A (at the leading edge of the pulse, before any bounces)
- B (some time after the leading edge but possibly in the bounce period)
- C (after the bouncing has stopped)
- D (at the trailing edge of the pulse)
- E (some time after the trailing edge)

[Note I am only illustrating bounce on the leading edge in this
description.  And, representing this as a *logical* signal which
may differ from the voltage levels you "see" on a particular pin]

What are the mechanical "phase" relationships between the cams?
E.g., presumably the cams have some *fixed* (?) relationship(s)
to each other.  So, cam 5 might never be "on" while cam 2 is "on",
etc.

Will any of these such cam relationships ever *change*?

> My approach is to sample each input lines every 1ms in the ISR of a
> timr.  Usually it is at low level.  When I see the first 1, I increase
> the counter and change to HIGH status.  Now I have to see two
> consecutives 0 to go back to LOW status.
>
> Do you have better ideas?

Back to comp.arch.embedded | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Counting 2ms long pulses on several input pins pozz <pozzugno@gmail.com> - 2013-09-23 23:42 +0200
  Re: Counting 2ms long pulses on several input pins mike <ham789@netzero.net> - 2013-09-23 15:00 -0700
  Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-23 16:12 -0700
  Re: Counting 2ms long pulses on several input pins Paul Rubin <no.email@nospam.invalid> - 2013-09-23 18:45 -0700
    Re: Counting 2ms long pulses on several input pins Arlet Ottens <usenet+5@c-scape.nl> - 2013-09-24 08:06 +0200
      Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-24 00:37 -0700
        Re: Counting 2ms long pulses on several input pins Arlet Ottens <usenet+5@c-scape.nl> - 2013-09-24 10:24 +0200
          Re: Counting 2ms long pulses on several input pins Paul Rubin <no.email@nospam.invalid> - 2013-09-24 02:05 -0700
            Re: Counting 2ms long pulses on several input pins Arlet Ottens <usenet+5@c-scape.nl> - 2013-09-24 11:01 +0200
          Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-24 09:55 -0700
            Re: Counting 2ms long pulses on several input pins Tom Gardner <spamjunk@blueyonder.co.uk> - 2013-09-24 18:13 +0100
              Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-24 11:03 -0700
            Re: Counting 2ms long pulses on several input pins Arlet Ottens <usenet+5@c-scape.nl> - 2013-09-24 19:38 +0200
              Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-24 11:13 -0700
                Re: Counting 2ms long pulses on several input pins Arlet Ottens <usenet+5@c-scape.nl> - 2013-09-24 20:30 +0200
                Re: Counting 2ms long pulses on several input pins Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2013-09-24 21:20 +0100
                Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-24 16:08 -0700
    Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-24 00:34 -0700
  Re: Counting 2ms long pulses on several input pins Andrew Smallshaw <andrews@sdf.lonestar.org> - 2013-09-24 04:31 +0000
  Re: Counting 2ms long pulses on several input pins Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2013-09-24 11:15 +0100
    Re: Counting 2ms long pulses on several input pins Paul <paul@pcserviceselectronics.co.uk> - 2013-09-24 15:51 +0100
  Re: Counting 2ms long pulses on several input pins pozz <pozzugno@gmail.com> - 2013-09-25 00:33 +0200
    Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-24 16:36 -0700
      Re: Counting 2ms long pulses on several input pins pozz <pozzugno@gmail.com> - 2013-09-25 07:39 +0200
        Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-24 23:37 -0700
          Re: Counting 2ms long pulses on several input pins pozz <pozzugno@gmail.com> - 2013-09-27 15:54 +0200
            Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-27 12:35 -0700
    Re: Counting 2ms long pulses on several input pins mike <ham789@netzero.net> - 2013-09-24 16:43 -0700
  Re: Counting 2ms long pulses on several input pins j.m.granville@gmail.com - 2013-09-24 17:32 -0700
    Re: Counting 2ms long pulses on several input pins Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2013-09-25 09:52 +0300
      Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-25 00:09 -0700
        Re: Counting 2ms long pulses on several input pins j.m.granville@gmail.com - 2013-09-25 16:53 -0700

csiph-web