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

📄 timer.c

📁 这是一个基于ARM44B0X的PWM实验程序.
💻 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 + -