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

📄 abc.cpp

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

#include "stdafx.h"
#include "Dandupwm.h"
#include "abc.h"

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

/////////////////////////////////////////////////////////////////////////////
// Cabc

Cabc::Cabc()
{

}

Cabc::~Cabc()
{
}


BEGIN_MESSAGE_MAP(Cabc, CButton)
	//{{AFX_MSG_MAP(Cabc)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Cabc message handlers

void Cabc::pwm()
{
   

	v_pIOPRegs = (volatile IOPreg*)VirtualAlloc(0, sizeof(IOPreg), MEM_RESERVE, PAGE_NOACCESS);
   if (v_pIOPRegs == NULL) 
   {
     RETAILMSG (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)) 
   {
      RETAILMSG (1,(TEXT("v_pIOPRegs is not mapped\n\r")));
     //return TRUE;
   } 
    RETAILMSG (1,(TEXT("v_pIOPRegs is mapped to %x\n\r"), v_pIOPRegs));

   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));

   v_pPWMRegs= (volatile PWMreg*)VirtualAlloc(0, sizeof(PWMreg), MEM_RESERVE, PAGE_NOACCESS);
   if (v_pPWMRegs == NULL) 
   {
     RETAILMSG (1,(TEXT("v_pPWMRegs is not allocated\n\r")));
      //return TRUE;
   }
   if (!VirtualCopy((PVOID)v_pPWMRegs, (PVOID)PWM_BASE, sizeof(PWMreg), PAGE_READWRITE|PAGE_NOCACHE)) 
   {
     RETAILMSG (1,(TEXT("v_pPWMRegs is not mapped\n\r")));
  // return TRUE;
   }
    RETAILMSG (1,(TEXT("v_pPWMRegs is mapped to %x\n\r"), v_pPWMRegs));
	    // hdivn,pdivn FCLK:HCLK:PCLK
     //     0,0         1:1:1 
     //     0,1         1:1:2 
     //     1,0         1:2:2
     //     1,1         1:2:4
  //v_pCLKPWRegs->rCLKDIVN= (1<1)|1; //     1,1     1:2:4
//	v_pCLKPWRegs->rCLKDIVN|=0x03;
	SetTimer(1,50000,NULL);
    v_pCLKPWRegs->rCLKDIVN=0x03;
    //v_pCLKPWRegs->rMPLLCON= (0xa1<<12)|(0x3<<4) | 0x1; // FCLK=202.8MHz
   v_pIOPRegs->rGPBCON&=~0x03; //将GPB对应的设置为TOUT0
    v_pIOPRegs->rGPBCON|=0x02;
   v_pIOPRegs->rGPBUP|= 0x4;
   //v_pPWMRegs->rTCFG0=255; //预分频设置           1
   v_pPWMRegs->rTCFG1=3;//分频设置;//1/8      2
   v_pPWMRegs->rTCNTB0=125; //给两个缓冲器//赋值     3
   v_pPWMRegs->rTCMPB0=62;                    //      4
	v_pPWMRegs->rTCON|=(1<<1)|(1<<2);//manual update    5           
	v_pPWMRegs->rTCON &= ~(1<<1);  //                  6
     //RETAILMSG(1,(TEXT("pwm start !\r\n")));          
//	SetTimer(1,100000,NULL);//                          7
	v_pPWMRegs->rTCON |= (1<<3)|1;//start timer,auto reload 8  *

	// TODO: Add extra initialization here



}

void Cabc::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	v_pPWMRegs->rTCON= 0x0;//stop timer
	  KillTimer(1);
      RETAILMSG(1,(TEXT("KillTimer(1) end! \r\n")));
	CButton::OnTimer(nIDEvent);
}

⌨️ 快捷键说明

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