motorcontroldemo_035/Vinclude/V_common.h
Dmitry Shpak a99491f9b8 Основные обновления в данном коммите:
- проект переведён на VectorIDE v1.3

В целях экономии памяти удалены:
 - модуль управления светодиодами
 - модуль ШИМ для двигателей SRD
 - модуль часов реального времени
 - режим привода для измерения задержки меджу сигналами ШИМ и измерениями токов

Добавлены следующие модули:
 - проект переведён на VectorIDE v1.3
 - модуль SPI для абсолютного ДПР
 - модуль управление реле для заряда ЗПТ
 - модуль дискретных вводов-выводов
 - модуль управления вентилятором Одноплатного Инвертора
 - модуль тормозного резистора Одноплатного Инвертора

Прочие изменения:
 - оптимизирована инициализация регистров периферии
 - удалено множество неиспользуемых переменных
 - разрешение работы всех GPIO перенесено в функцию "PeripheralClockEnable"
 - добавлен счётчик индексной метки энкодера
 - исправлен сброс прерываний модуля захвата CAP
 - переработан режим задания постоянного тока статора
- исправлены прочие мелкие ошибки в разных модулях
2021-12-01 13:54:14 +03:00

124 lines
3.4 KiB
C

/*!
Copyright 2017 ÀÎ "ÍÈÈÝÒ" è ÎÎÎ "ÍÏÔ ÂÅÊÒÎÐ"
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_common.h
\brief Îáúÿâëåíèå ñòðóêòóð äàííûõ ðàçëè÷íîãî íàçíà÷åíèÿ, êîòîðûå åùå ñëèøêîì ìàëû äëÿ òîãî, ÷òîáû
îðãàíèçîâûâàòü èõ â îòäåëüíûé ìîäóëü
\author ÎÎÎ "ÍÏÔ Âåêòîð". Âñå ïðàâà çàùèùåíû. http://motorcontrol.ru
\version v 2.0 25/03/2016
\defgroup v_common Îáúÿâëåíèå ñòðóêòóð äàííûõ ðàçëè÷íîãî íàçíà÷åíèÿ
@{*/
#ifndef V_COMMON_H
#define V_COMMON_H
#ifdef __cplusplus
extern "C"
{
#endif
//!Áèòîâîå ïîëå äëÿ áèòîâîãî ñòàòóñà ñèñòåìû óïðàâëåíèÿ
typedef struct
{
unsigned int ready :1;
unsigned int running :1;
unsigned int fault :1;
unsigned int alarm :1;
unsigned int testing :1;
unsigned int overheat :1;
} DRV_STATUS_BIT;
//!Ñòðóêòóðà äëÿ ñòàòóñà ñèñòåìû óïðàâëåíèÿ (ñîäåðæèò DRV_STATUS_BIT)
typedef union
{
int all;
DRV_STATUS_BIT bit;
}TDrvStatus;
//!Áèòîâîå ïîëå ñëîâà óïðàâëåíèÿ
typedef struct
{
unsigned int start :1;
unsigned int stop :1;
unsigned int trip_reset :1;
unsigned int reserved :5;
} CMD_BIT;
//!Ñòðóêòóðà ñëîâà óïðàâëåíèÿ (ñîäåðæèò DRV_STATUS_BIT)
typedef union
{
unsigned int all;
CMD_BIT bit;
}TCmd;
//! Ñòðóêòóðà, ñîäåðæàùèÿ îñíîâíûå çàäàíèÿ äëÿ ïðèâîäà
typedef volatile struct
{
long speed_ref;//!< Çàäàíèå ñêîðîñòè
long Iq_ref;//!< Çàäàíèå òîêîîãðàíè÷åíèÿ äëÿ âåêòîðíîé ñèñòåìû óïðàâëåíèÿ
long i_flux_ref;//!< Çàäàíèå òîêà äëÿ çàìêíóòîé ïî òîêó ñèñòåìû óïðàâëåíèÿ (íå âåêòîðíîé)
long theta_elec;//!< Çàäàíèå óãëîâîãî ïîëîæåíèÿ âåêòîðà òîêà/íàïðÿæåíèÿ
long ua_ref, uf_ref; // Çàäàíèÿ òîêà ÿêîðÿ è òîêà ÎÂ äëÿ ÄÏÒ
long DCMspeed_ref;//!< Çàäàíèå ñêîðîñòè
} TRefs;
//! Ñòðóêòóðà äëÿ õðàíåíèÿ ïàðàìåòðîâ ïðèâîäà, äâèãàòåëÿ, áàçîâûõ âåëè÷èí ñèñòåìû óïðàâëåíèÿ
typedef struct
{
long Rs;//!< Ñîïðîòèâëåíèå ôàçû ñòàòîðà
long Ls;//!< Èíäóêòèâíîñòü ôàçû ñòàòîðà
int p;//!< Êîëè÷åñòâî ïàð ïîëþñîâ
int I_nom;//!< Íîìèíàëüíûé (áàçîâûé) ôàçíûé òîê â ôîðìàòå 16.0
long _1_I_nom;//!< 1/I_nom
int U_nom;//!< Íîìèíàëüíîå (áàçîâîå) ôàçíîå íàïðÿæåíèå â ôîðìàòå 16.0
long _1_U_nom;//!< 1/U_nom
int Udc_nom;//!< Íîìèíàëüíîå (áàçîâîå) íàïðÿæåíèå ÇÏÒ â ôîðìàòå 16.0
long _1_Udc_nom;//!< 1/Udc_nom
int speed_nom;//!< Íîìèíàëüíàÿ (áàçîâàÿ) ñêîðîñòü â ôîðìàòå 16.0
int freq_nom;//!< Íîìèíàëüíàÿ (áàçîâàÿ) ÷àñòîòà â ôîðìàòå 16.0
int power;//!< Íîìèíàëüíàÿ (áàçîâàÿ) ìîùíîñòü â ôîðìàòå 16.0
int sens_type;//!< Òèï äàò÷èêà ïîëîæåíèÿ
} TDrvParams;
struct SsysSwitches {
Uint16 recuperation_ena :1; //!< 0 Ðàçðåøåíèå ðåêóïåðàöèè ýíåðãèè ïðè òîðìîæåíèè
Uint16 Reboot :1; //!< 1 Ïðîãðàììíàÿ ïåðåçàãðóçêà
Uint16 AutoOffset :1; //!< 2 àâòîñìåùåíèå ÀÖÏ
Uint16 use_led :1; //!< 3 Èñïîëüçîâàòü ñâåòîäèîä âìåñòî JTAG
Uint16 use_led_prev :1; //!< 4 Èñïîëüçîâàòü ñâåòîäèîä âìåñòî JTAG
Uint16 :11;
};
typedef union {
struct SsysSwitches bit;
Uint16 all;
} TSysSwitches;
#ifdef __cplusplus
}
#endif
#endif
/*@}*/