This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

missing pulse detectar

i must have the code for detecting a missin g pulse?
do some one have some for me to see?

Parents Reply Children
  • <admire>Clearly, but Per is still my hero!</admire>

    I think that this forum should show pictures of all the top posters. Then we could all see the true beauty of wisdom.

  • robhan visan,

    A way to detect it is to monitor the pulses, determine the time between them, and then determine if a pulse is missing based upon the expected time it should have occurred.

    Pseudo-code:

        if( pulse )
        {
            capture time
    
            difference in time = (current time) - (previous time);
    
            if( difference > expected time )
            {
                missing pulse has occured
            }
            else
            {
                missing pulse has not occured
            }
        }
    

    a close 'C' approximation:

    
    #define EXPECTED_TIME_BETWEEN_PULSES    50  // >50ms means too much time
    
    void pulse_isr( void ) // a logic pulse interrupts CPU
    {
        static unsigned int current_time  = 0;
        static unsigned int previous_time = 0;
        int difference;
    
        current_time = Get_Timestamp( ); // needs a timing routine accessor
    
        difference = ( current_time - previous_time );
    
        if( difference > EXPECTED_TIME_BETWEEN_PULSES )
        {
            Flag_Missing_Pulse = TRUE;  // the flag that say's "Missing"
        }
        else
        {
            Flag_Missing_Pulse = FALSE;
        }
    
        previous_time = current_time;   // for next time
    
    
    }
    

    This example will let you know that a missing pulse occurred one pulse AFTER it has been 'missed.'

    There are better ways to do this, but this is just an example.

    I hope you get a good grade on this assignment.

    NOTE: Per still needs some redeeming... his "H follows G" rule doesn't account for the field-tested sobriety research data collected over the past 30+ years. So the real-world missing pulse detector must not rely on this H-G relationship.

    --Cpt. Vince Foster
    2nd Cannon Place
    Fort Marcy Park, VA

    P.S. FYI... I found Jack's photo...

    inpraiseofsardines.typepad.com/.../sardine_man_1.jpg

  • But my code _does_ watch out for a timeout between two G pulses, in case you have problems with the H detector, or for some reason have managed to run the alphabet in the reverse order :)

  • I think that this forum should show pictures of all the top posters. Then we could all see the true beauty of wisdom.

    Per really does not need my advocacy, but for your information, this guy is by all means one of most knowledgeable people around here. If you want to take on somebody, well, you better pick me...

  • P.S. FYI... I found Jack's photo...

    Another one for the collection of "rahib kalib"?

    :-)

  • But how can you be sure that it occurred...?

    ;-)

  • But how can you be sure that it occurred...?

    Andy, Andy, Andy,

    How can you be so nieve? This is Embedded Systems 101...

    You must also do this:

    #include <Heisenberg.h>
    


    Then call:

            Observer_Effect( DISABLED );
    
            Test_For_Missin_G( );
    
            Observer_Effect( ENABLED );
    
    


    before you begin any missing pulse testing algorithms (and then re-enable it after the testing).

    You must treat these real-world tests like you would any other atomic instruction or routine.

    --Cpt. Vince Foster
    2nd Cannon Place
    Fort Marcy Park, VA

  • What happens if you forget to call

    Observer_Effect( ENABLED );
    


    when you are done?

    Also...would it be possible to create a predictive algorithm based on the spin of G to determine when the missing pulses will occur?

  • HELLO @@@ HOGAR HERE.

    If I understood your problem correctly , you can use a re-trigger able mono-shot with 2 to 4 Sec delay. Re-trigger this mono shot by the pulses in your problem.

    If this trigger pulses misses the mono-shot will no longer will get trigger and it will change the state.

    This state of the mono-shot can be used to trigger your alarm circuit. Hope I am clear.

    Regards

    hohar itp

    [rememba, i am unique, just like you and you and you]

  • The required delay must be chosen according to the expected repetition rate of the G pulses - how do you know that 2-4s is anywhere near the requirement?

  • I agree with hogar,

    Brillient solution.

    Simply use a "Dual retriggerable monostable multivibrator" type 74hc123 to sense two pulse (use two same ICs for 4 pulses and so on ... )

    Study the datasheet here:
    www.nxp.com/.../74HC_HCT123_4.pdf

    I think it's possible to realize the circuit without any processor... it's a really "older" solution.

    Good luck

    zuisti

    (chef programmer)

  • Kind moderators!

    I see more letters, which I did not write, on this forum. Somebody abuse my name, and my other letters written onto an other forum are copied here, modified many times.
    I ask it - if possible - let it be deleted, and I call upon the perpetrators in order for it to be stopped though!!

    The real zuisti, an old (65) engineer from...(you know it I think). And ... I'm NOT a chef programmer !!

  • You know, a modern microwave owen can be quite hard to program. Some chefs may need a specially appointed programmer to handle the more complicated cuisines.