c2000ware-core-sdk/driverlib/.meta/epwm/modules/epwm_tripZone.js
2023-06-24 11:35:38 +05:30

200 lines
7.1 KiB
JavaScript

let Common = system.getScript("/driverlib/Common.js");
let Pinmux = system.getScript("/driverlib/pinmux.js");
let device_driverlib_peripheral =
system.getScript("/driverlib/device_driverlib_peripherals/" +
Common.getDeviceName().toLowerCase() + "_epwm.js");
var TzEventConfigNames = [];
var TzAdvEventConfigNames = [];
function onChangeUseAdvancedEPWMTripZoneActions(inst, ui)
{
for (var tzEventConfigNameIndex in TzEventConfigNames)
{
var tzEventConfigName = TzEventConfigNames[tzEventConfigNameIndex];
//ui[tzEventConfigName].hidden = inst.epwmTripZone_useAdvancedEPWMTripZoneActions;
if (inst.epwmTripZone_useAdvancedEPWMTripZoneActions)
{
ui[tzEventConfigName].hidden = true;
}
else
{
ui[tzEventConfigName].hidden = false;
inst[tzEventConfigName] = device_driverlib_peripheral.EPWM_TripZoneAction[0].name; // Set to default
}
}
for (var tzAdvEventConfigNameIndex in TzAdvEventConfigNames)
{
var tzAdvEventConfigName = TzAdvEventConfigNames[tzAdvEventConfigNameIndex];
//ui[tzAdvEventConfigName].hidden = !inst.epwmTripZone_useAdvancedEPWMTripZoneActions;
if (!inst.epwmTripZone_useAdvancedEPWMTripZoneActions)
{
ui[tzAdvEventConfigName].hidden = true;
inst[tzAdvEventConfigName] = device_driverlib_peripheral.EPWM_TripZoneAdvancedAction[0].name; // Set to default
}
else
{
ui[tzAdvEventConfigName].hidden = false;
}
}
}
/* Array of configurables that are common across device families */
var config = [
{
name: "epwmTripZone_useAdvancedEPWMTripZoneActions",
displayName : "Use Advanced EPWM Trip Zone Actions",
description : 'Check this to use Advanced EPWM trip zone actions. Uncheck to use legacy (TZCTL2[ETZE])',
hidden : false,
default : false,
onChange : onChangeUseAdvancedEPWMTripZoneActions
},
];
for (var tzEventIndex in device_driverlib_peripheral.EPWM_TripZoneEvent)
{
var tzEvent = device_driverlib_peripheral.EPWM_TripZoneEvent[tzEventIndex];
var tzEventName = tzEvent.name.replace("EPWM_TZ_ACTION_EVENT_", "");
var tzEventConfig = {
name: "epwmTripZone_" + tzEvent.name,
displayName : tzEventName + " Event",
description : 'The action to take on ' + tzEvent.name + ". " + "(" + tzEvent.displayName + ")",
hidden : false,
default : device_driverlib_peripheral.EPWM_TripZoneAction[0].name,
options : device_driverlib_peripheral.EPWM_TripZoneAction
}
config.push(tzEventConfig);
TzEventConfigNames.push(tzEventConfig.name);
}
for (var tzEventIndex in device_driverlib_peripheral.EPWM_TripZoneAdvancedEvent)
{
var tzEvent = device_driverlib_peripheral.EPWM_TripZoneAdvancedEvent[tzEventIndex];
var tzEventName = tzEvent.name.replace("EPWM_TZ_ADV_ACTION_EVENT_", "");
var tzEventConfig = {
name: "epwmTripZone_" + tzEvent.name,
displayName : tzEventName + " Event (Adv)",
description : 'The action to take on ' + tzEvent.name + ". " + "(" + tzEvent.displayName + ")",
hidden : true,
default : device_driverlib_peripheral.EPWM_TripZoneAdvancedAction[0].name,
options : device_driverlib_peripheral.EPWM_TripZoneAdvancedAction
}
config.push(tzEventConfig);
TzAdvEventConfigNames.push(tzEventConfig.name);
}
for (var epwmX of ["A", "B"])
{
for (var tzEventIndex in device_driverlib_peripheral.EPWM_TripZoneAdvDigitalCompareEvent)
{
var tzEvent = device_driverlib_peripheral.EPWM_TripZoneAdvDigitalCompareEvent[tzEventIndex];
var tzEventName = tzEvent.name.replace("EPWM_TZ_ADV_ACTION_EVENT_", "").replace("DCx", "DC" + epwmX);
var tzEventConfig = {
name: "epwmTripZone_" + tzEvent.name + "_" + epwmX,
displayName : tzEventName + " Event (Adv)",
description : 'For EPWMx' + epwmX + ' ,the action to take on ' + tzEvent.name + ". " + "(" + tzEvent.displayName + ")",
hidden : true,
default : device_driverlib_peripheral.EPWM_TripZoneAdvancedAction[0].name,
options : device_driverlib_peripheral.EPWM_TripZoneAdvancedAction
}
config.push(tzEventConfig);
TzAdvEventConfigNames.push(tzEventConfig.name);
}
}
var oneShotConfig = [
{
name: "epwmTripZone_oneShotSource",
displayName : "One-Shot Source",
description : 'Check to enable the source to the One-Shot OR gate',
hidden : false,
minSelections : 0,
default : [],
options : device_driverlib_peripheral.EPWM_TZ_SIGNAL.slice(8,16)
},
];
var cbcConfig = [
{
name: "epwmTripZone_cbcSource",
displayName : "CBC Source",
description : 'Check to enable the source to the CBC OR gate',
hidden : false,
minSelections : 0,
default : [],
options : device_driverlib_peripheral.EPWM_TZ_SIGNAL.slice(0,8)
},
{
name: "epwmTripZone_cbcPulse",
displayName : "CBC Latch Clear Signal",
description : 'Select the CBC Trip Zone Latch Clear Signal (TZCLR[CBCPULSE])',
hidden : false,
default : device_driverlib_peripheral.EPWM_CycleByCycleTripZoneClearMode[0].name,
options : device_driverlib_peripheral.EPWM_CycleByCycleTripZoneClearMode
},
];
var interruptConfig = [
{
name: "epwmTripZone_tzInterruptSource",
displayName : "TZ Interrupt Source (ORed)",
description : 'Select the all the signals which should be enabled to generate a TZINT.',
hidden : false,
minSelections : 0,
default : [],
options : device_driverlib_peripheral.EPWM_TZ_INTERRUPT
},
{
name : "epwmTripZone_registerInterrupts",
displayName : "Register Interrupt Handler",
description : 'Whether or not to register interrupt handlers in the interrupt module.',
hidden : false,
default : false
},
]
config = config.concat(oneShotConfig);
config = config.concat(cbcConfig);
config = config.concat(interruptConfig);
var epwmTripZoneSubmodule = {
displayName: "EPWM Trip Zone",
maxInstances: Common.peripheralCount("EPWM"),
defaultInstanceName: "EPWM_TZ",
description: "Enhanced Pulse Width Modulator Trip Zone",
config: config,
moduleInstances: (inst) => {
if (inst.epwmTripZone_registerInterrupts)
{
return [{
name: "epwmTZInt",
displayName: "EPWM TZ Interrupt ",
moduleName: "/driverlib/interrupt.js",
collapsed: true,
args: {
$name : inst.$name + "_TZ_INT",
int : "INT_" + inst.$name,
pinmuxPeripheralModule : "epwm",
driverlibInt: "INT_#_TZ"
}
}]
}
return [];
},
templates: {
boardc : "", //"/gpio/gpio.board.c.xdt",
boardh : ""//"/gpio/gpio.board.h.xdt"
},
};
exports = epwmTripZoneSubmodule;