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

📄 comparator_drv.c

📁 DSP, 三相交流异步电机控制程序, C语言, 空间矢量SPWM, 内含PI算法及三相桥开关控制
💻 C
字号:
//! @file comparator_drv.c
//!
//! Copyright (c) 2004
//!
//! Please read file license.txt for copyright notice.
//!
//! @brief This file contains the low level functions for the analog comparators
//!
//! @version 1.5 (pwm3-ac-ctrl-motor-0_0_3)
//!
//! @todo
//! @bug

//_____  I N C L U D E S ___________________________________________________
#include "config.h"
#include "comparator_drv.h"

//_____ M A C R O S ________________________________________________________


//_____ P R I V A T E    D E C L A R A T I O N _____________________________


//_____ D E F I N I T I O N ________________________________________________


//_____ D E C L A R A T I O N ______________________________________________
//! Configures the comparator0 accordingly to the comparator0 Defines
//! Configuration values.
//! Take care that you have to select the comparators' inputs ports as
//! analog inputs thanks to the DIDR0 and DIDR1 registers.
//!
#ifdef USE_COMP0 //!< this define is set on config.h file

void init_comparator0(void)
{
#   if (COMPARATOR0_IT == 1)
       Enable_comparator0_interrupt();
#   elif (COMPARATOR0_IT == 0)
       Disable_comparator0_interrupt();
#   else
#      error (COMPARATOR0_IT should be 0 or 1... See config.h file)
#   endif


#   if (COMPARATOR0_IT_EVENT == 3)
       Comparator0_it_on_output_rising_edge();
#   elif (COMPARATOR0_IT_EVENT == 2)
       Comparator0_it_on_output_falling_edge();
#   elif (COMPARATOR0_IT_EVENT == 0)
       Comparator0_it_on_output_toggle();
#   else
#      error (COMPARATOR0_IT_EVENT should be 0, 2 or 3... See config.h file)
#   endif

#   if (COMPARATOR0_NEGATIVE_INPUT == 5)
       Set_comparator0_ni_dac();
#   elif (COMPARATOR0_NEGATIVE_INPUT == 4)
       Set_comparator0_ni_acmp();
#   elif (COMPARATOR0_NEGATIVE_INPUT == 3)
       Set_comparator0_ni_vref_1_60();
#   elif (COMPARATOR0_NEGATIVE_INPUT == 2)
       Set_comparator0_ni_vref_2_13();
#   elif (COMPARATOR0_NEGATIVE_INPUT == 1)
       Set_comparator0_ni_vref_3_20();
#   elif (COMPARATOR0_NEGATIVE_INPUT == 0)
       Set_comparator0_ni_vref_6_40();
#   else
#      error (COMPARATOR0_NEGATIVE_INPUT should be 0, 1, 2, 3, 4 or 5... See config.h file)
#   endif
    Enable_comparator0();
}
#endif // USE_COMP0

//! Configures the comparator1 accordingly to the comparator1 Defines
//! Configuration values.
//! Take care that you have to select the comparators' inputs ports as
//! analog inputs thanks to the DIDR0 and DIDR1 registers.
//!
#ifdef USE_COMP1 //!< this define is set on config.h file

void init_comparator1(void)
{
    Enable_comparator1();
#   if (COMPARATOR1_IT == 1)
       Enable_comparator1_interrupt();
#   elif (COMPARATOR1_IT == 0)
       Disable_comparator1_interrupt();
#   else
#      error (COMPARATOR1_IT should be 0 or 1... See config.h file)
#   endif


#   if (COMPARATOR1_IT_EVENT == 3)
       Comparator1_it_on_output_rising_edge();
#   elif (COMPARATOR1_IT_EVENT == 2)
       Comparator1_it_on_output_falling_edge();
#   elif (COMPARATOR1_IT_EVENT == 0)
       Comparator1_it_on_output_toggle();
#   else
#      error (COMPARATOR1_IT_EVENT should be 0, 2 or 3... See config.h file)
#   endif

#   if (COMPARATOR1_NEGATIVE_INPUT == 5)
       Set_comparator1_ni_dac();
#   elif (COMPARATOR1_NEGATIVE_INPUT == 4)
       Set_comparator1_ni_acmp();
#   elif (COMPARATOR1_NEGATIVE_INPUT == 3)
       Set_comparator1_ni_vref_1_60();
#   elif (COMPARATOR1_NEGATIVE_INPUT == 2)
       Set_comparator1_ni_vref_2_13();
#   elif (COMPARATOR1_NEGATIVE_INPUT == 1)
       Set_comparator1_ni_vref_3_20();
#   elif (COMPARATOR1_NEGATIVE_INPUT == 0)
       Set_comparator1_ni_vref_6_40();
#   else
#      error (COMPARATOR1_NEGATIVE_INPUT should be 0, 1, 2, 3, 4 or 5... See config.h file)
#   endif
}
#endif // USE_COMP1

//! Configures the comparator2 accordingly to the comparator2 Defines
//! Configuration values.
//! Take care that you have to select the comparators' inputs ports as
//! analog inputs thanks to the DIDR0 and DIDR1 registers.
//!
#ifdef USE_COMP2  //!< this define is set on config.h file

void init_comparator2(void)
{
    Enable_comparator2();
#   if (COMPARATOR2_IT == 1)
       Enable_comparator2_interrupt();
#   elif (COMPARATOR2_IT == 0)
       Disable_comparator2_interrupt();
#   else
#      error (COMPARATOR2_IT should be 0 or 1... See config.h file)
#   endif


#   if (COMPARATOR2_IT_EVENT == 3)
       Comparator2_it_on_output_rising_edge();
#   elif (COMPARATOR2_IT_EVENT == 2)
       Comparator2_it_on_output_falling_edge();
#   elif (COMPARATOR2_IT_EVENT == 0)
       Comparator2_it_on_output_toggle();
#   else
#      error (COMPARATOR2_IT_EVENT should be 0, 2 or 3... See config.h file)
#   endif

#   if (COMPARATOR2_NEGATIVE_INPUT == 5)
       Set_comparator2_ni_dac();
#   elif (COMPARATOR2_NEGATIVE_INPUT == 4)
       Set_comparator2_ni_acmp();
#   elif (COMPARATOR2_NEGATIVE_INPUT == 3)
       Set_comparator2_ni_vref_1_60();
#   elif (COMPARATOR2_NEGATIVE_INPUT == 2)
       Set_comparator2_ni_vref_2_13();
#   elif (COMPARATOR2_NEGATIVE_INPUT == 1)
       Set_comparator2_ni_vref_3_20();
#   elif (COMPARATOR2_NEGATIVE_INPUT == 0)
       Set_comparator2_ni_vref_6_40();
#   else
#      error (COMPARATOR2_NEGATIVE_INPUT should be 0, 1, 2, 3, 4 or 5... See config.h file)
#   endif
}
#endif // USE_COMP2

⌨️ 快捷键说明

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