📄 danduadcdlg.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 + -