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