115 lines
2.7 KiB
Plaintext
115 lines
2.7 KiB
Plaintext
%%{
|
|
var module = system.modules['/driverlib/dac.js'];
|
|
let Common = system.getScript("/driverlib/Common.js");
|
|
var nameOfModule = "dac";
|
|
var nameOfPeripheral = module.peripheralName;
|
|
if( ["F28004x", "F28003x", "F28P65x", "F28P55x"].includes(Common.getDeviceName())){
|
|
var staticModule = system.modules['/driverlib/asysctl.js']
|
|
var stat = staticModule.$static
|
|
}
|
|
var varDelay = 500
|
|
%%}
|
|
//*****************************************************************************
|
|
//
|
|
// DAC Configurations
|
|
//
|
|
//*****************************************************************************
|
|
void `nameOfPeripheral`_init(){
|
|
% for(var i = 0; i < module.$instances.length; i++)
|
|
% {
|
|
% var instance = module.$instances[i];
|
|
`instance.$name`_init();
|
|
% }
|
|
}
|
|
|
|
%{
|
|
%if (module != null)
|
|
%{
|
|
% for(var i = 0; i < module.$instances.length; i++) {
|
|
% var instance = module.$instances[i];
|
|
% var baseName = instance.$name + "_BASE";
|
|
void `instance.$name`_init(){
|
|
//
|
|
// Set DAC reference voltage.
|
|
//
|
|
DAC_setReferenceVoltage(`baseName`, `instance.referenceVoltage`);
|
|
%if(["F28004x", "F28003x", "F28P65x", "F28P55x"].includes(Common.getDeviceName())&& (instance.referenceVoltage == "DAC_REF_ADC_VREFHI")){
|
|
//
|
|
// Set DAC gain mode.
|
|
//
|
|
DAC_setGainMode(`baseName`, `instance.gainMode`);
|
|
%}
|
|
//
|
|
// Set DAC load mode.
|
|
//
|
|
DAC_setLoadMode(`baseName`, `instance.loadMode`);
|
|
% if (instance.loadMode == "DAC_LOAD_PWMSYNC") {
|
|
//
|
|
// Set DAC ePWMSYNC signal.
|
|
//
|
|
// - ePWM module must be configured before using here.
|
|
//
|
|
DAC_setPWMSyncSignal(`baseName`, `instance.ePWMSyncSignal`U);
|
|
%}
|
|
% if (instance.enableOutput) {
|
|
//
|
|
// Enable the DAC output
|
|
//
|
|
DAC_enableOutput(`baseName`);
|
|
% } else {
|
|
//
|
|
// Disable the DAC output
|
|
//
|
|
DAC_disableOutput(`baseName`);
|
|
%}
|
|
//
|
|
// Set the DAC shadow output
|
|
//
|
|
DAC_setShadowValue(`baseName`, `instance.shadowValue`U);
|
|
% // preparing `registersToLockOR` for DAC_lockRegister()
|
|
% if (instance.lockedRegisters.length>0)
|
|
%{
|
|
%%{
|
|
var regCount = 0
|
|
var registersToLockOR = "("
|
|
for (var registerToLock in instance.lockedRegisters)
|
|
{
|
|
if (regCount == 0)
|
|
{
|
|
registersToLockOR += instance.lockedRegisters[regCount]
|
|
}
|
|
else
|
|
{
|
|
registersToLockOR += " | " + instance.lockedRegisters[regCount]
|
|
}
|
|
regCount++
|
|
}
|
|
registersToLockOR += ")"
|
|
%%}
|
|
//
|
|
// Lock write-access to DAC Register
|
|
//
|
|
DAC_lockRegister(`baseName`, `registersToLockOR`);
|
|
%}
|
|
|
|
%%{
|
|
//
|
|
// delay depends on analog reference
|
|
//
|
|
if( ["F28004x", "F28003x", "F28P65x", "F28P55x"].includes(Common.getDeviceName())){
|
|
if(stat.analogReference == "EXTERNAL"){
|
|
varDelay = 500
|
|
}
|
|
else{
|
|
varDelay = 5000
|
|
}
|
|
}
|
|
%%}
|
|
//
|
|
// Delay for buffered DAC to power up.
|
|
//
|
|
DEVICE_DELAY_US(`varDelay`);
|
|
}
|
|
%}
|
|
%}
|
|
%} |