DSP281X硬件SPI读写一体化C++函数(驱动74hc595)

[复制链接]
5220|16
 楼主| hotpower 发表于 2008-4-17 02:01 | 显示全部楼层 |阅读模式
//菜农HotPower@126.com&nbsp;2008.4.17&nbsp;1:58<br />void&nbsp;SystemObj::InitSpi(void)<br />{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;EALLOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPFMUX.all&nbsp;|=&nbsp;0x000F;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Select&nbsp;GPIOs&nbsp;to&nbsp;be&nbsp;SPI&nbsp;pins&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Port&nbsp;F&nbsp;MUX&nbsp;-&nbsp;x000&nbsp;0000&nbsp;0000&nbsp;1111<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EDIS;<br /><br />//&nbsp;Initialize&nbsp;SPI&nbsp;FIFO&nbsp;registers<br />&nbsp;&nbsp;&nbsp;&nbsp;SpiaRegs.SPIFFTX.all=0xE040;<br />&nbsp;&nbsp;&nbsp;&nbsp;SpiaRegs.SPIFFRX.all=0x204f;<br />&nbsp;&nbsp;&nbsp;&nbsp;SpiaRegs.SPIFFCT.all=0x0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SpiaRegs.SPICCR.all&nbsp;=0x0008;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Reset&nbsp;on,&nbsp;rising&nbsp;edge,&nbsp;8-bit&nbsp;char&nbsp;bits&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SpiaRegs.SPICTL.all&nbsp;=0x0006;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Enable&nbsp;master&nbsp;mode,&nbsp;normal&nbsp;phase,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;enable&nbsp;talk,&nbsp;and&nbsp;SPI&nbsp;int&nbsp;disabled.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SpiaRegs.SPIBRR&nbsp;=0x007F;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SpiaRegs.SPICCR.all&nbsp;=0x009F;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Relinquish&nbsp;SPI&nbsp;from&nbsp;Reset&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SpiaRegs.SPIPRI.bit.FREE&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Set&nbsp;so&nbsp;breakpoints&nbsp;don't&nbsp;disturb&nbsp;xmission<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//(CLKPOLARITY,CLK_PHASE&nbsp;)01&nbsp;10支持74HC595,00或11不支持&nbsp;&nbsp;测试通过&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SpiaRegs.SPICCR.bit.CLKPOLARITY&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;SpiaRegs.SPICTL.bit.CLK_PHASE&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.SpiReadWrite(0xff);//LED数码管灭<br />&nbsp;&nbsp;&nbsp;&nbsp;//发送595锁存脉冲信号RCLK<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SpiRclkRegs&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SpiRclkRegs&nbsp;=&nbsp;1;<br />}<br /><br />//硬件SPI读写一体化函数<br />unsigned&nbsp;char&nbsp;SystemObj::SpiReadWrite(unsigned&nbsp;char&nbsp;cData)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SpiaRegs.SPITXBUF&nbsp;=&nbsp;cData;<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Wait&nbsp;until&nbsp;data&nbsp;is&nbsp;received<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(SpiaRegs.SPIFFRX.bit.RXFFST&nbsp;!=1)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KickDog();//喂狗测试<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Check&nbsp;against&nbsp;sent&nbsp;data<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;SpiaRegs.SPIRXBUF;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br /><br /><br />//数码管<br />#define&nbsp;LedSegA&nbsp;&nbsp;0x01<br />#define&nbsp;LedSegB&nbsp;&nbsp;0x02<br />#define&nbsp;LedSegC&nbsp;&nbsp;0x04<br />#define&nbsp;LedSegD&nbsp;&nbsp;0x08<br />#define&nbsp;LedSegE&nbsp;&nbsp;0x10<br />#define&nbsp;LedSegF&nbsp;&nbsp;0x20<br />#define&nbsp;LedSegG&nbsp;&nbsp;0x40<br />#define&nbsp;LedSegH&nbsp;&nbsp;0x80<br />/*<br />#define&nbsp;LedSegA&nbsp;&nbsp;0x80<br />#define&nbsp;LedSegB&nbsp;&nbsp;0x40<br />#define&nbsp;LedSegC&nbsp;&nbsp;0x20<br />#define&nbsp;LedSegD&nbsp;&nbsp;0x10<br />#define&nbsp;LedSegE&nbsp;&nbsp;0x08<br />#define&nbsp;LedSegF&nbsp;&nbsp;0x04<br />#define&nbsp;LedSegG&nbsp;&nbsp;0x02<br />#define&nbsp;LedSegH&nbsp;&nbsp;0x01<br />*/<br /><br />#define&nbsp;LedChar0&nbsp;(LedSegA&nbsp;+&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;+&nbsp;LedSegD&nbsp;+&nbsp;LedSegE&nbsp;+&nbsp;LedSegF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />#define&nbsp;LedChar1&nbsp;(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />#define&nbsp;LedChar2&nbsp;(LedSegA&nbsp;+&nbsp;LedSegB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegD&nbsp;+&nbsp;LedSegE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedChar3&nbsp;(LedSegA&nbsp;+&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;+&nbsp;LedSegD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedChar4&nbsp;(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedChar5&nbsp;(LedSegA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegC&nbsp;+&nbsp;LedSegD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedChar6&nbsp;(LedSegA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegC&nbsp;+&nbsp;LedSegD&nbsp;+&nbsp;LedSegE&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedChar7&nbsp;(LedSegA&nbsp;+&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />#define&nbsp;LedChar8&nbsp;(LedSegA&nbsp;+&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;+&nbsp;LedSegD&nbsp;+&nbsp;LedSegE&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedChar9&nbsp;(LedSegA&nbsp;+&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;+&nbsp;LedSegD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedCharA&nbsp;(LedSegA&nbsp;+&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegE&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedCharB&nbsp;(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LedSegC&nbsp;+&nbsp;LedSegD&nbsp;+&nbsp;LedSegE&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedCharC&nbsp;(LedSegA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegD&nbsp;+&nbsp;LedSegE&nbsp;+&nbsp;LedSegF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />#define&nbsp;LedCharD&nbsp;(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;+&nbsp;LedSegD&nbsp;+&nbsp;LedSegE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedCharE&nbsp;(LedSegA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegD&nbsp;+&nbsp;LedSegE&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedCharF&nbsp;(LedSegA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegE&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br /><br /><br /><br />interrupt&nbsp;void&nbsp;ISRTimer2(void)<br />{<br />//以下定义为共阳数码管<br />static&nbsp;const&nbsp;unsigned&nbsp;char&nbsp;LedTab[]&nbsp;=&nbsp;<br />{//显示字符表存放在ROM中<br />&nbsp;&nbsp;LedChar0,&nbsp;LedChar1,&nbsp;LedChar2,&nbsp;LedChar3,<br />&nbsp;&nbsp;LedChar4,&nbsp;LedChar5,&nbsp;LedChar6,&nbsp;LedChar7,<br />&nbsp;&nbsp;LedChar8,&nbsp;LedChar9,&nbsp;LedCharA,&nbsp;LedCharB,<br />&nbsp;&nbsp;LedCharC,&nbsp;LedCharD,&nbsp;LedCharE,&nbsp;LedCharF<br />};<br />&nbsp;&nbsp;&nbsp;&nbsp;System.SpiReadWrite(~LedTab[Timer.Count2&nbsp;&&nbsp;0x0f]);//硬件SPI读写一体化函数<br />&nbsp;&nbsp;&nbsp;&nbsp;Timer.Count2++;<br />//发送595锁存脉冲信号RCLK<br />&nbsp;&nbsp;&nbsp;&nbsp;SpiRclkRegs&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;SpiRclkRegs&nbsp;=&nbsp;1;<br />}<br /><br />//数码管<br />#define&nbsp;LedSegA&nbsp;&nbsp;0x01<br />#define&nbsp;LedSegB&nbsp;&nbsp;0x02<br />#define&nbsp;LedSegC&nbsp;&nbsp;0x04<br />#define&nbsp;LedSegD&nbsp;&nbsp;0x08<br />#define&nbsp;LedSegE&nbsp;&nbsp;0x10<br />#define&nbsp;LedSegF&nbsp;&nbsp;0x20<br />#define&nbsp;LedSegG&nbsp;&nbsp;0x40<br />#define&nbsp;LedSegH&nbsp;&nbsp;0x80<br />/*<br />#define&nbsp;LedSegA&nbsp;&nbsp;0x80<br />#define&nbsp;LedSegB&nbsp;&nbsp;0x40<br />#define&nbsp;LedSegC&nbsp;&nbsp;0x20<br />#define&nbsp;LedSegD&nbsp;&nbsp;0x10<br />#define&nbsp;LedSegE&nbsp;&nbsp;0x08<br />#define&nbsp;LedSegF&nbsp;&nbsp;0x04<br />#define&nbsp;LedSegG&nbsp;&nbsp;0x02<br />#define&nbsp;LedSegH&nbsp;&nbsp;0x01<br />*/<br /><br />#define&nbsp;LedChar0&nbsp;(LedSegA&nbsp;+&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;+&nbsp;LedSegD&nbsp;+&nbsp;LedSegE&nbsp;+&nbsp;LedSegF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />#define&nbsp;LedChar1&nbsp;(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />#define&nbsp;LedChar2&nbsp;(LedSegA&nbsp;+&nbsp;LedSegB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegD&nbsp;+&nbsp;LedSegE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedChar3&nbsp;(LedSegA&nbsp;+&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;+&nbsp;LedSegD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedChar4&nbsp;(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedChar5&nbsp;(LedSegA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegC&nbsp;+&nbsp;LedSegD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedChar6&nbsp;(LedSegA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegC&nbsp;+&nbsp;LedSegD&nbsp;+&nbsp;LedSegE&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedChar7&nbsp;(LedSegA&nbsp;+&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />#define&nbsp;LedChar8&nbsp;(LedSegA&nbsp;+&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;+&nbsp;LedSegD&nbsp;+&nbsp;LedSegE&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedChar9&nbsp;(LedSegA&nbsp;+&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;+&nbsp;LedSegD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedCharA&nbsp;(LedSegA&nbsp;+&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegE&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedCharB&nbsp;(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LedSegC&nbsp;+&nbsp;LedSegD&nbsp;+&nbsp;LedSegE&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedCharC&nbsp;(LedSegA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegD&nbsp;+&nbsp;LedSegE&nbsp;+&nbsp;LedSegF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />#define&nbsp;LedCharD&nbsp;(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LedSegB&nbsp;+&nbsp;LedSegC&nbsp;+&nbsp;LedSegD&nbsp;+&nbsp;LedSegE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedCharE&nbsp;(LedSegA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegD&nbsp;+&nbsp;LedSegE&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br />#define&nbsp;LedCharF&nbsp;(LedSegA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;LedSegE&nbsp;+&nbsp;LedSegF&nbsp;+&nbsp;LedSegG)<br /><br />
zgl7903 发表于 2008-4-17 09:08 | 显示全部楼层

数码管格雷码的这一段定义比较赞赏 学习了

  
zealane 发表于 2008-5-11 22:29 | 显示全部楼层

hot大叔也搞个spi中断收发的啊,最好16位。

那样传输大量数据效率最高喽。
 楼主| hotpower 发表于 2008-5-11 22:31 | 显示全部楼层

九天的板子SPI只接了74hc595,实在不能双向~~~准备做MCBSP

  
 楼主| hotpower 发表于 2008-5-11 22:33 | 显示全部楼层

回4楼,中断收发很简单,不过俺记得2812的DSP好象只有8位

  
zealane 发表于 2008-5-12 10:43 | 显示全部楼层

2812是16位增强的spi

我现在spi也是8位传输,要传输6千个字节的数据,片内sram实在不够,放在片外ram读速度又比较慢,所以需要将6000个字节改成3000个uint16,完全利用16位数据线。<br />用中断是程序的数据量运算量大,需要高效率传输。<br />大叔不妨将spi接出来,通到其他mcu测试嘛~~~~~~~<br />比如主机用arm,从机dsp。这样做到两个mcu的数据传输。。。。<br />
zealane 发表于 2008-5-12 10:44 | 显示全部楼层

大叔把dsp当单片机玩,自然没有多少人响应瓦~~~

