📄 quxianview.cpp
字号:
txtsy[i]=(_T("%s"), (LPCTSTR) str);
pDC->DrawText(txtsy[i],CRect((myleft+(leftX-minX)*intervalX-40),(height-(mybottom+spaceY*i+8)),(myleft+(leftX-minX)*intervalX),(height-(mybottom+spaceY*i-8))),DT_CENTER); // x
}
//绘制X,Y轴的变量名
CString txty(_T("y value"));
//pDC->DrawText(txt,CRect(myleft,mytop,(width-myright),(height-(mybottom+(bottomY-minY)*intervalY))),DT_SINGLELINE/DT_BOTTOM);
pDC->DrawText(txty,CRect(0,(height/2-8),myleft,(height/2+8)),DT_SINGLELINE/DT_CENTER); // y
CString txt(_T("x value"));
pDC->DrawText(txt,CRect(myleft,(height-(mybottom+(bottomY-minY)*intervalY)+20),(width-myright),(height-(mybottom+(bottomY-minY)*intervalY)+35)),DT_CENTER); // x
/* m_adval=p[0];
CString txtsss;
//AfxMessageBox(_T("AD Finish"));
str.Format(_T(" %.1f"), m_adval);
txtsss=(_T("%s"), (LPCTSTR) str);
pDC->DrawText(txtsss,CRect(100,100,200,200),DT_CENTER);
*/
}
}
/////////////////////////////////////////////////////////////////////////////
// CQuxianView diagnostics
#ifdef _DEBUG
void CQuxianView::AssertValid() const
{
CView::AssertValid();
}
void CQuxianView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CQuxianDoc* CQuxianView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CQuxianDoc)));
return (CQuxianDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CQuxianView message handlers
void CQuxianView::OnHt()
{
// TODO: Add your command handler code here
k=false;
CClientDC dc(this); // device context for painting
CRect rect;
GetClientRect(&rect);
// TODO: Add your message handler code here
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP6);
//得到图片信息
BITMAP bmpInfo;
bmp.GetBitmap(&bmpInfo);
CDC dcMemory;
dcMemory.CreateCompatibleDC(&dc);
CBitmap *pOldBmp=dcMemory.SelectObject(&bmp);
StretchBlt(
dc,// handle to destination device context
0, // x-coordinate of upper-left corner of dest. rectangle
0, // y-coordinate of upper-left corner of dest. rectangle
rect.Width(), // width of destination rectangle
rect.Height(), // height of destination rectangle
dcMemory.m_hDC, // handle to source device context
0, // x-coordinate of upper-left corner of source rectangle
0, // y-coordinate of upper-left corner of source rectangle
bmpInfo.bmWidth, // width of source rectangle
bmpInfo.bmHeight, // height of source rectangle
SRCCOPY // raster operation code
);
dcMemory.SelectObject(pOldBmp);
//AfxMessageBox(_T("str"));
bShowLineA=TRUE;
Invalidate();//这个函数暂时只需要知道是用来“调用”OnDraw函数的
}
void CQuxianView::OnCcd()
{
// TODO: Add your command handler code here
k=false;
CClientDC dc(this); // device context for painting
CRect rect;
GetClientRect(&rect);
// TODO: Add your message handler code here
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP4);
//得到图片信息
BITMAP bmpInfo;
bmp.GetBitmap(&bmpInfo);
CDC dcMemory;
dcMemory.CreateCompatibleDC(&dc);
CBitmap *pOldBmp=dcMemory.SelectObject(&bmp);
StretchBlt(
dc,// handle to destination device context
0, // x-coordinate of upper-left corner of dest. rectangle
0, // y-coordinate of upper-left corner of dest. rectangle
rect.Width(), // width of destination rectangle
rect.Height(), // height of destination rectangle
dcMemory.m_hDC, // handle to source device context
0, // x-coordinate of upper-left corner of source rectangle
0, // y-coordinate of upper-left corner of source rectangle
bmpInfo.bmWidth, // width of source rectangle
bmpInfo.bmHeight, // height of source rectangle
SRCCOPY // raster operation code
);
dcMemory.SelectObject(pOldBmp);
//double
unsigned int i,j,kk; //K REDEFINE
kk=0;
// v_pIOPRegs->rGPGDAT|=0x0004;
// v_pIOPRegs->rGPGDAT&=0xFFFB; //GPG2
v_pIOPRegs->rGPGDAT&=0xFF76; //GPG730 000 111 v_pIOPRegs->rGPGDAT|=0x0089;
v_pIOPRegs->rGPGDAT|=0x0089; //GPG730 111 000 v_pIOPRegs->rGPGDAT&=0xFF76;
v_pIOPRegs->rGPGDAT&=0xFF7F; //GPG730 011 100 v_pIOPRegs->rGPGDAT|=0x0088;
v_pIOPRegs->rGPGDAT|=0x0089; //GPG730 111 000 v_pIOPRegs->rGPGDAT&=0xFF7F;
v_pIOPRegs->rGPGDAT&=0xFF7F; //GPG730 011 100 v_pIOPRegs->rGPGDAT|=0x0088;
i=v_pIOPRegs->rGPGDAT; //GPG730 100 011 i=v_pIOPRegs->rGPGDAT;
i|=0X0080; // i|=0X0009;
i&=0XFFF6; // i&=0XFF7F;
v_pIOPRegs->rGPGDAT=i;
v_pIOPRegs->rGPGDAT&=0xFF7F; //GPG730 000 111 v_pIOPRegs->rGPGDAT|=0x0089;
v_pIOPRegs->rGPGDAT|=0x0088; //GPG730 100 011 v_pIOPRegs->rGPGDAT&=0xFF7F;
v_pIOPRegs->rGPGDAT&=0xFF7F; //GPG730 000 111 v_pIOPRegs->rGPGDAT|=0x0089;
v_pIOPRegs->rGPGDAT|=0x0088; //GPG730 110 001 v_pIOPRegs->rGPGDAT&=0xFF77;
v_pIOPRegs->rGPGDAT&=0xFF7F; //GPG730 010 101 v_pIOPRegs->rGPGDAT|=0x0080;
v_pIOPRegs->rGPGDAT|=0x0080; //GPG730 110 001 v_pIOPRegs->rGPGDAT&=0xFF7F;
v_pIOPRegs->rGPGDAT&=0xFF7F; //GPG730 010 101 v_pIOPRegs->rGPGDAT|=0x0080;
for(j=1;j<1000;j++)
{
i=v_pIOPRegs->rGPGDAT; //GPG730 100 011 i=v_pIOPRegs->rGPGDAT;
i|=0X0080; // i|=0X0008;
i&=0XFFF7; //i&=0XFF7F;
v_pIOPRegs->rGPGDAT=i; ////v_pIOPRegs->rGPGDAT | 0X0080 & 0XFFF7; // v_pIOPRegs->rGPGDAT=i;
v_pIOPRegs->rGPGDAT&=0xFF7F; //GPG730 000 111 v_pIOPRegs->rGPGDAT|=0x0089;
v_pIOPRegs->rGPGDAT|=0x0088; //GPG730 100 011 v_pIOPRegs->rGPGDAT&=0xFF7F;
v_pIOPRegs->rGPGDAT&=0xFF7F; //GPG730 000 111 v_pIOPRegs->rGPGDAT|=0x0089;
// /////////AD
if (v_pADCRegs->rADCCON&0x8000)
{
usConData=v_pADCRegs->rADCDAT0&0x3ff;
p[kk]=usConData;
v_pADCRegs->rADCCON=(1<<14)|(255<<6)|(2<<3)|(0<<2)|1;
kk+=1;
}
//////////////////////////////
v_pIOPRegs->rGPGDAT|=0x0088; //GPG730 110 001 v_pIOPRegs->rGPGDAT&=0xFF77;
//AfxMessageBox(_T("1"));
//AfxMessageBox(_T("finish"));
v_pIOPRegs->rGPGDAT&=0xFF7F; //GPG730 010 101 v_pIOPRegs->rGPGDAT|=0x0080;
v_pIOPRegs->rGPGDAT|=0x0080; //GPG730 110 001 v_pIOPRegs->rGPGDAT&=0xFF7F;
v_pIOPRegs->rGPGDAT&=0xFF7F; //GPG730 010 101 v_pIOPRegs->rGPGDAT|=0x0080;
// /////////AD
if (v_pADCRegs->rADCCON&0x8000)
{
usConData=v_pADCRegs->rADCDAT0&0x3ff;
p[kk]=usConData;
v_pADCRegs->rADCCON=(1<<14)|(255<<6)|(2<<3)|(0<<2)|1;
kk+=1;
}
//////////////////////////////
}
v_pIOPRegs->rGPGDAT&=0xFF76;
//AfxMessageBox(_T("finish"));
///////////////显示处理
/*
m_adval=p[1];
CString txtsss;
CString str;
//AfxMessageBox(_T("AD Finish"));
str.Format(_T(" %.1f"), m_adval);
txtsss=(_T("%s"), (LPCTSTR) str);
dc.DrawText(txtsss,CRect(30,30,100,100),DT_CENTER);
*/
}
BOOL CQuxianView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Add your specialized code here and/or call the base class
return CView::PreCreateWindow(cs);
}
int CQuxianView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// AfxMessageBox(_T("KPKJ"));
k=true;
// TODO: Add your specialized creation code here
//AD 映射
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_pADCRegs->rADCCON=(1<<14)|(255<<6)|(2<<3)|(0<<2)|1;
////IO 映射
v_pIOPRegs=(volatile IOPreg*)VirtualAlloc(0,sizeof(IOPreg),MEM_RESERVE,PAGE_NOACCESS);
if(v_pIOPRegs==NULL)
{
DEBUGMSG(1,(TEXT("v_pIOPRegs is not allocated\n\r")));
return TRUE;
}
if(!VirtualCopy((PVOID)v_pIOPRegs,(PVOID)IOP_BASE,sizeof(IOPreg),PAGE_READWRITE|PAGE_NOCACHE))
{
DEBUGMSG(1,(TEXT("v_pIOPRegs is not mapped\n\r")));
return TRUE;
}
DEBUGMSG(1,(TEXT("v_pIOPRegs is mapped to %x\n\r"),v_pIOPRegs));
v_pIOPRegs->rGPGCON=0x55555555;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -