Cypress单片机 CY8C4147AZI-S475的Timer与系统滴答SysTick

该实验详细介绍了如何在CypressPsoc4100plus系列MCU(CY8C4147AZI-S475)上通过配置定时器和系统SysTick来控制LED灯闪烁。主要步骤包括新建工程、添加组件、配置定时器参数、设置中断、配置输出IO口、绑定MCU引脚、编写中断函数以及启动系统SysTick并设定回调函数。通过这两个方法,实现了LED灯的周期性闪烁。
摘要由CSDN通过智能技术生成

本实验分别通过配置定时器和系统SysTick,来点亮LED。开发板Cypress Psoc 4100 plus 系列MCU型号:CY8C4147AZI-S475;

1.新建工程

参考之前工程例程;

2.添加组件

需要添加一个定时器,一个输出引脚,一个时钟源,一个中断接收源;
添加组件

2.1定时器参数配置

定时器参数配置
注意Interrupt触发方式以及周计数,需与其他组件参数配合;

2.2 定时器时钟源配置

定时器时钟源设置
定时器时钟设置成1Khz,计数设置成500,即500ms产生一次中断溢出;

2.3中断设置

溢出中断

2.4 输出IO口配置

IO口输出配置

3.绑定MCU引脚

只有一个输出IO口需要绑定
IO口绑定

4.Build生成并实现

初始化定时器,并开启中断,重新给中断定义一个入口函数;

int main(void)
{
    CyGlobalIntEnable; /* Enable global interrupts. */

    /* Place your initialization/startup code here (e.g. MyInst_Start()) */
     Timer_1_Start();//定时器开启
     Timer_isr_1_Start();//定时器溢出中断开启
     Timer_isr_1_StartEx(user_Timer_isr_1_Interrupt);//重新定义中断入口函数
    for(;;)
    {
        /* Place your application code here. */
        LED_Pin_Write(led_toggle);  //LED点灯闪烁 
    }
}

中断函数编写

CY_ISR(user_Timer_isr_1_Interrupt)
{
         Timer_isr_1_ClearPending();//清除Timer_isr中断列表
         Timer_1_ClearInterrupt(Timer_1_INTR_MASK_TC );//按中断标志清除定时器中断
         led_toggle^=1;//实现灯亮灭翻转标志

}

5.用系统滴答SysTick实现LED灯闪烁

开启系统SysTick,在回调函数中实现计数,系统默认SysTick为1ms进入一次中断;

int main(void)
{
    CyGlobalIntEnable; /* Enable global interrupts. */

    /* Place your initialization/startup code here (e.g. MyInst_Start()) */
    CySysTickStart();//开启SysTick
    CySysTickSetCallback(0, user_tick_function);//配置回调函数

    for(;;)
    {
        /* Place your application code here. */
        if((sys_count)>=500)
        {
             sys_count=0;
             led_toggle^=1;
            LED_Pin_Write(led_toggle);
        }
       
    }
}

回调函数编写

void user_tick_function(void)
{
    sys_count++;  
}

在回调函数中只对变量进行++;

PS:CY8C4147AZI-S475系统滴答SysTick回调函数柯配置5个,CySysTickSetCallback(0, user_tick_function);的第一个参数取值0-4;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值