提供单独带编程器的高质量模块化编程单片机学习板98元

[复制链接]
 楼主| 01dxwlm 发表于 2009-5-2 20:07 | 显示全部楼层 |阅读模式
1.学习单片机须注意以下几点:<br />首先你要明确学习单片机的目的是什么,对于大多数学习者来说,学习单片机的目的应该是应用,把它运用到你所在的行业或产品之中,单片机对于你的工作来说,只是一个工具或部件,那么在应用中我们选用单片机的标准是什么呢?四个字“够用就行”。可以说现在应用系统中绝大部分的项目,最简单的8位51单片机就可以胜任,现在真正需要高档单片机的项目还是少数。老板们<br />不会投入多余的钱去选用你推荐的所谓高级单片机,大部分人遵循“只买对的不买贵的”这样理性的原则,理性的人不会盲目的追随比尔&nbsp;盖茨的不断升级,因为这些东西一方面有技术发展的需求,但是也有相当一部分是老板们为追求更大商业利益的炒作。因此我还是要说,如果你没有学过C51单片机的话,还是要学C51单片机。为什么?原因很简单,因为它是单片机的祖宗,后来的单片机都是在它的基础上开发出来的,是他的儿孙们。它也最容易学,更适合初学者。它的功能强大,物美价廉,大部分应用项目用它就够了,没有必要用高档的,当你学会了C51之后,如果确实需要用别的单片机,对于使用C语言编程的人来说,学习其它单片机还是比较容易的,写好的程序移植到其他单片机上也不是很难的事情,他们都是相通的.&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;F-EeeOS学习板是明霞科技为“单片机和嵌入试操作系统应用”课程的专门设计的实验平台,它以AT89S52为范例介绍了MCS-51系列单片机各部件的C语言编程,产品开发中常用外设驱动程序编写的方法,目前流行的RTOS操作系统uCOS-Ⅱ在MCS-51系列单片机的移植和应用。<br />&nbsp;&nbsp;F-EeeOS学习板资源丰富,明霞科技为您提供了基础篇,提高篇,高级篇三种类型的实验,其中基础篇的实验能快速帮助您熟悉MCS51系列单片机各部件的使用,学习完基础篇后,您会对MCS51系列单片机有个清晰的认识,能够在单片机上实现简单的功能;&nbsp;提高篇是为对单片机有了认识后准备的,在这篇中通过学习LCD显示,I/O口模拟IIC通信,RS232通信的驱动程序编写,您能熟悉常用外设开发的方法,能培养您以后在产品开发过程中良好的编程习惯和&nbsp;编写模块化程序的方法,在您认真学习完提高篇的实验后您可以大声地说:“我已经进入单片机开发的大门!”;高级篇是对单片机开发更深一步的探讨,是为今后您学习更高级CPU做准备的,在这篇中明霞科技通过实验告诉您如何把目前流行的ucos操作系统移植到MCS51写列芯片上,如何快速掌握基于ucos操作系统开发自己的产品和如何快进行模块化程序设计,最后再通过闹钟程序事例帮助您对整个学习做最后的巩固。<br />&nbsp;&nbsp;&nbsp;最后我相信大家在完成这些实验后能熟练掌握单片机开发的方法,只要您认真完成了这些实验您今后一定能快速成长为一个优秀的单片机开发者!<br /><br /><br />有兴趣的请联系QQ:11830067&nbsp;<br />电话:13590189626(深圳号码)<br /><br />如果学生团队购买价格更加优惠。<br />2.这是提供给用户学习模块化程序设计的例子(队列来实现串口的驱动).<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SCI_DRIVER<br />/*****************************************************************************************<br />*Copyright:&nbsp;&nbsp;&nbsp;&nbsp;MASNK&nbsp;Corporation&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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 />*File&nbsp;name:&nbsp;&nbsp;&nbsp;&nbsp;SciDriver.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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 />*Author:&nbsp;&nbsp;&nbsp;&nbsp;Kenny_wang&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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 />*Version:&nbsp;&nbsp;&nbsp;&nbsp;V1.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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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 />*Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2008/06/24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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 />******************************************************************************************/<br /><br />/*****************************************************************************************<br />&nbsp;Hardware&nbsp;Environment:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT89S52&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Crystal:6M&nbsp;Hz<br />******************************************************************************************/<br />/*****************************************************************************************<br />*Modify&nbsp;List:<br />*<br />*1.2008/06/25&nbsp;&nbsp;&nbsp;&nbsp;Kenny_wang&nbsp;<br />*----(1).release&nbsp;the&nbsp;original&nbsp;version.&nbsp;<br />*<br />******************************************************************************************/<br />#include&nbsp;&nbsp;&nbsp;&nbsp;&quot;reg52.h&quot;<br />#include&nbsp;&nbsp;&nbsp;&nbsp;&quot;SciDriverSciDriver.h&quot;<br />#include&nbsp;&nbsp;&nbsp;&nbsp;&quot;SciDriverSourceFunLst.h&quot;<br />#include&nbsp;&nbsp;&nbsp;&nbsp;&quot;SciDriverPortsSciconfig.h&quot;<br /><br /><br />/********************************************************************************<br />*&nbsp;Constant&nbsp;Define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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 />********************************************************************************/<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cQBufNormal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cQBufFull&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cQBufEmpty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2<br /><br />/********************************************************************************<br />*&nbsp;Queue&nbsp;structure&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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 />********************************************************************************/<br />typedef&nbsp;&nbsp;&nbsp;&nbsp;struct{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*pIn;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*pOut;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*pStart;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bLength;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wSize;<br />&nbsp;&nbsp;&nbsp;&nbsp;}QUEUE;<br /><br />/********************************************************************************<br />*&nbsp;Sci&nbsp;structure&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;Including&nbsp;tranmit&nbsp;and&nbsp;receive&nbsp;queue&nbsp;structure&nbsp;and&nbsp;Tx,Rx&nbsp;threshold&nbsp;variabls&nbsp;&nbsp;&nbsp;&nbsp;*<br />********************************************************************************/<br />typedef&nbsp;&nbsp;&nbsp;&nbsp;struct{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bTxStatus;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wTxLength;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*pbTx;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QUEUE&nbsp;&nbsp;&nbsp;&nbsp;*pqRx;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bSciType;<br />&nbsp;&nbsp;&nbsp;&nbsp;}SciStruct;<br /><br />/********************************************************************************<br />*&nbsp;List&nbsp;of&nbsp;Sci&nbsp;structure&nbsp;and&nbsp;queue&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 />********************************************************************************/<br />SciStruct&nbsp;&nbsp;&nbsp;&nbsp;SciList;<br />SciStruct&nbsp;&nbsp;&nbsp;&nbsp;*pSciIndex;<br />QUEUE&nbsp;&nbsp;&nbsp;&nbsp;QList;<br />unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bSciRxBuf[MAX_SCI_BUF_SIZE];<br />unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*pSciBuf&nbsp;=&nbsp;bSciRxBuf;<br />unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bSciNo&nbsp;=&nbsp;0;<br /><br />/********************************************************************************<br />*&nbsp;Internal&nbsp;Function&nbsp;Declaration&nbsp;&nbsp;&nbsp;&nbsp;&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 />********************************************************************************/<br />void&nbsp;&nbsp;&nbsp;&nbsp;sQInit(QUEUE&nbsp;*pq,unsigned&nbsp;char&nbsp;&nbsp;*pStart,unsigned&nbsp;int&nbsp;&nbsp;wSize);<br />unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sQDataIn(QUEUE&nbsp;*pq,unsigned&nbsp;char&nbsp;&nbsp;bData);&nbsp;<br />unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sQDataOut(QUEUE&nbsp;*pq,unsigned&nbsp;char&nbsp;&nbsp;*pData);<br /><br />/********************************************************************************<br />*Function&nbsp;name:&nbsp;&nbsp;&nbsp;&nbsp;sQInit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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 />*Parameters:&nbsp;&nbsp;&nbsp;&nbsp;pq:&nbsp;&nbsp;&nbsp;&nbsp;pointer&nbsp;to&nbsp;queue&nbsp;structure&nbsp;to&nbsp;be&nbsp;initialized&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start:&nbsp;&nbsp;&nbsp;&nbsp;start&nbsp;address&nbsp;of&nbsp;ring&nbsp;buffer&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;size:&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;size&nbsp;of&nbsp;the&nbsp;ring&nbsp;buffer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*Description:&nbsp;&nbsp;&nbsp;&nbsp;initialize&nbsp;a&nbsp;queue&nbsp;structure&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />********************************************************************************/<br />void&nbsp;&nbsp;&nbsp;&nbsp;sQInit(QUEUE&nbsp;*pq,unsigned&nbsp;char&nbsp;&nbsp;*pStart,unsigned&nbsp;int&nbsp;&nbsp;wSize)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;pq-&gtpIn&nbsp;=&nbsp;pStart;<br />&nbsp;&nbsp;&nbsp;&nbsp;pq-&gtpOut&nbsp;=&nbsp;pStart;<br />&nbsp;&nbsp;&nbsp;&nbsp;pq-&gtpStart&nbsp;=&nbsp;pStart;<br />&nbsp;&nbsp;&nbsp;&nbsp;pq-&gtbLength&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;pq-&gtwSize&nbsp;=&nbsp;wSize;<br />}<br /><br />/********************************************************************************<br />*Function&nbsp;name:&nbsp;&nbsp;&nbsp;&nbsp;sQDataIn&nbsp;&nbsp;&nbsp;&nbsp;&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 />*Parameters:&nbsp;&nbsp;&nbsp;&nbsp;pq:&nbsp;&nbsp;&nbsp;&nbsp;pointer&nbsp;to&nbsp;queue&nbsp;structure&nbsp;to&nbsp;be&nbsp;initialized&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data:&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;data&nbsp;to&nbsp;be&nbsp;inserted&nbsp;into&nbsp;the&nbsp;queue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*Returns:&nbsp;&nbsp;&nbsp;&nbsp;cQBufNormal:&nbsp;&nbsp;&nbsp;&nbsp;data&nbsp;has&nbsp;been&nbsp;inserted&nbsp;into&nbsp;the&nbsp;queue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cQBufFull:&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;buffer&nbsp;is&nbsp;full&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*Description:&nbsp;&nbsp;&nbsp;&nbsp;insert&nbsp;a&nbsp;data&nbsp;into&nbsp;the&nbsp;queue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />********************************************************************************/<br />unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sQDataIn(QUEUE&nbsp;*pq,unsigned&nbsp;char&nbsp;&nbsp;bData)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if(pq-&gtbLength&nbsp;==&nbsp;pq-&gtwSize)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(pq-&gtpIn&nbsp;==&nbsp;pq-&gtpStart)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(pq-&gtpStart&nbsp;+&nbsp;pq-&gtwSize)&nbsp;=&nbsp;bData;<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;*(pq-&gtpIn-1)&nbsp;=&nbsp;bData;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(cQBufFull);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(pq-&gtpIn)&nbsp;=&nbsp;bData;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pq-&gtbLength++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(pq-&gtpIn&nbsp;==&nbsp;pq-&gtpStart&nbsp;+&nbsp;pq-&gtwSize&nbsp;-&nbsp;1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pq-&gtpIn&nbsp;=&nbsp;pq-&gtpStart;<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;pq-&gtpIn++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(cQBufNormal);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />/********************************************************************************<br />*Function&nbsp;name:&nbsp;&nbsp;&nbsp;&nbsp;sQDataOut&nbsp;&nbsp;&nbsp;&nbsp;&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 />*Parameters:&nbsp;&nbsp;&nbsp;&nbsp;pq:&nbsp;&nbsp;&nbsp;&nbsp;pointer&nbsp;to&nbsp;queue&nbsp;structure&nbsp;to&nbsp;be&nbsp;initialized&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pdata:&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;address&nbsp;to&nbsp;save&nbsp;the&nbsp;data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*Returns:&nbsp;&nbsp;&nbsp;&nbsp;cQBufNormal:&nbsp;&nbsp;&nbsp;&nbsp;data&nbsp;has&nbsp;been&nbsp;inserted&nbsp;into&nbsp;the&nbsp;queue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cQBufEmpty:&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;buffer&nbsp;is&nbsp;empty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*Description:&nbsp;&nbsp;&nbsp;&nbsp;Get&nbsp;a&nbsp;data&nbsp;from&nbsp;the&nbsp;queue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />********************************************************************************/<br />unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sQDataOut(QUEUE&nbsp;*pq,unsigned&nbsp;char&nbsp;&nbsp;*pData)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if(pq-&gtbLength&nbsp;==&nbsp;0)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(cQBufEmpty);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;*pData&nbsp;=&nbsp;*(pq-&gtpOut);<br />&nbsp;&nbsp;&nbsp;&nbsp;pq-&gtbLength--;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(pq-&gtpOut&nbsp;==&nbsp;pq-&gtpStart&nbsp;+&nbsp;pq-&gtwSize&nbsp;-&nbsp;1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pq-&gtpOut&nbsp;=&nbsp;pq-&gtpStart;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pq-&gtpOut++;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return(cQBufNormal);<br />}<br /><br />/********************************************************************************<br />*Function&nbsp;Name:&nbsp;&nbsp;&nbsp;&nbsp;sInitialSci&nbsp;&nbsp;&nbsp;&nbsp;&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 />*Parameters:&nbsp;&nbsp;&nbsp;&nbsp;bSciId:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sci&nbsp;id&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;*bRxBuf:&nbsp;&nbsp;&nbsp;&nbsp;receive&nbsp;buffer&nbsp;start&nbsp;address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wRxSize:&nbsp;&nbsp;&nbsp;&nbsp;receive&nbsp;buffer&nbsp;length&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;bTxBuf:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transmit&nbsp;buffer&nbsp;start&nbsp;address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wTxSize:&nbsp;&nbsp;&nbsp;&nbsp;transmit&nbsp;buffer&nbsp;length&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;type:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sci&nbsp;type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*Descriptions:&nbsp;&nbsp;&nbsp;&nbsp;assign&nbsp;and&nbsp;initialize&nbsp;the&nbsp;sci&nbsp;control&nbsp;struct&nbsp;to&nbsp;&nbsp;sci&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />********************************************************************************/<br />void&nbsp;&nbsp;&nbsp;&nbsp;sInitialSci(unsigned&nbsp;int&nbsp;&nbsp;wRxSize,unsigned&nbsp;char&nbsp;&nbsp;bType)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;QUEUE&nbsp;&nbsp;&nbsp;&nbsp;*pq;<br />&nbsp;&nbsp;&nbsp;&nbsp;SciStruct&nbsp;&nbsp;&nbsp;&nbsp;*pSci;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;pSci&nbsp;=&nbsp;&SciList;<br />&nbsp;&nbsp;&nbsp;&nbsp;pSciIndex&nbsp;=&nbsp;pSci;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;pSci-&gtpqRx&nbsp;=&nbsp;&QList;<br />&nbsp;&nbsp;&nbsp;&nbsp;pq&nbsp;=&nbsp;pSci-&gtpqRx;<br />&nbsp;&nbsp;&nbsp;&nbsp;sQInit(pq,pSciBuf,wRxSize);<br />&nbsp;&nbsp;&nbsp;&nbsp;pSciBuf&nbsp;+=&nbsp;wRxSize;<br />&nbsp;&nbsp;&nbsp;&nbsp;bSciNo++;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;pSci-&gtbTxStatus&nbsp;=&nbsp;cSciTxRdy;<br />&nbsp;&nbsp;&nbsp;&nbsp;pSci-&gtwTxLength&nbsp;=&nbsp;0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;pSci-&gtbSciType&nbsp;=&nbsp;bType;<br />}<br /><br />/********************************************************************************<br />*Function&nbsp;Name:&nbsp;&nbsp;&nbsp;&nbsp;sSciRxISR&nbsp;&nbsp;&nbsp;&nbsp;&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 />*Parameters:&nbsp;&nbsp;&nbsp;&nbsp;bSciId:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sci&nbsp;id&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 />*Description:&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;function&nbsp;is&nbsp;executed&nbsp;in&nbsp;Sci&nbsp;rx&nbsp;interrupt&nbsp;io2sci&nbsp;rx&nbsp;compare&nbsp;&nbsp;&nbsp;&nbsp;*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;interrupt.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />********************************************************************************/<br />void&nbsp;&nbsp;&nbsp;&nbsp;sSciRxISR(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bData;<br />&nbsp;&nbsp;&nbsp;&nbsp;QUEUE&nbsp;&nbsp;&nbsp;&nbsp;*pq;<br />&nbsp;&nbsp;&nbsp;&nbsp;SciStruct&nbsp;&nbsp;&nbsp;&nbsp;*pSci;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;pSci&nbsp;=&nbsp;pSciIndex;<br />&nbsp;&nbsp;&nbsp;&nbsp;pq&nbsp;=&nbsp;pSci-&gtpqRx;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if(sbGetSciRxRdy()&nbsp;==&nbsp;cSciRxRdy)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sSciResetRx();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bData&nbsp;=&nbsp;sbGetSciRxData();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sQDataIn(pq,bData);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />/********************************************************************************<br />*Function&nbsp;Name:&nbsp;&nbsp;&nbsp;&nbsp;sSciRead&nbsp;&nbsp;&nbsp;&nbsp;&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 />*Parameters:&nbsp;&nbsp;&nbsp;&nbsp;bSciId:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sci&nbsp;id&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;*pBuf:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address&nbsp;to&nbsp;save&nbsp;data&nbsp;received&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*Returns:&nbsp;&nbsp;&nbsp;&nbsp;cSciRxBufEmpty:&nbsp;&nbsp;&nbsp;&nbsp;receive&nbsp;&nbsp;buffer&nbsp;is&nbsp;empty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cSciRxRdy:&nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;one&nbsp;byte&nbsp;data&nbsp;successfully&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*Description:&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;function&nbsp;is&nbsp;executed&nbsp;in&nbsp;AP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />********************************************************************************/<br />unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sSciRead(unsigned&nbsp;char&nbsp;&nbsp;*pBuf)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;QUEUE&nbsp;&nbsp;&nbsp;&nbsp;*pq;<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bTemp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SciStruct&nbsp;&nbsp;&nbsp;&nbsp;*pSci;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;pSci&nbsp;=&nbsp;pSciIndex;<br />&nbsp;&nbsp;&nbsp;&nbsp;pq&nbsp;=&nbsp;pSci-&gtpqRx;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;OS_ENTER_CRITICAL();<br />&nbsp;&nbsp;&nbsp;&nbsp;bTemp&nbsp;=&nbsp;sQDataOut(pq,pBuf);<br />&nbsp;&nbsp;&nbsp;&nbsp;OS_EXIT_CRITICAL();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if(bTemp&nbsp;==&nbsp;cQBufEmpty)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(cSciRxBufEmpty);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(cSciRxRdy);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />/********************************************************************************<br />*Function&nbsp;Name:&nbsp;&nbsp;&nbsp;&nbsp;sSciTxISR&nbsp;&nbsp;&nbsp;&nbsp;&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 />*Parameters:&nbsp;&nbsp;&nbsp;&nbsp;bSciId:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sci&nbsp;id&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 />*Description:&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;function&nbsp;is&nbsp;executed&nbsp;in&nbsp;Sci&nbsp;Tx&nbsp;interrupt&nbsp;io2sci&nbsp;Tx&nbsp;compare&nbsp;&nbsp;&nbsp;&nbsp;*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;interrupt.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />********************************************************************************/<br />void&nbsp;&nbsp;&nbsp;&nbsp;sSciTxISR(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;SciStruct&nbsp;&nbsp;&nbsp;&nbsp;*pSci;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;pSci&nbsp;=&nbsp;pSciIndex;<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if(sbGetSciTxRdy()&nbsp;==&nbsp;cSciTxRdy)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(pSci-&gtwTxLength&nbsp;==&nbsp;0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pSci-&gtbTxStatus&nbsp;=&nbsp;cSciTxRdy;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sSciResetTx();<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;sSciTxData(*(pSci-&gtpbTx));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(pSci-&gtpbTx)++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(pSci-&gtwTxLength)--;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sSciResetTx();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />/********************************************************************************<br />*Function&nbsp;Name:&nbsp;&nbsp;&nbsp;&nbsp;sSciWrite&nbsp;&nbsp;&nbsp;&nbsp;&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 />*Parameters:&nbsp;&nbsp;&nbsp;&nbsp;bSciId:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sci&nbsp;id&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;*pstart:&nbsp;&nbsp;&nbsp;&nbsp;start&nbsp;address&nbsp;of&nbsp;data&nbsp;to&nbsp;be&nbsp;sent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wLength:&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;length&nbsp;of&nbsp;data&nbsp;to&nbsp;be&nbsp;send&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*Returns:&nbsp;&nbsp;&nbsp;&nbsp;cSciTxBufFull:&nbsp;&nbsp;&nbsp;&nbsp;transmit&nbsp;&nbsp;buffer&nbsp;is&nbsp;empty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cSciTxRdy:&nbsp;&nbsp;&nbsp;&nbsp;send&nbsp;one&nbsp;byte&nbsp;data&nbsp;successfully&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*Description:&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;function&nbsp;is&nbsp;executed&nbsp;in&nbsp;AP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />********************************************************************************/<br />unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sSciWrite(unsigned&nbsp;char&nbsp;&nbsp;*pStart,unsigned&nbsp;int&nbsp;&nbsp;wLength)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;SciStruct&nbsp;&nbsp;&nbsp;&nbsp;*pSci;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;pSci&nbsp;=&nbsp;pSciIndex;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if(pSci-&gtbTxStatus&nbsp;==&nbsp;cSciTxBusy)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(cSciTxBusy);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;OS_ENTER_CRITICAL();<br />&nbsp;&nbsp;&nbsp;&nbsp;pSci-&gtpbTx&nbsp;=&nbsp;pStart;<br />&nbsp;&nbsp;&nbsp;&nbsp;pSci-&gtwTxLength&nbsp;=&nbsp;wLength;<br />&nbsp;&nbsp;&nbsp;&nbsp;pSci-&gtbTxStatus&nbsp;=&nbsp;cSciTxBusy;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;sSciTxData(*(pSci-&gtpbTx));<br />&nbsp;&nbsp;&nbsp;&nbsp;(pSci-&gtpbTx)++;<br />&nbsp;&nbsp;&nbsp;&nbsp;(pSci-&gtwTxLength)--;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;OS_EXIT_CRITICAL();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;return(cSciTxRdy);<br />}<br /><br />/********************************************************************************<br />*Function&nbsp;Name:&nbsp;&nbsp;&nbsp;&nbsp;sbGetSciTxStatus&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 />*Parameters:&nbsp;&nbsp;&nbsp;&nbsp;bSciId:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sci&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*Returns:&nbsp;&nbsp;&nbsp;&nbsp;sci&nbsp;tx&nbsp;status&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cSciTxRdy&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cSciTxBusy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*Description:&nbsp;&nbsp;&nbsp;&nbsp;Get&nbsp;the&nbsp;sci&nbsp;trasmit&nbsp;status&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />********************************************************************************/<br />unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sbGetSciTxStatus(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;SciStruct&nbsp;&nbsp;&nbsp;&nbsp;*pSci;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;pSci&nbsp;=&nbsp;pSciIndex;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;return(pSci-&gtbTxStatus);<br />}<br /><br />/********************************************************************************<br />*Function&nbsp;Name:&nbsp;&nbsp;&nbsp;&nbsp;sSetSciBaudRate&nbsp;&nbsp;&nbsp;&nbsp;&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 />*Parameters:&nbsp;&nbsp;&nbsp;&nbsp;bSciId:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sci&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*Returns:&nbsp;&nbsp;&nbsp;&nbsp;bBaudrate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sci&nbsp;Baudrate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />*Description:&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;the&nbsp;sci&nbsp;baudrate&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 />********************************************************************************/<br />void&nbsp;&nbsp;&nbsp;&nbsp;sSetSciBaudRate(unsigned&nbsp;char&nbsp;&nbsp;bBaudrate)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;sSciChangeBaudRate(bBaudrate);<br />}<br />
 楼主| 01dxwlm 发表于 2009-5-3 09:18 | 显示全部楼层

淘宝地址:

http://item.taobao.com/auction/item_detail.jhtml?item_id=e10f7bd8d5b9a6c330d333e6223a88d7&x_id=0db1 <br /> 相关链接:<a href='http://item.taobao.com/auction/item_detail.jhtml?item_id=e10f7bd8d5b9a6c330d333e6223a88d7&x_id=0db1'>http://item.taobao.com/auction/item_detail.jhtml?item_id=e10f7bd8d5b9a6c330d333e6223a88d7&x_id=0db1</a>
 楼主| 01dxwlm 发表于 2009-5-5 13:23 | 显示全部楼层

jianjue ding qi

  
 楼主| 01dxwlm 发表于 2009-5-6 09:22 | 显示全部楼层

Lcd MOKUAI

DAI&nbsp;LCD&nbsp;MOKUAI
 楼主| 01dxwlm 发表于 2009-5-6 19:26 | 显示全部楼层

带LCD模块呢

带独立的ISP下载小板,可做编程器使用
 楼主| 01dxwlm 发表于 2009-5-9 12:40 | 显示全部楼层

需要的赶快行动啊

  
 楼主| 01dxwlm 发表于 2009-5-11 15:51 | 显示全部楼层

ding

  
 楼主| 01dxwlm 发表于 2009-5-13 13:56 | 显示全部楼层

不顶不行啊

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

本版积分规则

121

主题

592

帖子

2

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

121

主题

592

帖子

2

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