S3C44B0怎么AD转换并LCD输出呢??

[复制链接]
2873|5
 楼主| 雅子 发表于 2008-11-4 19:43 | 显示全部楼层 |阅读模式
S3C44B0怎么AD转换并LCD输出呢??<br />请教整体思路是什么呢??
mxh0506 发表于 2008-11-4 22:15 | 显示全部楼层

我这里有一些以前写的ADC的代码,给你参考吧

//&nbsp;ADC&nbsp;ISR<br />__arm&nbsp;&nbsp;void&nbsp;&nbsp;Adc_CompleteISR_Handler&nbsp;(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;rI_ISPC&nbsp;=&nbsp;BIT_ADC;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;clear&nbsp;pending&nbsp;bit&nbsp;of&nbsp;adc<br />&nbsp;&nbsp;&nbsp;&nbsp;wAdcResult[wAdcPos]&nbsp;=&nbsp;rADCDAT;<br />&nbsp;&nbsp;&nbsp;&nbsp;wAdcPos++;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(wAdcPos&nbsp;&lt&nbsp;MAX_ADC_BUFFLEN){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BSP_ADC_StartChannel(wAdcCh);<br />&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSSemPost(pSemAdc);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;signal&nbsp;sampling&nbsp;over<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />/*<br />&nbsp;&nbsp;&nbsp;&nbsp;Initialize&nbsp;the&nbsp;ADC,&nbsp;dwAdcRate&nbsp;is&nbsp;in&nbsp;Hz<br />&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;larger&nbsp;the&nbsp;PSR&nbsp;is,&nbsp;the&nbsp;lower&nbsp;the&nbsp;input&nbsp;current&nbsp;will&nbsp;be<br />&nbsp;&nbsp;&nbsp;&nbsp;so&nbsp;lower&nbsp;ADC&nbsp;rate&nbsp;can&nbsp;lead&nbsp;to&nbsp;more&nbsp;accurate&nbsp;AD&nbsp;result<br />*/<br />void&nbsp;BSP_ADC_Init(INT32U&nbsp;dwAdcRate)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;rADCPSR&nbsp;=&nbsp;MCLK/(32*dwAdcRate)-1;<br />&nbsp;&nbsp;&nbsp;&nbsp;rADCCON&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;activate&nbsp;ADC&nbsp;clock,&nbsp;no&nbsp;operation,&nbsp;CH0<br />&nbsp;&nbsp;&nbsp;&nbsp;pISR_ADC&nbsp;=&nbsp;(unsigned)&nbsp;Adc_CompleteISR_Handler;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;set&nbsp;ISR&nbsp;vector<br />&nbsp;&nbsp;&nbsp;&nbsp;rINTMSK&nbsp;&=&nbsp;~BIT_ADC;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;enable&nbsp;inperrupt<br />}<br />//&nbsp;switch&nbsp;to&nbsp;sepcified&nbsp;channel,&nbsp;and&nbsp;start&nbsp;conversion<br />//&nbsp;uiChannel&nbsp;must&nbsp;be&nbsp;within&nbsp;0&nbsp;to&nbsp;7<br />void&nbsp;BSP_ADC_SwitchChannel(INT16U&nbsp;wChannel)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;wAdcPos&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;wAdcCh&nbsp;=&nbsp;wChannel;<br />&nbsp;&nbsp;&nbsp;&nbsp;rADCCON&nbsp;=&nbsp;0x01&nbsp;|&nbsp;(wChannel&nbsp;&lt&lt&nbsp;2);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;start&nbsp;conversion<br />}<br />//&nbsp;start&nbsp;ADC&nbsp;on&nbsp;specified&nbsp;channel<br />//&nbsp;uiChannel&nbsp;must&nbsp;be&nbsp;within&nbsp;0&nbsp;to&nbsp;7<br />void&nbsp;BSP_ADC_StartChannel(INT16U&nbsp;wChannel)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;rADCCON&nbsp;=&nbsp;0x01&nbsp;|&nbsp;(wChannel&nbsp;&lt&lt&nbsp;2);<br />}<br />
mxh0506 发表于 2008-11-4 22:21 | 显示全部楼层

这个是ADC任务

void&nbsp;TaskSampling(void&nbsp;*&nbsp;pParam)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;INT8U&nbsp;byRet;<br />&nbsp;&nbsp;&nbsp;&nbsp;INT16U&nbsp;uiCh;<br />&nbsp;&nbsp;&nbsp;&nbsp;OS_CPU_SR&nbsp;&nbsp;cpu_sr&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;uiCh&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;BSP_ADC_SwitchChannel(uiCh);<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(pSemAdc){&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;semaphore&nbsp;created&nbsp;successfully<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDly(5);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSSemPend(pSemAdc,0,&byRet);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(OS_NO_ERR&nbsp;==&nbsp;byRet){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wAdc[uiCh]&nbsp;=&nbsp;wAdcResult[2];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bAdcRdy&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uiCh++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uiCh&nbsp;%=&nbsp;2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BSP_ADC_SwitchChannel(uiCh);<br />&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;}<br />}
mxh0506 发表于 2008-11-4 22:24 | 显示全部楼层

若再加LCD显示,只需再添加相应的驱动和任务就行了

  
 楼主| 雅子 发表于 2008-11-12 09:55 | 显示全部楼层

我参考一下再回复
 楼主| 雅子 发表于 2008-11-13 14:16 | 显示全部楼层

电路图?

用LPC2124进行AD转换并LCD输出,怎么玩呢???<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

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