发布时间 : 星期二 文章DSP课程设计:AD+SCI更新完毕开始阅读ccd5911d2e60ddccda38376baf1ffc4ffe47e292
//初始化cputimer InitCpuTimers(); InitSci();
/*设置中断服务程序入口地址*/ EALLOW;
// This is needed to write to EALLOW protected registers
PieVectTable.TINT2 = &ISRTimer2; PieVectTable.ADCINT = &ad;
EDIS; // This is needed to disable write to EALLOW protected registers /*开中断*/
IER |= M_INT1;//ADC中断
EINT; // Enable Global interrupt INTM ERTM; // Enable Global realtime interrupt DBGM /*启动AD采样*/ /*AD采样率*/ adconvover=0; switch(SampleRate){ }
case ADSAMPL8K: //采样率为1k
DINT;
/*设置CPU*/
ConfigCpuTimer(&CpuTimer2, 150, 1000); StartCpuTimer2(); /*开中断*/ IER |= M_INT14; EINT; InitAdc(); SampleRate = 0; break;
default:
break;
for(;;) { }
}
interrupt void ad(void) {
IFR=0x0000;
PieCtrl.PIEACK.all=0xffff; Ad_data[0] = AdcRegs.RESULT0; temp=Ad_data[0]>>4; results=(temp/4095.0)*3.0;
results=results*100;
send[3]=(int)results+0x30;
results=results/10;
send[2]=(int)results+0x30; send[1]='.';
results=results/10; }
interrupt void ISRTimer2(void) {
send[0]=(int)results+0x30; send[4]='\\n'; for(i=0;i<5;i++) {
SciaRegs.SCITXBUF =send[i]; while(!SciaTx_Ready()); }
AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1; AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;
}
串口初始化子程序 void InitSci(void) {
// Initialize SCI-A: *UART_MODE = 0x44; EALLOW;
GpioMuxRegs.GPFMUX.all = 0x0030; EDIS;
/* loopback 8 bit data */ SciaRegs.SCICCR.all = 0x07;
SciaRegs.SCICTL1.all = 0x03; SciaRegs.SCICTL2.all = 0x03;
SciaRegs.SCIHBAUD = 0x00;
SciaRegs.SCILBAUD = 0x28;//波特率为115200b/s
SciaRegs.SCICTL1.all = 0x23; PieCtrl.PIEIER9.bit.INTx1 = 1; // PieCtrl.PIEIER9.bit.INTx2 = 1; //tbd...
// Initialize SCI-B: //tbd... }