主题中讨论的其他器件: TM4C123
工具/软件:Code Composer Studio
大家好
我尝试使用 timer0作为输入边沿计数器,我执行了数据表中提到的所有步骤,但我完全没有响应。
这是我的代码
#include "tm4c123ghp6.h"
空 systemClockInit()
{
SYSCTL_RCC_R = 0x0;
SYSCTL_RCC_R |=(1<0);//启用主振荡器
SYSCTL_RCC_R &=~(3<<4);//将主振荡器配置为输入
SYSCTL_RCC_R |=(0x15<<6);// 16M OSC。
SYSCTL_RCC_R &=~(1<<11);//启用 PPL
SYSCTL_RCC_R |=(1<<20);//禁用 PWM 时钟分频
}
void enableBusAndClock()
{
SYSCTL_GPIOHBCTL_R = 0x3B;//为端口{A、B、D、E、F}启用 AHB
SYSCTL_RCGCGPIO_R = 0x3B;//启用端口{A、B、D、E、F}的时钟
}
void alterantivePinSet()
{
GPIO_PORTB_AHB_AFSEL_R = 0xF3;//为 B{0、1、4、5、6、7}计数器设置备用引脚
GPIO_PORTB_AHB_DIR_= 0xF3;
GPIO_PORTB_AHB_DEN_R = 0xF3;
GPIO_PORTD_AHB_AFSEL_R = 0x01;//为 D{0}PWM 设置备用引脚
GPIO_PORTD_AHB_DEN_R = 0x01;//启用数字功能
/
GPIO_PORTB_AHB_PCTL_R |=(7<0)|(7<4)|(7<16)|(7<20)|(7<24)|(7<28);//启用端口 B 引脚上的计数器功能
GPIO_PORTD_AHB_PCTL_R |=(5<0);//在 D{0}上启用 PWM 功能
}
空 timersConfiguration()
{
SYSCTL_RCGCTIME_R = 0x07;//启用计时器的时钟{0、1、2}
TIMER0_CTL_R &=~(1<0);//禁用定时器0
TIMER0_CFG_R = 0x4;//将模块0配置为计数器
TIMER0_TBMR_R =(0x03)|(1<<4);//将模块(0、B)配置为计数器和递增计数器
TIMER0_CTL_R &=~(3<<10)&~(3<2);//配置模块{A、B}正边沿
TIMER0_TBPMR_R = 0x0;//将 APMR 配置为254
TIMER0_TBIMATCHR_R = 0xFF;
TIMER0_TBPR_R = 0xFF;
TIMER0_TBILR = 0x0000FFFF;
TIMER0_CTL_R |=(1<0);//启用定时器0
}
int main (void){
systemClockInit();
enableBusAndClock();
alterantivePinSet();
timersConfiguration();
while (1)
{
}
}
