test4

Dependencies:   mbed BufferedSerial LS7366LIB2 FastPWM

idle_check.h

Committer:
gohgwaja
Date:
2020-07-27
Revision:
1:7b5469bf5994
Child:
2:14b52dee1c35

File content as of revision 1:7b5469bf5994:

#ifndef _IDLE_CHECK_H_
#define _IDLE_CHECK_H_

#include "encoder.h"


#define IDLE_CHECK_CNT  4000 //loop(2.5ms) * IDLE_CHECK_CNT = idle check time


uint8_t idle_check_var[100] = {0, };
int idle_enc_data[6] = {0, };

uint32_t idle_cnt = 0;
bool idle_state = false;

void Idle_Check_Init();
bool Idle_Check();


void Idle_Check_Init()
{
    for(int i = 0; i < 100; i++)
    {
        idle_check_var[i] = command[i];
    }
}

void Idle_Enc_Check()
{
    idle_enc_data[0] = encoder_data[0];
    idle_enc_data[1] = encoder_data[1];
    idle_enc_data[2] = encoder_data[2];
    idle_enc_data[3] = encoder_data[3];
    idle_enc_data[4] = encoder_data[4];
    idle_enc_data[5] = encoder_data[5];
}

bool Idle_Check()
{
    bool same_command_data = true;
    
    for(int i = 0; i < 100; i++)
    {
        if(idle_check_var[i] != command[i])
        {
            idle_check_var[i] = command[i];
            same_command_data = false;
        }
    }
    
    if(same_command_data == false)
    {
        idle_cnt = 0;
    }
    else
    {
        idle_cnt++;
    }
    
    if(idle_cnt >= IDLE_CHECK_CNT)
    {
        return true;
    }
    
    return false;
}

#endif