91 lines
2.7 KiB
Plaintext
91 lines
2.7 KiB
Plaintext
% var module = system.modules['/driverlib/sci.js'];
|
|
//*****************************************************************************
|
|
//
|
|
// SCI 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];
|
|
% var options = "(";
|
|
% options += "SCI_CONFIG_WLEN_" + instance.wordLenght;
|
|
% options += "|SCI_CONFIG_STOP_" + instance.stop;
|
|
% options += "|"+ instance.parity;
|
|
% options += ")"
|
|
void `instance.$name`_init(){
|
|
SCI_clearInterruptStatus(`instance.$name`_BASE, SCI_INT_RXFF | SCI_INT_TXFF | SCI_INT_FE | SCI_INT_OE | SCI_INT_PE | SCI_INT_RXERR | SCI_INT_RXRDY_BRKDT | SCI_INT_TXRDY);
|
|
SCI_clearOverflowStatus(`instance.$name`_BASE);
|
|
%if (instance.useFifo)
|
|
%{
|
|
SCI_resetTxFIFO(`instance.$name`_BASE);
|
|
SCI_resetRxFIFO(`instance.$name`_BASE);
|
|
%}
|
|
%else
|
|
%{
|
|
SCI_disableFIFO(`instance.$name`_BASE);
|
|
%}
|
|
SCI_resetChannels(`instance.$name`_BASE);
|
|
SCI_setConfig(`instance.$name`_BASE, DEVICE_LSPCLK_FREQ, `instance.$name`_BAUDRATE, `options`);
|
|
%if (instance.loopback)
|
|
%{
|
|
SCI_enableLoopback(`instance.$name`_BASE);
|
|
%}
|
|
%else
|
|
%{
|
|
SCI_disableLoopback(`instance.$name`_BASE);
|
|
%}
|
|
SCI_performSoftwareReset(`instance.$name`_BASE);
|
|
%if (instance.useInterrupts && instance.useFifo)
|
|
%{
|
|
% var interrupts = ""
|
|
% for (var int_index in instance.enabledFIFOInterrupts)
|
|
% {
|
|
% interrupts += ((interrupts == "")?"":" | ") + instance.enabledFIFOInterrupts[int_index];
|
|
% }
|
|
%if (interrupts != "")
|
|
%{
|
|
SCI_enableInterrupt(`instance.$name`_BASE, `interrupts`);
|
|
%}
|
|
SCI_setFIFOInterruptLevel(`instance.$name`_BASE, `instance.txFifo`, `instance.rxFifo`);
|
|
%}
|
|
%if (instance.useInterrupts && !instance.useFifo)
|
|
%{
|
|
% var interrupts = ""
|
|
% for (var int_index in instance.enabledInterrupts)
|
|
% {
|
|
% interrupts += ((interrupts == "")?"":" | ") + instance.enabledInterrupts[int_index];
|
|
% }
|
|
%if (interrupts != "")
|
|
%{
|
|
SCI_enableInterrupt(`instance.$name`_BASE, `interrupts`);
|
|
%}
|
|
%}
|
|
%if (instance.useInterrupts)
|
|
%{
|
|
% var interrupts = ""
|
|
% for (var int_index in instance.enabledErrorInterrupts)
|
|
% {
|
|
% interrupts += ((interrupts == "")?"":" | ") + instance.enabledErrorInterrupts[int_index];
|
|
% }
|
|
%if (interrupts != "")
|
|
%{
|
|
SCI_enableInterrupt(`instance.$name`_BASE, `interrupts`);
|
|
%}
|
|
%}
|
|
%if (instance.useFifo)
|
|
%{
|
|
SCI_enableFIFO(`instance.$name`_BASE);
|
|
%}
|
|
SCI_enableModule(`instance.$name`_BASE);
|
|
}
|
|
%}
|
|
%} |