国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚
電子工程網
標題:
請教一個飛凌TE6410 wince的ad轉換問題
[打印本頁]
作者:
yingna_13
時間:
2011-4-21 09:48
標題:
請教一個飛凌TE6410 wince的ad轉換問題
各位前輩好,我的板子用的是TE6410的wince系統,想做AD方面的程序,現在有幾個問題想請教:
1、原有的ad轉換是從ADCIN0口讀進去的,我想現在從ADCIN1口讀進去,不知在程序的哪里修改?
2、原有的ad轉換是測電阻值的,現在我從ADCIN1外接一個口出去,測外部電流值,請問程序的哪些函數需要改呢?
如下,是原有的ad轉換部分源程序
DWORD WINAPI AdcThread (PVOID hdcMain)
{
DWORD dwBytesRead;
DWORD convalue;
char tempvalue[3];
CString str;
CADC_AppDlg *pdlg =(CADC_AppDlg*)(AfxGetApp()->m_pMainWnd);
hAdcEvent = CreateEvent(NULL, TRUE, FALSE, _T("TE6410_ADC_read"));
while(1)
{
WaitForSingleObject(hAdcEvent, INFINITE);
ReadFile(hAdc, &convalue, sizeof(DWORD), &dwBytesRead, NULL);
str.Format(_T("%d"),convalue);
pdlg->SetDlgItemTextW(IDC_EDIT1,str);
//printf("convalue = %d !!!!\n", convalue);
Sleep(2);
}
return 0;
}
3.源程序中有一段常量設定的代碼,如下所示:
// constants define
#define IOCTL_ADC_START \
CTL_CODE(FILE_DEVICE_UNKNOWN, 60, METHOD_BUFFERED, FILE_ANY_ACCESS) //
#define IOCTL_ADC_STOP \
CTL_CODE(FILE_DEVICE_UNKNOWN, 61, METHOD_BUFFERED, FILE_ANY_ACCESS)
請問那里的60和61是代表什么的呢?我找寄存器沒有找到這兩個值啊
作者:
yanhong
時間:
2011-4-21 13:01
這個需要改驅動了。
ADCIN0是接上滑動電阻的,當然是沒法用啦。看下原理圖就知道了。
CTL_CODE:用于創建一個唯一的32位系統I/O控制代碼,這個控制代碼包括4部分組成:DeviceType(設備類型,高16位(16-31位)),Access(訪問限制,14-15位),Function(功能2-13位),Method(I/O訪問內存使用方式)。
This macro creates a unique system I/O control code (IOCTL).
驅動里面用60,61來產生這兩個宏IOCTL_ADC_START,IOCTL_ADC_STOP,驅動和測試程序約定好了IOCTL_ADC_START,IOCTL_ADC_STOP這兩個宏代表的整數,驅動里面有判斷傳入這兩個整數,然后分別執行不同的動作。當傳入IOCTL_ADC_START的時候,執行ADC START動作,當傳入IOCTL_ADC_STOP的時候,執行ADC STOP動作。因此,如果你把61換成63后,IOCTL_ADC_START變成了另一個整數,當傳入IOCTL_ADC_START,驅動程序不會執行ADC START動作,就得不到采集數據。
作者:
gnmxd
時間:
2011-4-30 07:39
看看
歡迎光臨 電子工程網 (http://m.4huy16.com/)
Powered by Discuz! X3.4