咳咳
yysmcu 发表于 2008-5-12 11:42 | 显示全部楼层

向HOT大叔学习

  
 楼主| hotpower 发表于 2008-5-12 21:26 | 显示全部楼层

哈哈~~~这些不过是例程~~~俺知道该如何玩

  
fiann 发表于 2008-5-23 17:15 | 显示全部楼层

请教

//硬件SPI读写一体化函数<br />unsigned&nbsp;char&nbsp;SystemObj::SpiReadWrite(unsigned&nbsp;char&nbsp;cData)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SpiaRegs.SPITXBUF&nbsp;=&nbsp;cData;<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Wait&nbsp;until&nbsp;data&nbsp;is&nbsp;received<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(SpiaRegs.SPIFFRX.bit.RXFFST&nbsp;!=1)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KickDog();//喂狗测试<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Check&nbsp;against&nbsp;sent&nbsp;data<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;SpiaRegs.SPIRXBUF;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br /><br />函数返回的是一个伪数据吧?
 楼主| hotpower 发表于 2008-5-25 21:39 | 显示全部楼层

都回的SPI数据(MISO)

  
zhongxon 发表于 2008-5-26 09:39 | 显示全部楼层

hotpower老兄的技术很厉害,人也很厚道。

你老兄做个2812的开发板吧,高水平&nbsp;,严要求,做个精品。<br />咱们还得在21上继续下去,别处也没更好的论坛,想信,咱们在这好好弄弄,应当还不错吧。。
phoenixmy 发表于 2008-5-26 09:59 | 显示全部楼层

哈哈

<br /><br />顶~~~~~~~~~~~~
涛行九天 发表于 2008-7-2 21:15 | 显示全部楼层

hq_y的建议甚好

如果大叔在北京,我早就上十二台大轿给抢过来了<br />哈哈
 楼主| hotpower 发表于 2008-7-4 01:19 | 显示全部楼层

九天同志很抱歉~~~最近精力在54x上,改日把281x整理一下~~~

  
hq_y 发表于 2008-7-4 09:01 | 显示全部楼层

九天没有诚意,西安离北京不远啊

  
涛行九天 发表于 2008-8-17 00:23 | 显示全部楼层

据我所知,大叔在家密炼上乘武功

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

本版积分规则

1460

主题

21617

帖子

508

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