📄 mw_c28xx_csl_c.html
字号:
<HTML>
<HEAD>
<TITLE>RTW Report - MW_c28xx_csl.c </TITLE>
<STYLE> .LineNumber { font-style: italic; color: #888888 } </STYLE>
<STYLE> .Comment { font-style: italic; color: #117755 } </STYLE>
<STYLE> .PreProcessor { font-style: bold; color: #992211 } </STYLE>
<STYLE> .Keyword { font-style: bold; color: #112266 } </STYLE>
<STYLE> .Datatype { font-style: bold; color: #112266 } </STYLE>
</HEAD>
<BODY BGCOLOR="#eeeeee" TEXT=#1122aa>
<P>
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="6" WIDTH="100%" HEIGHT="100%"><TR><TD WIDTH="100%" VALIGN="top" BGCOLOR="#ffffff">
<H4>File: <A HREF="file:///D:\MATLAB\R2007a\work\Demo1103_IO_AD_PWM3_V7_ccslink\MW_c28xx_csl.c" TARGET="rtwreport_document_frame">D:\MATLAB\R2007a\work\Demo1103_IO_AD_PWM3_V7_ccslink\MW_c28xx_csl.c</A></H4>
<PRE>
<SPAN class="LineNumber"> 1 </SPAN><FONT COLOR=#992211>#</FONT><SPAN class="PreProcessor">include</SPAN> <FONT COLOR=#992211>"DSP281x_Device.h"</FONT>
<SPAN class="LineNumber"> 2 </SPAN><FONT COLOR=#992211>#</FONT><SPAN class="PreProcessor">include</SPAN> <FONT COLOR=#992211>"rtwtypes.h"</FONT>
<SPAN class="LineNumber"> 3 </SPAN><FONT COLOR=#992211>#</FONT><SPAN class="PreProcessor">include</SPAN> <FONT COLOR=#992211>"Demo1103_IO_AD_PWM3_V7.h"</FONT>
<SPAN class="LineNumber"> 4 </SPAN><FONT COLOR=#992211>#</FONT><SPAN class="PreProcessor">include</SPAN> <FONT COLOR=#992211>"Demo1103_IO_AD_PWM3_V7_private.h"</FONT>
<SPAN class="LineNumber"> 5 </SPAN>
<SPAN class="LineNumber"> 6 </SPAN><SPAN class="Comment">/*-----------------------------------------------------------------------------
<SPAN class="LineNumber"> 7 </SPAN> * void config_schedulerTimer(void)
<SPAN class="LineNumber"> 8 </SPAN> *
<SPAN class="LineNumber"> 9 </SPAN> * Abstract:
<SPAN class="LineNumber"> 10 </SPAN> * This function configures scheduler timer
<SPAN class="LineNumber"> 11 </SPAN> */</SPAN>
<SPAN class="LineNumber"> 12 </SPAN><SPAN class="Datatype">void</SPAN> <A NAME=fcn_config_schedulerTimer>config_schedulerTimer</A>(<SPAN class="Datatype">void</SPAN>)
<SPAN class="LineNumber"> 13 </SPAN><B>{</B>
<SPAN class="LineNumber"> 14 </SPAN> <SPAN class="Comment">/* Configure CPU-Timer 0 to interrupt every 0.0001 sec. */</SPAN>
<SPAN class="LineNumber"> 15 </SPAN> <SPAN class="Comment">/* Parameters: Timer Pointer, CPU Freq in MHz, Period in usec. */</SPAN>
<SPAN class="LineNumber"> 16 </SPAN> ConfigCpuTimer(&CpuTimer0, 150, 0.0001 * 1000000);
<SPAN class="LineNumber"> 17 </SPAN> StartCpuTimer0();
<SPAN class="LineNumber"> 18 </SPAN><B>}</B>
<SPAN class="LineNumber"> 19 </SPAN>
<SPAN class="LineNumber"> 20 </SPAN><SPAN class="Datatype">void</SPAN> <A NAME=fcn_disableWatchdog>disableWatchdog</A>(<SPAN class="Datatype">void</SPAN>)
<SPAN class="LineNumber"> 21 </SPAN><B>{</B>
<SPAN class="LineNumber"> 22 </SPAN> <SPAN class="Datatype">int</SPAN> *WatchdogWDCR = (<SPAN class="Datatype">void</SPAN> *) 0x7029;
<SPAN class="LineNumber"> 23 </SPAN> asm(<FONT COLOR=#1122ff>" EALLOW "</FONT>);
<SPAN class="LineNumber"> 24 </SPAN> *WatchdogWDCR = 0x0068;
<SPAN class="LineNumber"> 25 </SPAN> asm(<FONT COLOR=#1122ff>" EDIS "</FONT>);
<SPAN class="LineNumber"> 26 </SPAN><B>}</B>
<SPAN class="LineNumber"> 27 </SPAN>
<SPAN class="LineNumber"> 28 </SPAN><SPAN class="Comment">/* Function: config_ADC_A ------------------------------
<SPAN class="LineNumber"> 29 </SPAN> *
<SPAN class="LineNumber"> 30 </SPAN> * Abstract:
<SPAN class="LineNumber"> 31 </SPAN> * Configure ADC_A
<SPAN class="LineNumber"> 32 </SPAN> */</SPAN>
<SPAN class="LineNumber"> 33 </SPAN><SPAN class="Datatype">void</SPAN> <A NAME=fcn_config_ADC_A>config_ADC_A</A>(<A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> maxConv, <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> adcChselSEQ1Reg, <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A>
<SPAN class="LineNumber"> 34 </SPAN> adcChselSEQ2Reg, <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> adcChselSEQ3Reg, <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A>
<SPAN class="LineNumber"> 35 </SPAN> adcChselSEQ4Reg)
<SPAN class="LineNumber"> 36 </SPAN><B>{</B>
<SPAN class="LineNumber"> 37 </SPAN> AdcRegs.ADCTRL1.bit.SUSMOD = 0x0; <SPAN class="Comment">// Emulation suspend ignored</SPAN>
<SPAN class="LineNumber"> 38 </SPAN> AdcRegs.ADCTRL1.bit.ACQ_PS = 12; <SPAN class="Comment">// Acquisition window size</SPAN>
<SPAN class="LineNumber"> 39 </SPAN> AdcRegs.ADCTRL1.bit.CPS = 0; <SPAN class="Comment">// Core clock pre-scaler</SPAN>
<SPAN class="LineNumber"> 40 </SPAN> AdcRegs.ADCTRL1.bit.CONT_RUN = 0x0; <SPAN class="Comment">// Start-Stop sequencer mode</SPAN>
<SPAN class="LineNumber"> 41 </SPAN> AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3; <SPAN class="Comment">// Bandgap and reference powered up</SPAN>
<SPAN class="LineNumber"> 42 </SPAN> AdcRegs.ADCTRL3.bit.ADCCLKPS = 6; <SPAN class="Comment">// Core clock divider</SPAN>
<SPAN class="LineNumber"> 43 </SPAN> AdcRegs.ADCTRL3.bit.SMODE_SEL = 0; <SPAN class="Comment">// Sequential sampling</SPAN>
<SPAN class="LineNumber"> 44 </SPAN> AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = maxConv;<SPAN class="Comment">// Number of conversions in CONV1 when using A and "A and B" module</SPAN>
<SPAN class="LineNumber"> 45 </SPAN> AdcRegs.ADCCHSELSEQ1.all = adcChselSEQ1Reg;<SPAN class="Comment">// Channels for conversion</SPAN>
<SPAN class="LineNumber"> 46 </SPAN> AdcRegs.ADCCHSELSEQ2.all = adcChselSEQ2Reg;<SPAN class="Comment">// Channels for conversion</SPAN>
<SPAN class="LineNumber"> 47 </SPAN> AdcRegs.ADCTRL1.bit.SEQ_CASC = 0; <SPAN class="Comment">// Dual sequencer mode</SPAN>
<SPAN class="LineNumber"> 48 </SPAN><B>}</B>
<SPAN class="LineNumber"> 49 </SPAN>
<SPAN class="LineNumber"> 50 </SPAN><SPAN class="Comment">/* Function: config_PWM_A ------------------------------
<SPAN class="LineNumber"> 51 </SPAN> *
<SPAN class="LineNumber"> 52 </SPAN> * Abstract:
<SPAN class="LineNumber"> 53 </SPAN> * Configure PWM_A
<SPAN class="LineNumber"> 54 </SPAN> */</SPAN>
<SPAN class="LineNumber"> 55 </SPAN><SPAN class="Datatype">void</SPAN> <A NAME=fcn_config_PWM_A>config_PWM_A</A>(<A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> timerPeriod, <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> waveformType,
<SPAN class="LineNumber"> 56 </SPAN> <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> unit1Status, <SPAN class="Datatype">char</SPAN>* unit1Source, <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> unit1Value,
<SPAN class="LineNumber"> 57 </SPAN> <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> unit2Status, <SPAN class="Datatype">char</SPAN>* unit2Source, <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> unit2Value,
<SPAN class="LineNumber"> 58 </SPAN> <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> unit3Status, <SPAN class="Datatype">char</SPAN>* unit3Source, <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> unit3Value,
<SPAN class="LineNumber"> 59 </SPAN> <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> controlLogic,
<SPAN class="LineNumber"> 60 </SPAN> <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> enableDeadband1, <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> enableDeadband2, <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A>
<SPAN class="LineNumber"> 61 </SPAN> enableDeadband3,
<SPAN class="LineNumber"> 62 </SPAN> <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> deadbandPrescaler, <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> deadbandPeriod, <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A>
<SPAN class="LineNumber"> 63 </SPAN> timerToADC)
<SPAN class="LineNumber"> 64 </SPAN><B>{</B>
<SPAN class="LineNumber"> 65 </SPAN> <SPAN class="Datatype">const</SPAN> <A HREF=rtwtypes_h.html#type_uint16_T TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">uint16_T</FONT></A> DISABLED= 0;
<SPAN class="LineNumber"> 66 </SPAN>
<SPAN class="LineNumber"> 67 </SPAN> <SPAN class="Comment">/* Initalize EVA Timer1 which controls PWM1-PWM6 */</SPAN>
<SPAN class="LineNumber"> 68 </SPAN> EvaRegs.T1PR = timerPeriod; <SPAN class="Comment">// period</SPAN>
<SPAN class="LineNumber"> 69 </SPAN> EvaRegs.T1CMPR = EvaRegs.T1PR>>1; <SPAN class="Comment">// compare</SPAN>
<SPAN class="LineNumber"> 70 </SPAN> EvaRegs.T1CNT = 0x0000; <SPAN class="Comment">// counter</SPAN>
<SPAN class="LineNumber"> 71 </SPAN> EvaRegs.T1CON.all = 0x1042; <SPAN class="Comment">// enable; compare enable; default TMODE</SPAN>
<SPAN class="LineNumber"> 72 </SPAN> EvaRegs.T1CON.bit.TMODE = waveformType;<SPAN class="Comment">// adjust Timer TMODE</SPAN>
<SPAN class="LineNumber"> 73 </SPAN>
<SPAN class="LineNumber"> 74 </SPAN> <SPAN class="Comment">/* Set ADC SOC signal according to user's request */</SPAN>
<SPAN class="LineNumber"> 75 </SPAN> EvaRegs.GPTCONA.bit.T1TOADC = timerToADC;
<SPAN class="LineNumber"> 76 </SPAN>
<SPAN class="LineNumber"> 77 </SPAN> <SPAN class="Comment">/* Enable compare for PWM1-PWM6 */</SPAN>
<SPAN class="LineNumber"> 78 </SPAN> EvaRegs.CMPR1 = unit1Status ? unit1Value : DISABLED;
<SPAN class="LineNumber"> 79 </SPAN> EvaRegs.CMPR2 = unit2Status ? unit2Value : DISABLED;
<SPAN class="LineNumber"> 80 </SPAN> EvaRegs.CMPR3 = unit3Status ? unit3Value : DISABLED;
<SPAN class="LineNumber"> 81 </SPAN>
<SPAN class="LineNumber"> 82 </SPAN> <SPAN class="Comment">/* Compare action control: Action that takes place on a compare event */</SPAN>
<SPAN class="LineNumber"> 83 </SPAN> EvaRegs.ACTRA.all = controlLogic;
<SPAN class="LineNumber"> 84 </SPAN> EvaRegs.DBTCONA.bit.EDBT1 = enableDeadband1;
<SPAN class="LineNumber"> 85 </SPAN> EvaRegs.DBTCONA.bit.EDBT2 = enableDeadband2;
<SPAN class="LineNumber"> 86 </SPAN> EvaRegs.DBTCONA.bit.EDBT3 = enableDeadband3;
<SPAN class="LineNumber"> 87 </SPAN> EvaRegs.DBTCONA.bit.DBT = deadbandPeriod;
<SPAN class="LineNumber"> 88 </SPAN> EvaRegs.DBTCONA.bit.DBTPS = deadbandPrescaler;
<SPAN class="LineNumber"> 89 </SPAN> EvaRegs.COMCONA.all = 0xA600;
<SPAN class="LineNumber"> 90 </SPAN><B>}</B>
<SPAN class="LineNumber"> 91 </SPAN>
<SPAN class="LineNumber"> 92 </SPAN>interrupt <SPAN class="Datatype">void</SPAN> <A NAME=fcn_schedulerTimer_ISR>schedulerTimer_ISR</A>(<SPAN class="Datatype">void</SPAN>)
<SPAN class="LineNumber"> 93 </SPAN><B>{</B>
<SPAN class="LineNumber"> 94 </SPAN> PieCtrlRegs.PIEACK.all = 1;
<SPAN class="LineNumber"> 95 </SPAN> IER |= 1;
<SPAN class="LineNumber"> 96 </SPAN> <A HREF=Demo1103_IO_AD_PWM3_V7_main_c.html#fcn_rt_OneStep TARGET="rtwreport_document_frame"><FONT COLOR="#1122aa">rt_OneStep</FONT></A>();
<SPAN class="LineNumber"> 97 </SPAN> DINT; <SPAN class="Comment">// disable global interrupts during context switch, CPU will enable global interrupts after exiting ISR</SPAN>
<SPAN class="LineNumber"> 98 </SPAN><B>}</B>
<SPAN class="LineNumber"> 99 </SPAN>
<SPAN class="LineNumber"> 100 </SPAN><SPAN class="Datatype">void</SPAN> <A NAME=fcn_enable_interrupts>enable_interrupts</A>()
<SPAN class="LineNumber"> 101 </SPAN><B>{</B>
<SPAN class="LineNumber"> 102 </SPAN> EALLOW;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -