79 lines
2.3 KiB
Plaintext
79 lines
2.3 KiB
Plaintext
|
|
% var module = system.modules['/driverlib/spi.js'];
|
||
|
|
% let Common = system.getScript("/driverlib/Common.js");
|
||
|
|
%let device_driverlib_peripheral =
|
||
|
|
% system.getScript("/driverlib/device_driverlib_peripherals/" +
|
||
|
|
% Common.getDeviceName().toLowerCase() + "_spi.js");
|
||
|
|
//*****************************************************************************
|
||
|
|
//
|
||
|
|
// SPI Configurations
|
||
|
|
//
|
||
|
|
//*****************************************************************************
|
||
|
|
void `module.peripheralName`_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];
|
||
|
|
void `instance.$name`_init(){
|
||
|
|
SPI_disableModule(`instance.$name`_BASE);
|
||
|
|
%
|
||
|
|
%var protocol = instance.transferProtocol;
|
||
|
|
%var mode = instance.mode;
|
||
|
|
%let interruptPrefix = "SPI_INT_";
|
||
|
|
%var interrupts = "";
|
||
|
|
SPI_setConfig(`instance.$name`_BASE, DEVICE_LSPCLK_FREQ, `protocol`,
|
||
|
|
`mode`, `parseInt(instance.bitRate)`, `instance.dataWidth`);
|
||
|
|
%if(!device_driverlib_peripheral.SPI_PTEPolarity)
|
||
|
|
%{
|
||
|
|
SPI_setPTESignalPolarity(`instance.$name`_BASE, `instance.ptePolarity`);
|
||
|
|
%}
|
||
|
|
%else
|
||
|
|
%{
|
||
|
|
SPI_setPTESignalPolarity(`instance.$name`_BASE, `instance.ptePolarity`);
|
||
|
|
%}
|
||
|
|
%if (instance.useFifo)
|
||
|
|
%{
|
||
|
|
SPI_enableFIFO(`instance.$name`_BASE);
|
||
|
|
%if (instance.useInterrupts)
|
||
|
|
%{
|
||
|
|
SPI_setFIFOInterruptLevel(`instance.$name`_BASE, `instance.txFifo`, `instance.rxFifo`);
|
||
|
|
% for (var int_index in instance.enabledFIFOInterrupts)
|
||
|
|
% {
|
||
|
|
% interrupts += ((interrupts == "")?"":" | ") + instance.enabledFIFOInterrupts[int_index];
|
||
|
|
% }
|
||
|
|
%}
|
||
|
|
%}
|
||
|
|
%else{
|
||
|
|
SPI_disableFIFO(`instance.$name`_BASE);
|
||
|
|
%if (instance.useInterrupts)
|
||
|
|
%{
|
||
|
|
% for (var int_index in instance.enabledInterrupts)
|
||
|
|
% {
|
||
|
|
% interrupts += ((interrupts == "")?"":" | ") + instance.enabledInterrupts[int_index];
|
||
|
|
% }
|
||
|
|
%}
|
||
|
|
%}
|
||
|
|
%if (interrupts != "")
|
||
|
|
%{
|
||
|
|
SPI_clearInterruptStatus(`instance.$name`_BASE, `interrupts`);
|
||
|
|
SPI_enableInterrupt(`instance.$name`_BASE, `interrupts`);
|
||
|
|
%}
|
||
|
|
%if (instance.loopback)
|
||
|
|
%{
|
||
|
|
SPI_enableLoopback(`instance.$name`_BASE);
|
||
|
|
%}
|
||
|
|
%else
|
||
|
|
%{
|
||
|
|
SPI_disableLoopback(`instance.$name`_BASE);
|
||
|
|
%}
|
||
|
|
SPI_setEmulationMode(`instance.$name`_BASE, `instance.emulationMode`);
|
||
|
|
SPI_enableModule(`instance.$name`_BASE);
|
||
|
|
}
|
||
|
|
%}
|
||
|
|
%}
|