应广单片机 PMS150G 161 171 基础例子 GPC 比较器 内部参考电压

//==================================================//
//					比较器的设置
//案例为:
//输入脚PA.3与内部参考电压的9/32进行比较
//比较的结果通过GPC_out输出
//当PA.3大于内部参考电压的9/32时GPC_out为0
//当PA.3小于内部参考电压的9/32时GPC_out为1
//==================================================//
#include	"extern.h"

void	Comparator(void)
{
	//设置比较器的输入脚需要停用上拉、下拉、数字输入使能
	PAC.3 = 0;
	PAPH.3 = 0;
	PADIER = 0b1111_0001;		//注:其他脚默认为1,需要关闭的请手动修改
	$ GPCC Enable,N_PA3,P_R;	//是否启用比较器;选择比较器结果是否有TM2_CLK采样输出(写Sync_TM2为选择,不写为不选);选择是否反极性(写为选择,不写为不选);选择负输入来源;选择正输入来源。
								//是否启用比较器:Enable为启用,Disable为停用
								//选择负输入来源:N_PA3, N_PA4, BANDGAP, N_R(内部参考电压), N_PA6, N_PA7(PA6、PA7不能仿真)
								//选择正输入来源:P_R(内部参考电压), P_PA4
	$ GPCS VDD*9/32;			//比较器输出启用到PA0(写output启用,不写停用);选择比较器参考电压范围
								//注:在仿真器上,输出到 PA0 也会造成 PA3 输出不良,请避开此问题
								//比较器参考电压范围:共有四种分别为
								//	VDD*(9~24)/32		对应GPCS[5:4]=00;	GPCS[3:0]=0000~1111;
								//	VDD*(1~16)/24		对应GPCS[5:4]=01;	GPCS[3:0]=0000~1111;
								//	VDD*(9~24)/40		对应GPCS[5:4]=10;	GPCS[3:0]=0000~1111;
								//	VDD*(1~16)/32		对应GPCS[5:4]=11;	GPCS[3:0]=0000~1111;

}
void	FPPA0 (void)
{
	.ADJUST_IC	SYSCLK=IHRC/16, IHRC=16MHz, VDD=3.3V;
  Comparator();

	while (1)
	{
		if(GPC_out)			//正输入大于负输入
		{
		//====add your code======
	
		//=======================
		}
		else				//正输入小于负输入
		{
		//====add your code======
	
		//=======================
		}
	}
}


void	Interrupt (void)
{
	pushaf;

	if (Intrq.T16)
	{	//	T16 Trig
		//	User can add code
		Intrq.T16	=	0;
		//...
	}

	popaf;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值