241 lines
9.6 KiB
C
241 lines
9.6 KiB
C
/* ###################################################################
|
|
** This component module is generated by Processor Expert. Do not modify it.
|
|
** Filename : McuQuadCounter.h
|
|
** Project : FRDM-K64F_Generator
|
|
** Processor : MK64FN1M0VLL12
|
|
** Component : QuadCounter
|
|
** Version : Component 01.034, Driver 01.00, CPU db: 3.00.000
|
|
** Compiler : GNU C Compiler
|
|
** Date/Time : 2020-12-02, 10:47, # CodeGen: 721
|
|
** Abstract :
|
|
**
|
|
This driver implements a quadrature encoder using two signals (C1 and C2) to generate position information.
|
|
** Settings :
|
|
** Component name : McuQuadCounter
|
|
** C1 and C2 swapped : no
|
|
** Counter Type : 32bit
|
|
** Method :
|
|
** Sampling : Enabled
|
|
** Error Correction : no
|
|
** C1 : SDK_BitIO
|
|
** C2 : SDK_BitIO
|
|
** Input Capture : Disabled
|
|
** Shell : Enabled
|
|
** Shell : McuShell
|
|
** Utility : McuUtility
|
|
** Contents :
|
|
** GetPos - McuQuadCounter_QuadCntrType McuQuadCounter_GetPos(void);
|
|
** SetPos - void McuQuadCounter_SetPos(McuQuadCounter_QuadCntrType pos);
|
|
** GetVal - uint8_t McuQuadCounter_GetVal(void);
|
|
** Sample - void McuQuadCounter_Sample(void);
|
|
** NofErrors - uint16_t McuQuadCounter_NofErrors(void);
|
|
** SwapPins - uint8_t McuQuadCounter_SwapPins(bool swap);
|
|
** Deinit - void McuQuadCounter_Deinit(void);
|
|
** Init - void McuQuadCounter_Init(void);
|
|
** ParseCommand - uint8_t McuQuadCounter_ParseCommand(const unsigned char *cmd, bool *handled,...
|
|
**
|
|
** * Copyright (c) 2014-2020, Erich Styger
|
|
** * Web: https://mcuoneclipse.com
|
|
** * SourceForge: https://sourceforge.net/projects/mcuoneclipse
|
|
** * Git: https://github.com/ErichStyger/McuOnEclipse_PEx
|
|
** * All rights reserved.
|
|
** *
|
|
** * Redistribution and use in source and binary forms, with or without modification,
|
|
** * are permitted provided that the following conditions are met:
|
|
** *
|
|
** * - Redistributions of source code must retain the above copyright notice, this list
|
|
** * of conditions and the following disclaimer.
|
|
** *
|
|
** * - Redistributions in binary form must reproduce the above copyright notice, this
|
|
** * list of conditions and the following disclaimer in the documentation and/or
|
|
** * other materials provided with the distribution.
|
|
** *
|
|
** * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
** * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
** * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
** * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
** * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
** * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
** * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
** * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
** * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
** * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
** ###################################################################*/
|
|
/*!
|
|
** @file McuQuadCounter.h
|
|
** @version 01.00
|
|
** @brief
|
|
**
|
|
This driver implements a quadrature encoder using two signals (C1 and C2) to generate position information.
|
|
*/
|
|
/*!
|
|
** @addtogroup McuQuadCounter_module McuQuadCounter module documentation
|
|
** @{
|
|
*/
|
|
|
|
#ifndef __McuQuadCounter_H
|
|
#define __McuQuadCounter_H
|
|
|
|
/* MODULE McuQuadCounter. */
|
|
#include "McuLib.h" /* SDK and API used */
|
|
#include "McuQuadCounterconfig.h" /* configuration */
|
|
|
|
/* Include inherited components */
|
|
#include "C11.h"
|
|
#include "C21.h"
|
|
#include "McuShell.h"
|
|
#include "McuUtility.h"
|
|
#include "McuLib.h"
|
|
|
|
|
|
#define McuQuadCounter_SWAP_PINS 0 /* 1: C1 and C2 are swapped */
|
|
#define McuQuadCounter_SWAP_PINS_AT_RUNTIME 1 /* 1: C1 and C2 are swapped at runtime, if SwapPins() method is available */
|
|
#define McuQuadCounter_GET_C1_PIN() (C11_GetVal())
|
|
#define McuQuadCounter_GET_C2_PIN() (C21_GetVal())
|
|
#if McuQuadCounter_SWAP_PINS
|
|
#define McuQuadCounter_GET_C1_C2_PINS() ((McuQuadCounter_GET_C2_PIN()!=0?2:0)|(McuQuadCounter_GET_C1_PIN()!=0?1:0))
|
|
#define McuQuadCounter_GET_C1_C2_PINS_SWAPPED() ((McuQuadCounter_GET_C1_PIN()!=0?2:0)|(McuQuadCounter_GET_C2_PIN()!=0?1:0))
|
|
#else
|
|
#define McuQuadCounter_GET_C1_C2_PINS() ((McuQuadCounter_GET_C1_PIN()!=0?2:0)|(McuQuadCounter_GET_C2_PIN()!=0?1:0))
|
|
#define McuQuadCounter_GET_C1_C2_PINS_SWAPPED() ((McuQuadCounter_GET_C2_PIN()!=0?2:0)|(McuQuadCounter_GET_C1_PIN()!=0?1:0))
|
|
#endif
|
|
|
|
typedef uint32_t McuQuadCounter_QuadCntrType;
|
|
#define McuQuadCounter_CNTR_BITS 32
|
|
/*!< Number of bits in counter */
|
|
|
|
#define McuQuadCounter_PARSE_COMMAND_ENABLED 1 /* set to 1 if method ParseCommand() is present, 0 otherwise */
|
|
|
|
|
|
void McuQuadCounter_SetPos(McuQuadCounter_QuadCntrType pos);
|
|
/*
|
|
** ===================================================================
|
|
** Method : SetPos (component QuadCounter)
|
|
**
|
|
** Description :
|
|
** Sets the position information. Can be used as well to reset
|
|
** the position information.
|
|
** Parameters :
|
|
** NAME - DESCRIPTION
|
|
** pos - Position value to be set.
|
|
** Returns : Nothing
|
|
** ===================================================================
|
|
*/
|
|
|
|
McuQuadCounter_QuadCntrType McuQuadCounter_GetPos(void);
|
|
/*
|
|
** ===================================================================
|
|
** Method : GetPos (component QuadCounter)
|
|
**
|
|
** Description :
|
|
** Returns the current position based on the encoder tracking.
|
|
** Parameters : None
|
|
** Returns :
|
|
** --- - position
|
|
** ===================================================================
|
|
*/
|
|
|
|
void McuQuadCounter_Sample(void);
|
|
/*
|
|
** ===================================================================
|
|
** Method : Sample (component QuadCounter)
|
|
**
|
|
** Description :
|
|
** Call this method to periodically sample the signals.
|
|
** Parameters : None
|
|
** Returns : Nothing
|
|
** ===================================================================
|
|
*/
|
|
|
|
uint16_t McuQuadCounter_NofErrors(void);
|
|
/*
|
|
** ===================================================================
|
|
** Method : NofErrors (component QuadCounter)
|
|
**
|
|
** Description :
|
|
** Returns the number of decoding errors
|
|
** Parameters : None
|
|
** Returns :
|
|
** --- - Error code
|
|
** ===================================================================
|
|
*/
|
|
|
|
void McuQuadCounter_Deinit(void);
|
|
/*
|
|
** ===================================================================
|
|
** Method : Deinit (component QuadCounter)
|
|
**
|
|
** Description :
|
|
** Module de-initialization method
|
|
** Parameters : None
|
|
** Returns : Nothing
|
|
** ===================================================================
|
|
*/
|
|
|
|
void McuQuadCounter_Init(void);
|
|
/*
|
|
** ===================================================================
|
|
** Method : Init (component QuadCounter)
|
|
**
|
|
** Description :
|
|
** Module initialization method
|
|
** Parameters : None
|
|
** Returns : Nothing
|
|
** ===================================================================
|
|
*/
|
|
|
|
uint8_t McuQuadCounter_ParseCommand(const unsigned char *cmd, bool *handled, const McuShell_StdIOType *io);
|
|
/*
|
|
** ===================================================================
|
|
** Method : ParseCommand (component QuadCounter)
|
|
**
|
|
** Description :
|
|
** Handler to process shell commands
|
|
** Parameters :
|
|
** NAME - DESCRIPTION
|
|
** cmd - Command string to be parsed
|
|
** * handled - Pointer to boolean. The handler
|
|
** sets this variable to TRUE if command was
|
|
** handled, otherwise let it untouched.
|
|
** io - Pointer to I/O structure
|
|
** Returns :
|
|
** --- - Error code
|
|
** ===================================================================
|
|
*/
|
|
|
|
uint8_t McuQuadCounter_GetVal(void);
|
|
/*
|
|
** ===================================================================
|
|
** Method : GetVal (component QuadCounter)
|
|
**
|
|
** Description :
|
|
** Returns the quadrature value (0, 1, 2 or 3)
|
|
** Parameters : None
|
|
** Returns :
|
|
** --- - Quadrature value (0-3)
|
|
** ===================================================================
|
|
*/
|
|
|
|
uint8_t McuQuadCounter_SwapPins(bool swap);
|
|
/*
|
|
** ===================================================================
|
|
** Method : SwapPins (component QuadCounter)
|
|
**
|
|
** Description :
|
|
** Swap the two pins
|
|
** Parameters :
|
|
** NAME - DESCRIPTION
|
|
** swap - if C1 and C2 pins shall be swapped.
|
|
** Returns :
|
|
** --- - Error code
|
|
** ===================================================================
|
|
*/
|
|
|
|
/* END McuQuadCounter. */
|
|
|
|
#endif
|
|
/* ifndef __McuQuadCounter_H */
|
|
/*!
|
|
** @}
|
|
*/
|