app.bak

来自「自己设计的pic单片机开发板源程序和说明书(内有原理图)支持pic16系列28脚」· BAK 代码 · 共 55 行

BAK
55
字号
#include "def.h"
void set_pwm()
{
int16 duty,fpwm;
int8	pr2_val,t2div= 16;
	pr2_val = (MCLK/fpwm/t2div)>>2 - 1;	//mclk/4/fpwm/t2div-1
	duty =  (pr2_val+1)<<1;				//50% duty.
								//ccsc defined:  duty = Tduty/(t2div*Tclk)
								//Tperiod = Tclk*4*t2div*(pr2+1);
								//pwm is 50%,so Tduty = Tperiod / 2
								//so duty = Tperiod/2/t2div/Tclk=2*(pr2+1)
	
	setup_timer_2(T2_DIV_BY_16, pr2_val, 1);
	set_pwm2_duty(duty);
}


int8 Test_beep()
{
int16 duty,fpwm;
int8	pr2_val,t2div= 16;
int8 i;
	fpwm = 1000;			//1000hz.    
	set_pwm();
	setup_ccp2(CCP_PWM);
	set_tris_c(0xfd);	
	while(TRUE)
	{
		i = getc();
		if(i == '=')
		{
			fpwm+=100;
			if(fpwm<20000)
			{
				set_pwm();
				printf("\n",fpwm);
			}
		}
		else if(i == '-')
		{
			fpwm-=100;
			if(fpwm>500)
			{
				set_pwm();
				printf("\n",fpwm);
			}	 
		}
		else if(i == ESC_KEY)
		{
			input_c();
			return(0 );
		}
	}
}

⌨️ 快捷键说明

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