motorcontroldemo_028/Vinclude/V_DIO.h

151 lines
3.3 KiB
C
Raw Normal View History

2019-07-29 08:18:57 +03:00
/*!
Copyright 2017 <EFBFBD><EFBFBD> "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <EFBFBD> <EFBFBD><EFBFBD><EFBFBD> "<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
\file V_DIO.h
\brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
\author <EFBFBD><EFBFBD><EFBFBD> "<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>". http://motorcontrol.ru
\version v 2.0 25/09/2019
2019-07-29 08:18:57 +03:00
\addtogroup
@{*/
#ifndef V_DIO_H
#define V_DIO_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct SDIO {
union { //!<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint16 out;
struct {
Uint16 n0:1;
Uint16 n1:1;
Uint16 n2:1;
Uint16 n3:1;
Uint16 n4:1;
Uint16 n5:1;
Uint16 n6:1;
Uint16 n7:1;
Uint16 n8:1;
Uint16 n9:1;
Uint16 n10:1;
Uint16 n11:1;
Uint16 n12:1;
Uint16 n13:1;
Uint16 n14:1;
Uint16 n15:1;
}out_bit;
};
union { //!<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
Uint16 in;
struct {
Uint16 n0:1;
Uint16 n1:1;
Uint16 n2:1;
Uint16 n3:1;
Uint16 n4:1;
Uint16 n5:1;
Uint16 n6:1;
Uint16 n7:1;
Uint16 n8:1;
Uint16 n9:1;
Uint16 n10:1;
Uint16 n11:1;
Uint16 n12:1;
Uint16 n13:1;
Uint16 n14:1;
Uint16 n15:1;
}in_bit;
};
_iq inputKf; //!<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Kf = 0.001/T<> (T<> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>)
_iq inputOff; //!<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OFF (0)
_iq inputOn; //!<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ON (1)
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TFilter fIn0;
TFilter fIn1;
TFilter fIn2;
TFilter fIn3;
TFilter fIn4;
TFilter fIn5;
TFilter fIn6;
TFilter fIn7;
TFilter fIn8;
TFilter fIn9;
TFilter fIn10;
TFilter fIn11;
TFilter fIn12;
TFilter fIn13;
TFilter fIn14;
TFilter fIn15;
void (*init)(struct SDIO*);
void (*slow_calc)(struct SDIO*);
void (*ms_calc)(struct SDIO*);
}TDIO;
//!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
#define DIO_DEFAULTS { .out = 0, .in = 0, \
.inputKf = 0, .inputOff = 0, .inputOn = 0, \
.fIn0 = FILTER_DEFAULTS, \
.fIn1 = FILTER_DEFAULTS, \
.fIn2 = FILTER_DEFAULTS, \
.fIn3 = FILTER_DEFAULTS, \
.fIn4 = FILTER_DEFAULTS, \
.fIn5 = FILTER_DEFAULTS, \
.fIn6 = FILTER_DEFAULTS, \
.fIn7 = FILTER_DEFAULTS, \
.fIn8 = FILTER_DEFAULTS, \
.fIn9 = FILTER_DEFAULTS, \
.fIn10 = FILTER_DEFAULTS, \
.fIn11 = FILTER_DEFAULTS, \
.fIn12 = FILTER_DEFAULTS, \
.fIn13 = FILTER_DEFAULTS, \
.fIn14 = FILTER_DEFAULTS, \
.fIn15 = FILTER_DEFAULTS, \
.init = DIO_init, \
.slow_calc = DIO_slow_calc, \
.ms_calc = DIO_ms_calc, \
}
2019-07-29 08:18:57 +03:00
//! \memberof TDIO
void DIO_init(TDIO* p);
//! \memberof TDIO
void DIO_slow_calc(TDIO* p);
//! \memberof TDIO
void DIO_ms_calc(TDIO* p);
2019-07-29 08:18:57 +03:00
#ifdef __cplusplus
}
#endif
#endif
/*@}*/