⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 danduadcdlg.cpp

📁 wince操作系统
💻 CPP
字号:
// DanDuAdcDlg.cpp : implementation file
//

#include "stdafx.h"
#include "DanDuAdc.h"
#include "DanDuAdcDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDanDuAdcDlg dialog

CDanDuAdcDlg::CDanDuAdcDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDanDuAdcDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDanDuAdcDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CDanDuAdcDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDanDuAdcDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CDanDuAdcDlg, CDialog)
	//{{AFX_MSG_MAP(CDanDuAdcDlg)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDanDuAdcDlg message handlers

BOOL CDanDuAdcDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	CenterWindow(GetDesktopWindow());	// center to the hpc screen

	// TODO: Add extra initialization here
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}



void CDanDuAdcDlg::OnButton1() 
{
	// TODO: Add your control notification handler code here
	v_pADCRegs = (volatile ADCreg*)VirtualAlloc(0, sizeof(ADCreg), MEM_RESERVE, PAGE_NOACCESS);
     if (v_pADCRegs == NULL) 
	 {
     DEBUGMSG (1,(TEXT("v_pADCRegs is not allocated\n\r")));
    // return TRUE;
	 }
      if (!VirtualCopy((PVOID)v_pADCRegs, (PVOID)ADC_BASE, sizeof(ADCreg), PAGE_READWRITE|PAGE_NOCACHE)) 
	  {
         DEBUGMSG (1,(TEXT("v_pADCRegs is not mapped\n\r")));
       // return TRUE;
	  }
     DEBUGMSG (1,(TEXT("v_pADCRegs is mapped to %x\n\r"), v_pADCRegs));
	 v_pCLKPWRegs = (volatile CLKPWRreg*)VirtualAlloc(0, sizeof(CLKPWRreg), MEM_RESERVE, PAGE_NOACCESS);
   if (v_pCLKPWRegs == NULL) 
   {
     RETAILMSG (1,(TEXT("v_pCLKPWRegs is not allocated\n\r")));
   //   return TRUE;
   }
   if (!VirtualCopy((PVOID)v_pCLKPWRegs, (PVOID)CLKPWR_BASE, sizeof(CLKPWRreg), PAGE_READWRITE|PAGE_NOCACHE)) 
   {
       RETAILMSG (1,(TEXT("v_pCLKPWRegs is not mapped\n\r")));
     // return TRUE;
   }
   RETAILMSG (1,(TEXT("v_pCLKPWRegs is mapped to %x\n\r"), v_pCLKPWRegs));

    unsigned long *p;
    p=new unsigned long[2400000];
	//v_pCLKPWRegs->rMPLLCON= (0xa1<<12)|(0x3<<4) | 0x1; // FCLK=202.8M
	//v_pCLKPWRegs->rMPLLCON= (0xa1<<12)|(0x3<<4) | 0x1; // FCLK=202.8M
	//v_pCLKPWRegs->rCLKDIVN=3;
	 v_pADCRegs->rADCCON=(1<<14)|(255<<6)|(2<<3)|(0<<2)|(1<<1);//enable prescaler,ain2,normal,start by read
     usConData=v_pADCRegs->rADCDAT0&0x3ff;
     for(unsigned long i=0;i<2400000;i++)
	{   
      while(!(v_pADCRegs->rADCCON&0x8000));//检查ECFLG位是否为高
	 // if(v_pADCRegs->rADCCON&0x02)
	 // { 
		  usConData=v_pADCRegs->rADCDAT0&0x3ff;
	      p[i]=usConData;
	 // }
	 // else
	 // {
	//	  break;
	 // }
	}	 
	 RETAILMSG(1,(TEXT("ADC Success!i='%d'\r\n"),i));

	HANDLE hFile;
	DWORD dwBytewritten;
	hFile=CreateFile(_T("\\1.txt"),//创建1.txt
	GENERIC_READ|GENERIC_WRITE,    //为读写而打开
	0,                             //没有共享
	NULL,                          //没有安全设置
	CREATE_ALWAYS,                 //创建新文件,如有便覆盖
	FILE_ATTRIBUTE_NORMAL,         //默认设置
	NULL);                         //没有模版文件
	if(hFile==INVALID_HANDLE_VALUE)
	{
      AfxMessageBox(_T("新建1.txt文件失败"));
	  return;
	}
//	unsigned int data1=1895UL;
//	unsigned int data2=1983UL;
	char *buf=new char[10];
	char *cuf=new char[10];
	char temp[3]="\r\n";
//	_ultoa(data1,buf,10);
  //  _ultoa(data2,cuf,10);
 //   WriteFile(hFile,buf,4,&dwBytewritten,NULL);
//	WriteFile(hFile,temp,2,&dwBytewritten,NULL);
//	WriteFile(hFile,cuf,4,&dwBytewritten,NULL);
  //  WriteFile(hFile,temp,2,&dwBytewritten,NULL);
	for(unsigned long  m=0;m<2400000;m++)
	{ 
      _ultoa(p[m],buf,10);
      WriteFile(hFile,buf,sizeof(buf),&dwBytewritten,NULL);
	  WriteFile(hFile,temp,2,&dwBytewritten,NULL);
	}
     for(unsigned long j=i-500;j<i+10;j++)
	 {
       RETAILMSG(1,(TEXT("ADC_READ:Read Success! ADCDAT10 '%d'\r\n"),p[j]));   
	 }


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -