如何使用周期性中断定时器切换 LED?

问题描述

我是 ARM 编程新手。我正在使用 K20 MK20DX256 MCU 和 72MHz 时钟每 1 秒切换一个 LED 和周期中断定时器 0。代码编译正常,但 LED 不切换。我发现将定时器与 LED 一起配置不工作,而 LED 单独工作 我在keil Uvision中写了如下代码


#include "MK20D7.h"
#include <stdio.h>

int main(void)
{
    SystemInit();
    NVIC_EnableIRQ(PIT0_IRQn);                      //Enable Timer Interrupts
    //Configuring Timer 1
    PIT->MCR=0x00;                              
     
    PIT->CHANNEL[0].LDVAL=13888;
    
    PIT->CHANNEL[0].TCTRL=0x3;
    
    //Configure LED
    SIM->SCGC5   = (1UL << 11);        /* Enable Clock to Port C */     
    PORTC->PCR[5] = (1UL <<  8);        /* Pin is GPIO */
    PTC->PDDR = (1u<<5);
    PTC->PSOR = (1u<<5); //Set PTC5 = 1,turns LED on           
    while(1){
        
        if(PIT->CHANNEL[0].TFLG ==1)
        {
        
        PIT->CHANNEL[0].TFLG =0;
        PIT->CHANNEL[0].LDVAL=13888;    
            if(PTC->PSOR!=(1u<<5))
            {
                
                PTC->PSOR = (1u<<5); //Set PTC5 = 1,turns LED on           
            }
            else
            {
                PTC->PCOR = (1u<<5); //Set PTC5 = 1,turns LED off  
                
            }
        }
    
    }


}

谁能帮我找出这段代码有什么问题? 我发现在调试过程中没有一个寄存器改变它们的值 enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)