📄 iar-
字号:
/****************************************Copyright (c)****************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File Name: Analog_Comparators_out.c
** Last modified Date: 2007-09-20
** Last Version: v1.0
** Description: Stellaris系列单片机模拟比较器的操作
**
**--------------------------------------------------------------------------------------------------------
** Created By: Zhou Hai Xin
** Created date: 2007-09-20
** Version: v1.0
** Descriptions: 使用两个电位器分别从PB4、PB6脚输入一路模拟信号,进行比较,
** 比较的结果通过PB5连接到LED4显示,
** 同时读取比较器输出值送到LED5进行显示
**
**--------------------------------------------------------------------------------------------------------
** Modified by: Kang qinhua
** Modified date: 2008.01.13
** Version: v1.1
** Description:
**
*********************************************************************************************************/
#include "hw_memmap.h"
#include "hw_types.h"
#include "gpio.h"
#include "sysctl.h"
#include "systick.h"
#include "comp.h"
#define PA4 GPIO_PIN_4 /* PA4为LED5 */
#define PB4 GPIO_PIN_4 /* PB4为VIN- */
#define PB6 GPIO_PIN_6 /* PB6为连接VIN+ */
#define PB5 GPIO_PIN_5 /* PB5为VOUT */
/*********************************************************************************************************
** Function name: main
** Descriptions: 通过外部VIN1与VIN2电压进行比较,通过比较的结果来控制LED3和LED4的状态
LED5将显示比较结果:亮:VIN+ < VIN-;灭:VIN+ > VIN-。
LED4将显示比较结果:亮:VIN+ > VIN-;灭:VIN+ < VIN-。
** input parameters: 无
** output parameters:无
** Returns value: 0:失败
*********************************************************************************************************/
int main(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); /* 使能GPIO PA口 */
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); /* 使能GPIO PB口 */
SysCtlPeripheralEnable(SYSCTL_PERIPH_COMP0); /* 使能模拟比较器0 */
GPIODirModeSet(GPIO_PORTA_BASE, PA4, GPIO_DIR_MODE_OUT); /* 设置 PA4为输出 */
GPIOPadConfigSet(GPIO_PORTA_BASE, PA4, /* 设置 PB6强度和类型 */
GPIO_STRENGTH_4MA, /* 4mA的输出驱动强度 */
GPIO_PIN_TYPE_STD); /* 设置为推挽管脚 */
GPIOPinTypeComparator(GPIO_PORTB_BASE, PB4 | PB6); /* 设置 PB4和PB6为比较器的输入端
*/
GPIODirModeSet(GPIO_PORTB_BASE, PB5, GPIO_DIR_MODE_HW); /* 设置为硬件外部功能 */
GPIOPadConfigSet(GPIO_PORTB_BASE, PB5,GPIO_STRENGTH_2MA, /* 设置为2mA驱动和推挽使能 */
GPIO_PIN_TYPE_STD);
/* 配置模拟比较器 :无ADC触发;
和C0+进行比较;比较器的同相输出
*/
ComparatorConfigure(COMP_BASE, 0, ( COMP_TRIG_NONE | COMP_ASRCP_PIN0 |
COMP_OUTPUT_NORMAL));
while (1) {
if (ComparatorValueGet(COMP_BASE, 0) == 1 ) { /* 读取比较结果. 1:点亮LED5;
0: 熄灭LED5 */
GPIOPinWrite(GPIO_PORTA_BASE, PA4, ~ PA4); /* 点亮LED5 */
} else {
GPIOPinWrite(GPIO_PORTA_BASE, PA4, PA4); /* 熄灭LED5 */
}
}
}
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -