DSP2812串口设置及中断服务之C++程序

[复制链接]
 楼主| hotpower 发表于 2008-5-6 00:32 | 显示全部楼层 |阅读模式
interrupt&nbsp;void&nbsp;ISRTxUart(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(Uart.SendWritePtr&nbsp;!=&nbsp;Uart.SendReadPtr)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SciaRegs.SCITXBUF&nbsp;=&nbsp;Uart.SendBuffer[Uart.SendReadPtr&nbsp;++];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uart.SendReadPtr&nbsp;&=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;Uart.SendBusy&nbsp;=&nbsp;Uart.SendWritePtr&nbsp;!=&nbsp;Uart.SendReadPtr;<br />&nbsp;&nbsp;&nbsp;&nbsp;SciaRegs.SCIFFTX.bit.TXINTCLR&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;PieCtrlRegs.PIEACK.bit.ACK9&nbsp;=&nbsp;1;<br />}<br /><br /><br />interrupt&nbsp;void&nbsp;ISRRxUart(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Uart.ReceiveBuffer[Uart.ReceiveWritePtr&nbsp;++]&nbsp;=&nbsp;SciaRegs.SCIRXBUF.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;Uart.ReceiveWritePtr&nbsp;&=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;SciaRegs.SCIFFRX.bit.RXFFOVRCLR&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;SciaRegs.SCIFFRX.bit.RXFFINTCLR&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;PieCtrlRegs.PIEACK.bit.ACK9&nbsp;=&nbsp;1;<br />}<br /><br />void&nbsp;UartObj::Init(void)<br />{<br />unsigned&nbsp;int&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt&nbsp;sizeof(ReceiveBuffer);&nbsp;i&nbsp;++)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReceiveBuffer&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendBuffer&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;ReceiveWritePtr&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;ReceiveReadPtr&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;ReceivePosition&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;ReceiveCount&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;SendWritePtr&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;SendReadPtr&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;SendBusy&nbsp;=&nbsp;false;<br />&nbsp;&nbsp;&nbsp;&nbsp;State&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;EALLOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPFMUX.bit.SCITXDA_GPIOF4&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPFMUX.bit.SCIRXDA_GPIOF5&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;EDIS;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;loopback&nbsp;&nbsp;&nbsp;8&nbsp;bit&nbsp;data&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;SciaRegs.SCICCR.all&nbsp;=&nbsp;0x07;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;1&nbsp;bit&nbsp;stop,&nbsp;disable&nbsp;parity,&nbsp;idle&nbsp;mode,&nbsp;8&nbsp;bits&nbsp;data&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SciaRegs.SCICTL1.all&nbsp;=&nbsp;0x03;&nbsp;//&nbsp;enable&nbsp;TX&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SciaRegs.SCICTL2.all&nbsp;=&nbsp;0x03;&nbsp;//<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SciaRegs.SCIHBAUD&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;SciaRegs.SCILBAUD&nbsp;=&nbsp;0xf3;//SCI_PRD&nbsp;&&nbsp;0xff;//0xF3;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SciaRegs.SCICTL1.all&nbsp;=&nbsp;0x23;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;PieCtrlRegs.PIECRTL.bit.ENPIE&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;//&nbsp;Enable&nbsp;the&nbsp;PIE&nbsp;block<br />&nbsp;&nbsp;&nbsp;&nbsp;PieCtrlRegs.PIEIER9.bit.INTx1&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;PieCtrlRegs.PIEIER9.bit.INTx2&nbsp;=&nbsp;1;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;/*设置中断服务程序入口地址*/<br />&nbsp;&nbsp;&nbsp;&nbsp;EALLOW;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;This&nbsp;is&nbsp;needed&nbsp;to&nbsp;write&nbsp;to&nbsp;EALLOW&nbsp;protected&nbsp;registers<br />&nbsp;&nbsp;&nbsp;&nbsp;PieVectTable.TXAINT&nbsp;=&nbsp;&ISRTxUart;<br />&nbsp;&nbsp;&nbsp;&nbsp;PieVectTable.RXAINT&nbsp;=&nbsp;&ISRRxUart;<br />&nbsp;&nbsp;&nbsp;&nbsp;EDIS;&nbsp;&nbsp;&nbsp;//&nbsp;This&nbsp;is&nbsp;needed&nbsp;to&nbsp;disable&nbsp;write&nbsp;to&nbsp;EALLOW&nbsp;protected&nbsp;registers<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;/*开中断*/<br />&nbsp;&nbsp;&nbsp;&nbsp;IER&nbsp;|=&nbsp;M_INT9;<br />}<br /><br />//KEY7压键事件处理<br />void&nbsp;KeyboardObj::Key17(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.BeepOn();<br />&nbsp;&nbsp;&nbsp;&nbsp;Lcd.SetDisplayPos(2,&nbsp;0);//汉字定位到上行左端<br />&nbsp;&nbsp;&nbsp;&nbsp;Lcd.Display(&quot;KEY7键单击事件!!&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;Uart.puts(&quot;KEY7键单击事件&quot;);<br />}<br />
 楼主| hotpower 发表于 2008-5-6 19:33 | 显示全部楼层

哈哈~~~楼上牛人以为DSP是PC机资源丰厚???阁下玩个试试???

  
rivflood 发表于 2008-5-6 20:03 | 显示全部楼层

^_^

要把DSP玩出DSP的样子,就要去研究算法!我们多是在应用,不管他DSP还是MCU只要用得好,需要管他像什么样么^_^
rivflood 发表于 2008-5-6 20:14 | 显示全部楼层

to hotpower

不知大虾的串口调试器是网上下载的么?叫啥名字,很不错的说^_^
 楼主| hotpower 发表于 2008-5-6 23:54 | 显示全部楼层

哈哈~~~玩DSP肯定要用算法的,但俺也不想浪费了28系列的控制

回楼上:&nbsp;这是网友汽车电子的串口通V3.20
rivflood 发表于 2008-5-7 20:36 | 显示全部楼层

谢过楼上,已下载!

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1460

主题

21619

帖子

508

粉丝
快速回复 在线客服 返回列表 返回顶部