请教c编程问题

[复制链接]
2821|6
 楼主| chaser2008 发表于 2008-6-4 13:09 | 显示全部楼层 |阅读模式
对于ADC0832(TI的)一般都用汇编编译驱动程序,请问那位大侠告诉一下能否用C语言编写,怎么编写??
computer00 发表于 2008-6-4 13:17 | 显示全部楼层

试试这个:

/*<br />&nbsp;&nbsp;&nbsp;ADC.C&nbsp;file<br />&nbsp;&nbsp;&nbsp;The&nbsp;ADC0832&nbsp;ADC&nbsp;driver&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;Created&nbsp;by&nbsp;Computer-lov&nbsp;date:&nbsp;2005.5.4<br />&nbsp;&nbsp;&nbsp;Copyright&nbsp;(c)&nbsp;2005&nbsp;Computer-lov<br />&nbsp;&nbsp;&nbsp;version&nbsp;1.0<br />*/<br /><br />#include&nbsp;&quot;MyType.h&quot;<br />#include&nbsp;&quot;ADC.H&quot;<br />#include&nbsp;&quot;at89x52.h&quot;<br /><br />#define&nbsp;ADC_CS&nbsp;&nbsp;P2_0<br />#define&nbsp;ADC_CLK&nbsp;P3_6<br />#define&nbsp;ADC_DI&nbsp;&nbsp;P3_7<br />#define&nbsp;ADC_DO&nbsp;&nbsp;P3_7<br /><br />/********************************************************************<br />函数功能:读ADC函数。<br />入口参数:ch:&nbsp;通道。<br />返&nbsp;&nbsp;&nbsp;&nbsp;回:ADC结果。<br />备&nbsp;&nbsp;&nbsp;&nbsp;注:无。<br />********************************************************************/<br />uint8&nbsp;ReadAdc(uint8&nbsp;ch)<br />{<br />&nbsp;uint8&nbsp;i;<br />&nbsp;uint8&nbsp;result;<br /><br />//写两条一样的,延时用<br />&nbsp;ADC_CLK=0;<br />&nbsp;ADC_CLK=0;<br />&nbsp;ADC_CS=0;<br />&nbsp;ADC_CS=0;<br />&nbsp;ADC_DI=1;&nbsp;//Start&nbsp;bit<br />&nbsp;ADC_DI=1;<br />&nbsp;ADC_CLK=1;<br />&nbsp;ADC_CLK=1;<br />&nbsp;ADC_CLK=0;<br />&nbsp;ADC_CLK=0;<br />&nbsp;ADC_DI=1;&nbsp;//单端<br />&nbsp;ADC_DI=1;<br />&nbsp;ADC_CLK=1;<br />&nbsp;ADC_CLK=1;<br />&nbsp;ADC_CLK=0;<br />&nbsp;ADC_CLK=0;<br />&nbsp;if(ch==0)&nbsp;//通道选择<br />&nbsp;{<br />&nbsp;&nbsp;ADC_DI=0;<br />&nbsp;&nbsp;ADC_DI=0;<br />&nbsp;}<br />&nbsp;else<br />&nbsp;{<br />&nbsp;&nbsp;ADC_DI=1;<br />&nbsp;&nbsp;ADC_DI=1;<br />&nbsp;}<br />&nbsp;ADC_CLK=1;<br />&nbsp;ADC_CLK=1;<br />&nbsp;ADC_CLK=0;<br />&nbsp;ADC_CLK=0;<br />&nbsp;ADC_DO=1;<br />&nbsp;for(i=0;i&lt8;i++)&nbsp;//读出8位数据<br />&nbsp;{<br />&nbsp;&nbsp;ADC_CLK=1;<br />&nbsp;&nbsp;ADC_CLK=1;<br />&nbsp;&nbsp;ADC_CLK=0;<br />&nbsp;&nbsp;ADC_CLK=0;<br />&nbsp;&nbsp;result&lt&lt=1;<br />&nbsp;&nbsp;if(ADC_DO)result++;<br />&nbsp;}<br />&nbsp;ADC_CS=1;<br />&nbsp;return&nbsp;result;<br />}<br />////////////////////////End&nbsp;of&nbsp;function//////////////////////////////
 楼主| chaser2008 发表于 2008-6-4 13:54 | 显示全部楼层

还有这样的C语言程序

我孤陋寡闻,试试看,谢谢
 楼主| chaser2008 发表于 2008-6-4 14:31 | 显示全部楼层

有问题

uint8&nbsp;ReadAdc(uint8&nbsp;ch)<br />编译时显示此行定义有错误,&nbsp;请问怎么修改??
computer00 发表于 2008-6-4 15:49 | 显示全部楼层

倒塌了~~~你都没说你的开发环境是什么...

uint8是我自己定义的数据类型。<br /><br />typedef&nbsp;unsigned&nbsp;char&nbsp;uint8;
 楼主| chaser2008 发表于 2008-6-4 16:43 | 显示全部楼层

呵呵,菜鸟多谅解关照

与MCS51连用,在WIN-TC编译不通??!!!
high 发表于 2008-6-5 04:56 | 显示全部楼层

为啥子一定要c

汇编也能被c调用.&nbsp;而且,这个黑猫抓耗子比白猫厉害
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

23

帖子

0

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