注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
Linchpin的个人空间 https://home.eeworld.com.cn/space-uid-525682.html [收藏] [复制] [分享] [RSS]
日志

【TIVA C Launchpad 学习笔记七】模拟比较器的应用

已有 1644 次阅读2014-8-17 10:31 |个人分类:TIVA C Launchpad 学习笔记一

/*******************************************
开发坏境:CCSv5.4
开发板:TIVA C Launchpad(TM4C123GH6PM)
程序功能:两路模拟比较器,与内部基准电压比较
程序说明:C0+ PC6   C0- PC7  C0O PF0
       C1+ PC5   C1- PC4  C1O PF1
编程者:Linchpin
********************************************/
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "driverlib/pin_map.h"
#include "inc/hw_types.h"
#include "driverlib/debug.h"
#include "driverlib/gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/sysctl.h"
#include "driverlib/comp.h"
#include "driverlib/rom.h"
#include "grlib/grlib.h"

int main(void)
{
        //设置系统时钟为50MHz (400/2/4=50)
        SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_OSC |SYSCTL_OSC_MAIN|SYSCTL_XTAL_16MHZ);
        //使能需要的外设
        SysCtlPeripheralEnable(SYSCTL_PERIPH_COMP0);//虽然有两路,但此处只需配置comp0
        SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
        SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
        GPIOPinTypeComparator(GPIO_PORTC_BASE, GPIO_PIN_4 | GPIO_PIN_5|GPIO_PIN_6 | GPIO_PIN_7);
        GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2);
    //配置比较器
        //比较器共有三种比较模式:1.Cn-与内部基准电压比较 2.Cn-与Cn+比较 3.Cn-与C0+比较  配置不同模式只需改变该语句
        ComparatorConfigure(COMP_BASE,0,COMP_TRIG_NONE|COMP_INT_BOTH|COMP_ASRCP_REF);
        ComparatorConfigure(COMP_BASE,1,COMP_TRIG_NONE|COMP_INT_BOTH|COMP_ASRCP_REF);
        //配置比较器参考电压为2.0625V
        ComparatorRefSet(COMP_BASE,COMP_REF_2_0625V);
        //中断使能
        ComparatorIntEnable(COMP_BASE,0);
        ComparatorIntEnable(COMP_BASE,1);

        while(1)
    {
       //获取比较结果并据此设置LED的亮灭
       if(ComparatorValueGet(COMP_BASE,0))
       GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_PIN_1);
       else
             GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0);

       if(ComparatorValueGet(COMP_BASE,1))
       GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, GPIO_PIN_2);
       else
       GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 0);
    }
}


本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章