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

📄 main.c

📁 ST7的例子
💻 C
字号:
/********************************************************************************
Timer定时器应用实例(以下程序参考或采用ST公司MCD Application Team提供的相关子程序)
******************************************************************************/
#include "ST7lib_config.h"                                /*  选择ST7FLITE39 */ 

/*函数原型*/
void LT_ICAP_IT_Routine(void);
void LT_TB_IT_Routine(void);
void main(void);

volatile unsigned int count;  
void main (void)
{  
                                           /* PA3和PA1是推挽(push-pull)输出 */
    IO_Output(IO_PUSH_PULL,IO_PORT_A,((unsigned char)IO_PIN_3 | 
                                                    (unsigned char)IO_PIN_1 ));
        /*设定时基为 1ms,输入捕捉(Input capture)和时基(Timebase)中断使能 */
    LT_Init(((unsigned char)LT_ICAP_IT_ENABLE|(unsigned char)LT_TB_IT_ENABLE));
                                                         /* 清CC寄存器中的I位*/
    EnableInterrupts                            /* st7lib_config.h中的宏定义 */
		
		while(1);                                                  /* 仅作测试用 */
}

/******************************************************************************
使用输入捕捉中断服务程序
(当中断捕捉产生时,PA1引脚对应的LED D1将闪亮)
******************************************************************************/

#ifdef _COSMIC_                                    /* Cosmic编译器*/
@interrupt @nostack
#else
#error "Unsupported Compiler!"                 /* 编译器没有定义! */
#endif

void LT_IC_IT_Routine(void)
{
    unsigned char ICAP_Value, i;
                                                     /* i = LTICR; 清零ICF */
    LT_Clear_Flag(LT_FLAG_ICF);                      /* 清零ICF */
    ICAP_Value = LT_ICAP_Getvalue();                 /* 获取捕捉值并清零ICF */
    IO_Write (IO_PORT_A,IO_PIN_1,IO_DATA_HIGH);      /* 在PA1关闭LED */
    for ( i=0;i<=100;i++)                            /* 延时 */
    {
        Nop
    }
    IO_Write (IO_PORT_A,IO_PIN_1,IO_DATA_LOW);       /* 在PA1打开LED*/
}

/******************************************************************************
使用时基中断服务程序
(当时基中断产生时,PA3引脚对应的LED D3将每隔5秒闪亮一次)
******************************************************************************/

#ifdef _COSMIC_                                  /* Cosmic编译器 */
@interrupt @nostack
#else
#error "Unsupported Compiler!"                   /* 编译器没有定义! */
#endif

void LT_TB_IT_Routine(void)
{
    unsigned char Temp;
                                                   /* i = LTICR; 清零ICF */
    LT_Clear_Flag(LT_FLAG_TBF);                    /* 清零ICF */           
                                                   
    count++;
    if(count == 5000)
    {
        Temp = IO_Read (IO_PORT_A );                        /* 切换PA3 */
        if (Temp & 0x08)
        {
            IO_Write (IO_PORT_A,IO_PIN_3,IO_DATA_LOW);  /* 在PA3打开LED */
        }
        else
        {
            IO_Write (IO_PORT_A,IO_PIN_3,IO_DATA_HIGH); /* 在PA3关闭LED  */
        }
        count = 0;
    }
}
   

⌨️ 快捷键说明

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