TI中文支持网
TI专业的中文技术问题搜集分享网站

【新人贴】关于TM4C的0B定时器中断配置出现错误

先附一波源码!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。:

#include <stdint.h>
#include <stdbool.h>
#include <stdio.h>
#include "hw_memmap.h"
#include "hw_types.h"
#include "hw_gpio.h"
#include "hw_nvic.h"
#include "hw_ints.h"
#include "debug.h"
#include "gpio.h"
#include "pin_map.h"
#include "sysctl.h"
#include "interrupt.h"
#include "timer.h"
#include "uartstdio.h"
void Timer0B_Init(void);

int main(void)
{ SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ | SYSCTL_OSC_MAIN);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE,GPIO_PIN_2);
Timer0B_Init();
while(1)
{
;
}
}
void TIMER0B_Handler(void)
{
TimerIntClear(TIMER0_BASE,TIMER_TIMB_TIMEOUT);
if(GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_2))
{
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,0);
}
else
{
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,GPIO_PIN_2);
}
}

void Timer0B_Init()
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
TimerConfigure(TIMER0_BASE,TIMER_CFG_PERIODIC);
TimerLoadSet(TIMER0_BASE,TIMER_B,SysCtlClockGet()/4);
IntEnable(INT_TIMER0B);
TimerIntEnable(TIMER0_BASE,TIMER_TIMB_TIMEOUT);
IntMasterEnable();
TimerEnable(TIMER0_BASE,TIMER_B);
}

我用0A和1A的定时器中断都完成了闪灯o(* ̄▽ ̄*)o,可是到了TIMER B就不行了ヽ(✿゚▽゚)ノ,是不是我没发现B的正确用法φ(゜▽゜*)♪,还是配置有错误?

请高人指点 (´▽`ʃ♡ƪ)

Susan Yang:

请问您现在使用的是哪款芯片?是否有进行在线调试?

您可以尝试在TIMER0B_Handler打断点看能否进入?若是不能进入的话,估计就是TIMER B的配置问题了

建议您对照TI例程看一下

C:\ti\TivaWare_C_Series-2.1.4.178\examples\boards\ek-tm4c123gxl\timers

user6024893:

回复 Susan Yang:

TM4C123GH6PM我用0A试过成功了,可是0B就不行(我只是把0A的参数修改了一下名称)

user6024893:

回复 Susan Yang:

我对0B的配置是这样的:TimerConfigure(TIMER0_BASE,TIMER_CFG_PERIODIC);
例程中对0B 的配置是这样的:TimerConfigure(TIMER0_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_B_PERIODIC);

赞(0)
未经允许不得转载:TI中文支持网 » 【新人贴】关于TM4C的0B定时器中断配置出现错误
分享到: 更多 (0)