📄 timer.c
字号:
#include <string.h>
#include "44b.h"
#include "44blib.h"
#include "def.h"
void Main(void)
{
#define Prescaler 0x9600
U32 TCMPB=1000;
char sa;
Port_Init();
Uart_Init(0,115200);
Uart_Select(0);
Uart_Printf("\n PWM实验");
Uart_Printf("\n MCLK=%dHz Prescaler=%d div=4 TIMER CLK=%dHz",MCLK,Prescaler,MCLK/4);
Uart_Printf("\n TCNTBn=2000(PWM frequency=%dHz)",MCLK/4000);
Uart_Printf("\n 是否开始驱动电机, Y/N?");
rTCNTB2=2000;
rTCMPB2=TCMPB;
rTCFG0=0|Prescaler;
rTCFG1=0x0100;
rTCON=0x0a<<12;
do
{
sa=Uart_Getch();
if(sa=='N'||sa=='n')
{
Uart_Printf("---N");
break;
}
else
{
if(sa=='Y'||sa=='y')
{
Uart_Printf("---Y");
rPCONE=0x2aaa8;//set TOUT0 to PE3 pin.
rTCON=0x9<<12;//start PWM
Uart_Printf("\n现在开始工作");
Uart_Printf("\n电机加速请敲+,减速敲-");
Uart_Printf("\nTo exit PWM test mode, Press Q key!!!");
do
{
sa=Uart_Getch();
if(sa=='-')
{
Uart_Printf("\n -");
rTCMPB2=rTCMPB2+50;
if(rTCMPB2>2000)
{
rTCMPB2=2000;
Uart_Printf("\n速度已到最小");
}
}
else
{
if(sa=='+')
{
Uart_Printf("\n +");
if(rTCMPB2!=0)
rTCMPB2=rTCMPB2-50;
else
Uart_Printf("\n速度已到最大");
}
}
}while(sa!='Q'&sa!='q');
break;
}
}
}while(1);
Uart_Printf("\n Q exit PWM test mode");
rTCMPB2=2000;
Delay(1000);
rTCON=0;
rPCONE=0x2aa68;
rPDATE=0x8;
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -