[ZLG-ARM] LPC2103spi问题请教

[复制链接]
2226|3
 楼主| buermentu 发表于 2008-8-25 08:02 | 显示全部楼层 |阅读模式
检一2103做的产品,想拿来学学。查查资料写了个SPI的程序,用示波器看怎么连SCK信号都没有?郁闷了好几天了,芯片没坏,我串口都能出数据。请高手帮忙看看,谢谢!<br />#include&nbsp;&quot;config.h&quot;<br /><br />#define&nbsp;PWM0CON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(*((volatile&nbsp;unsigned&nbsp;long&nbsp;*)&nbsp;0xE0004074))<br />/*&nbsp;&nbsp;flash&nbsp;&nbsp;&nbsp;*/<br />#define&nbsp;FlashCmd1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x03;<br />unsigned&nbsp;char&nbsp;inbuff[32];<br />unsigned&nbsp;char&nbsp;outbuff[32];<br />unsigned&nbsp;char&nbsp;in_num;<br />unsigned&nbsp;char&nbsp;out_num;<br />unsigned&nbsp;char&nbsp;out_ptr;<br /><br />uint8&nbsp;&nbsp;&nbsp;&nbsp;temp;<br /><br /><br />unsigned&nbsp;int&nbsp;rec_num;<br />unsigned&nbsp;char&nbsp;flag;<br />uint32&nbsp;step_num;<br /><br /><br /><br /><br /><br />void&nbsp;Delay(uint32&nbsp;&nbsp;dly);<br /><br /><br />//uint8&nbsp;rcv_buf[8];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;UART0数据接收缓冲区<br />//volatile&nbsp;uint8&nbsp;rcv_new;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;接收新数据标志<br />/***********FLASH&nbsp;函数*************/<br />//spi<br />//dig=(dig%100)+160+((dig/100)+160)*256<br /><br />#define&nbsp;&nbsp;MSTR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1&lt&lt5)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br />#define&nbsp;&nbsp;CPOL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1&lt&lt4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br />#define&nbsp;&nbsp;CPHA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1&lt&lt3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br />#define&nbsp;&nbsp;LSBF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1&lt&lt6)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br /><br />#define&nbsp;&nbsp;MSPI_MODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(MSTR|CPOL|CPHA)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*接口模式MSTR&nbsp;=&nbsp;1,CPOL&nbsp;=&nbsp;1,CPHA&nbsp;=&nbsp;0,LSBF&nbsp;=&nbsp;0&nbsp;&nbsp;*/<br />#define&nbsp;&nbsp;SSPI_MODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(CPHA)&nbsp;&nbsp;<br /><br />#define&nbsp;&nbsp;&nbsp;SPI_CS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1&lt&lt18)&nbsp;<br /><br />/*<br />void&nbsp;SSpiIni(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S1PCR&nbsp;=&nbsp;SSPI_MODE;<br /><br />}<br />void&nbsp;SSendData(unit8&nbsp;data)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;S1PDR&nbsp;=&nbsp;data;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(0&nbsp;==&nbsp;(S1PSR&0X80));<br /><br />}<br />unit8&nbsp;SRcvData(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(0&nbsp;==&nbsp;(S1PSR&0x80));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(S1PDR);<br />}<br /><br /><br /><br />*/<br /><br />///////////////////////////////////////////////////////////////////////////////////////////////<br /><br />void&nbsp;MSPI_Init(uint8&nbsp;fdiv)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//初始化SPI接口,设置为主机fdiv&nbsp;大于8的偶数<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(fdiv&lt8)&nbsp;fdiv&nbsp;=&nbsp;8;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S0PCCR&nbsp;=&nbsp;fdiv&0xfe;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//2103没有SPI0和SPI1&nbsp;&nbsp;&nbsp;&nbsp;!!!!!设置SPI时钟分频<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delay(5555);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IOSET|=&nbsp;1&lt&lt9;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//deng&nbsp;mei<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay(5555);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S0PCR&nbsp;&nbsp;&nbsp;=&nbsp;MSPI_MODE;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S0SPCR??????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S0PCR&nbsp;&nbsp;&nbsp;=&nbsp;0x38;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IOCLR|=&nbsp;1&lt&lt9;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delay(5555);<br />}<br />uint8&nbsp;MSendData(uint8&nbsp;data)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IOCLR&nbsp;=&nbsp;SPI_CS;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S0PDR&nbsp;=&nbsp;data;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(0==(S0PSR&0X80));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IOSET&nbsp;=&nbsp;SPI_CS;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(S0PDR);<br />}<br /><br />&nbsp;<br /><br /><br /><br /><br />///////////////////////////////////////////<br /><br />void&nbsp;Feed(unsigned&nbsp;long&nbsp;step)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;step_num&nbsp;=&nbsp;step;<br />&nbsp;&nbsp;&nbsp;&nbsp;T0TCR&nbsp;=&nbsp;0x01;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//启动定时器<br />&nbsp;&nbsp;&nbsp;&nbsp;IOSET&nbsp;&nbsp;|=&nbsp;1&lt&lt30;&nbsp;&nbsp;//打开电动机电源<br />}<br /><br />void&nbsp;__irq&nbsp;InterUart0()&nbsp;<br />{<br />&nbsp;&nbsp;if((U0LSR&nbsp;&&nbsp;0x01)==1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IOSET&nbsp;|=&nbsp;1&lt&lt9;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inbuff[in_num]&nbsp;=&nbsp;U0RBR;<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;U0THR&nbsp;=&nbsp;inbuff[in_num];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;U0THR&nbsp;=&nbsp;temp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in_num++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(in_num&nbsp;&gt&nbsp;32)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in_num=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;VICVectAddr&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;Feed(200);<br />}<br /><br />void&nbsp;__irq&nbsp;InterTime0()<br />{<br />&nbsp;&nbsp;&nbsp;T0IR&nbsp;=&nbsp;0x01;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//CR3中断;p0.18&nbsp;&nbsp;&nbsp;复位中断;<br />&nbsp;&nbsp;&nbsp;T0TCR&nbsp;=&nbsp;0x00;&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;U0THR&nbsp;=&nbsp;'o';<br />&nbsp;&nbsp;&nbsp;while(&nbsp;(U0LSR&0x40)==0);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;VICVectAddr&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;if(flag==0)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((IOSET&(1&lt&lt11))!=0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IOCLR&nbsp;|=&nbsp;1&lt&lt11;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&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;&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;&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;&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;&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IOSET&nbsp;|=&nbsp;1&lt&lt11;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((IOSET&(1&lt&lt12))!=0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IOCLR&nbsp;&nbsp;|=&nbsp;1&lt&lt12;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IOSET&nbsp;&nbsp;|=&nbsp;1&lt&lt12;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;if(--step_num!=0)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;T0TCR&nbsp;=&nbsp;0x01;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;else<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;loop=0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(loop--!=0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IOCLR&nbsp;&nbsp;|=&nbsp;1&lt&lt30;<br />&nbsp;&nbsp;}&nbsp;<br />}<br /><br />void&nbsp;Uart0Init()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;fdiv;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VICIntSelect&nbsp;&nbsp;&=&nbsp;&nbsp;&nbsp;&nbsp;0xbf;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntEnable&nbsp;|=&nbsp;&nbsp;&nbsp;1&lt&lt6;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectCntl1&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;0x26;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr1&nbsp;&nbsp;=&nbsp;&nbsp;(uint32)InterUart0;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;U0LCR&nbsp;=&nbsp;0X83;&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;//允许访问除数寄存器在DLAB==1<br />&nbsp;&nbsp;&nbsp;&nbsp;fdiv&nbsp;=&nbsp;(Fpclk/16)/9600;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br />&nbsp;&nbsp;&nbsp;&nbsp;U0DLM&nbsp;=&nbsp;fdiv&gt&gt8;<br />&nbsp;&nbsp;&nbsp;&nbsp;U0DLL&nbsp;=&nbsp;fdiv&0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;U0FCR&nbsp;=&nbsp;0x01;&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;//FIFO控制,BIT&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;U0LCR&nbsp;=&nbsp;0x03;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;U0IER&nbsp;=&nbsp;0x01;&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;//必须在DLAB==0时允许接受中断<br />}<br /><br /><br />void&nbsp;Time0Init(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;T0TC&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;T0PR&nbsp;=&nbsp;0;&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;T0MCR&nbsp;=0x03;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置匹配后,复位T0TC,并产生中断;<br />&nbsp;&nbsp;&nbsp;&nbsp;T0MR0&nbsp;=&nbsp;Fpclk/200;<br />&nbsp;&nbsp;&nbsp;&nbsp;T0TCR&nbsp;=&nbsp;0x01;&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;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntEnable&nbsp;|=&nbsp;&nbsp;&nbsp;1&lt&lt4;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr2&nbsp;&nbsp;=&nbsp;&nbsp;(uint32)InterTime0;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectCntl2&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;0x24;&nbsp;<br />}<br />void&nbsp;Delay(uint32&nbsp;&nbsp;dly)<br />{<br />&nbsp;&nbsp;&nbsp;uint32&nbsp;&nbsp;&nbsp;i;<br />&nbsp;&nbsp;&nbsp;for(;dly&nbsp;&gt&nbsp;0;dly--)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt5000;i++);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />}&nbsp;<br /><br /><br />int&nbsp;main&nbsp;(void)&nbsp;<br />{&nbsp;&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;do<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINSEL0&nbsp;=&nbsp;0x05;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINSEL0&nbsp;=&nbsp;0X5505;<br />&nbsp;&nbsp;&nbsp;&nbsp;IODIR&nbsp;&nbsp;|=&nbsp;0xfff&lt&lt9;&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;//p0.9-p0.12为输出模式<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;IOCLR&nbsp;|=&nbsp;1&lt&lt9;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//DENG&nbsp;liang<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay(5555);<br />&nbsp;&nbsp;&nbsp;&nbsp;IOSET&nbsp;|=&nbsp;1&lt&lt9;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//DENG&nbsp;mei<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay(5555);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;IODIR&nbsp;&nbsp;|=&nbsp;1&lt&lt30;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MSPI_Init(52);&nbsp;&nbsp;&nbsp;&nbsp;////?????????<br /><br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSendData(0x03);<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;=&nbsp;&nbsp;&nbsp;MSendData(0x03);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;Feed(temp);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;Delay(9999);<br />&nbsp;&nbsp;&nbsp;&nbsp;IOSET&nbsp;&nbsp;|=&nbsp;1&lt&lt30;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;U0FCR&nbsp;=&nbsp;0x81;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//8bit&nbsp;&nbsp;&nbsp;&nbsp;可改&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使能FIFO,并设置触发点为8字节,就是Rx触发<br />&nbsp;&nbsp;&nbsp;&nbsp;U0IER&nbsp;=&nbsp;0x01;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IRQEnable();&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;//IRQ&nbsp;中断必须开<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uart0Init();&nbsp;&nbsp;&nbsp;&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;VICSoftInt&nbsp;=1&lt&lt6;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Time0Init();<br />&nbsp;&nbsp;&nbsp;&nbsp;U0IIR&nbsp;=&nbsp;0x00;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;IOSET&nbsp;|=&nbsp;1&lt&lt10;&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;//打开1838使能<br />&nbsp;&nbsp;&nbsp;&nbsp;Feed(400);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />}&nbsp;&nbsp;&nbsp;&nbsp;<br />
 楼主| buermentu 发表于 2008-8-25 15:31 | 显示全部楼层

怎么没人回答呀。。。

真不知道到底哪个地方出错了<br />
 楼主| buermentu 发表于 2008-8-26 13:47 | 显示全部楼层

问题解决

是因为程序里头为了调试方便做了很多延时,自己又加了串口和定时器等中断,很难用示波器查看到SCK的波形。直到今天把字库芯片里的点阵数据读出来才知道。差点郁闷死了。。。以后单个功能一定要单个调!
biao.l 发表于 2008-8-26 15:56 | 显示全部楼层

楼主用的示波器没捕捉功能,郁闷

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

本版积分规则

12

主题

63

帖子

6

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