代码:<br /><br /><br />/* Header file created by DSP/BIOS tool */<br />#include "spicfgcfg.h"<br /><br />#include <std.h><br /><br />#include <log.h><br />#include <sys.h><br />#include <mem.h><br />#include <sio.h><br />#include <csl.h><br />#include <csl_cache.h><br />#include <csl_irq.h><br />#include <gio.h><br /><br />#define DRR0 *((unsigned char *)(0x018C0000))<br />#define DXR0 *((unsigned char *)(0x018C0004))<br />#define DRR1 *((unsigned char *)(0x01900000))<br />#define DXR1 *((unsigned char *)(0x01900004))<br /><br />#define GPIO_EN (*((unsigned int*)(0x01b00000)))<br />#define GPIO_DIR (*((unsigned int*)(0x01b00004)))<br />#define GPIO_VAL (*((unsigned int*)(0x01b00008)))<br />#define GPIO_DH (*((unsigned int*)(0x01b00010)))<br />#define GPIO_HM (*((unsigned int*)(0x01b00014)))<br />#define GPIO_DL (*((unsigned int*)(0x01b00018)))<br />#define GPIO_LM (*((unsigned int*)(0x01b0001c)))<br />#define GPIO_GC (*((unsigned int*)(0x01b00020)))<br />#define GPIO_POL (*((unsigned int*)(0x01b00024)))<br /><br />void InitGPIO(); //初始化GPIO接口<br /><br />void SpiRcv0();<br />void SpiRcv1();<br />void MCBSP_init();<br />#define PRDValue0 0x0000004b // 1US <br />Uint32 x[100],y[100];<br />Uint32 i,j;<br />#pragma CODE_SECTION(timer1,".jpgtbls ");<br />#pragma CODE_SECTION(writed,".jpgtbls ");<br />#pragma CODE_SECTION(SpiRcv0,".jpgtbls ");<br />#pragma CODE_SECTION(SpiRcv1,".jpgtbls ");//定义到内部ISRAM<br /><br />void writed();<br />Uint32 KK=0,l=0;<br />Uint32 x[100],y[100];<br />Uint32 i,j;<br />TIMER_Handle hTimer1;<br />Uint32 TimerEventid;<br />//定时器配置系数结构体<br />TIMER_Config MyConfig1=<br />{<br /> 0x00000305,//CTL<br /> PRDValue0,//PRD<br /> 0x00000000,//CNT<br />};<br />void writed()<br />{<br /><br /> GPIO_VAL |= 0x00002002; <br /> <br /> GPIO_VAL &= 0xffffdffd;<br /> GPIO_VAL |= 0x00002002; <br /> <br /> GPIO_VAL &= 0xffffdffd;<br /> GPIO_VAL |= 0x00002002; <br /> <br /> GPIO_VAL &= 0xffffdffd;<br /> GPIO_VAL |= 0x00002002; <br /> <br /> GPIO_VAL &= 0xffffdffd;<br /> GPIO_VAL |= 0x00002002; <br /> <br /> GPIO_VAL &= 0xffffdffd;//加上这几句后 通过示波器观察 发现进入此函数时间间隔变成2.2us 但定时时间初值为1us<br /><br />}<br />//定时器1硬件中断 定时1us检测高速AD值 <br /> void timer1(void)<br />{<br /><br /><br /> <br /> writed();//屏蔽这句通过仿真进入时间为1.16us<br /><br />//SWI_post(&TIME_swi);<br />}<br />/*----------------------------------------------------------------------------*/<br />void main() {<br /><br /> volatile Uint32 y;<br /> int success = 1;<br /> CSL_init();<br /> <br /> IRQ_globalEnable(); //IRQ global enable<br /> IRQ_nmiEnable(); //NMIE<br /> IRQ_enable(IRQ_EVT_RINT0); //McBSP0 interrupt enable<br /> IRQ_enable(IRQ_EVT_RINT1); //McBSP1 interrupt enable<br /><br /> MCBSP_init();<br /> InitGPIO();<br /> <br /> //打开定时器0及GPIO口<br /> hTimer1 = TIMER_open(TIMER_DEV1, 0);<br /><br /> <br /> //获取定时器0的事件号<br /> TimerEventid = TIMER_getEventId(hTimer1);<br /> <br /> //中断向量表的初始化<br /><br /> IRQ_globalEnable();<br /> // IRQ_nmiEnable(); //NMIE<br /> IRQ_enable(TimerEventid);<br /> IRQ_enable(IRQ_EVT_RINT0); //McBSP0 interrupt enable<br /> IRQ_enable(IRQ_EVT_RINT1); //McBSP1 interrupt enable<br /> //对定时器0及GPIO口进行配置<br /> TIMER_config(hTimer1, &MyConfig1);<br /><br /> <br /> //开始运行<br /> TIMER_start(hTimer1);<br /> <br /><br />}<br /><br />//AD0 interrupt<br />void SpiRcv0()<br />{<br /> x[i++] = DRR0;<br /> if(i>99) i=0;<br />}<br /><br />//AD1 interrupt<br />void SpiRcv1()<br />{<br /> y[j++] = DRR1;<br /> if(j>99) j=0;<br />}<br /><br />void MCBSP_init()<br />{<br /> MCBSP_enableSrgr(hMcbsp0);<br /> MCBSP_enableRcv(hMcbsp0);<br /> MCBSP_enableXmt(hMcbsp0);<br /> MCBSP_enableFsync(hMcbsp0); <br /> MCBSP_start(hMcbsp0,MCBSP_RCV_START | MCBSP_XMIT_START | MCBSP_SRGR_START| MCBSP_SRGR_FRAMESYNC, 0);<br /><br /> MCBSP_enableSrgr(hMcbsp1);<br /> MCBSP_enableRcv(hMcbsp1);<br /> MCBSP_enableXmt(hMcbsp1);<br /> MCBSP_enableFsync(hMcbsp1); <br /> MCBSP_start(hMcbsp1,MCBSP_RCV_START | MCBSP_XMIT_START | MCBSP_SRGR_START| MCBSP_SRGR_FRAMESYNC, 0);<br />}<br /><br />void InitGPIO()<br />{<br /> <br /> /* GPIO */<br /> GPIO_EN = 0x0000ffff;<br /> GPIO_DIR = 0x00002222; <br />}<br /><br />/*----------------------------------------------------------------------------*/<br /><br />/******************************************************************************<br />* End of main.c<br />******************************************************************************/<br /><br /><br />
|