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

📄 quxianview.cpp

📁 基于s3c2440 的TCD132D驱动和数据采集并把采集的数据绘制曲线
💻 CPP
📖 第 1 页 / 共 2 页
字号:

              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 + -