This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C123GH6PM:Tiva 上的计时器在同一端口中使用2个超声波

Guru**** 1821780 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1354977/tm4c123gh6pm-timer-on-tiva-use-2-ultrasonic-in-same-port

器件型号:TM4C123GH6PM

可以帮助我使用计时器0和计时器3、它不起作用 这是代码  

void Timer0A_voidinit (void)
{

SET_BIT (SYSCTL_RCGCTIMER_R、Timer0A_CLK);//启用计时器块0的时钟
GPIO_Init (GPIO_PORTB、GPIO_PIN_6);
GPIO_SetPinDirection (GPIO_PORTB、GPIO_PIN_6、GPIO_DIRECTION_INPUT_PUSH_PULL);
SET_BIT (GPIO_PORTB_AFSEL_R、GPIO_PIN_6);//使用 PB6备用功能
GPIO_PORTB_PCTL_R &=(unsigned int)~PB6_TOCCP0;//为 T0CCP0配置 PB6
SET_BIT (GPIO_PORTB_PCTL_R、24);
SET_BIT (GPIO_PORTB_PCTL_R、25);
SET_BIT (GPIO_PORTB_PCTL_R、26);

// PB2作为数字输出信号,提供触发信号
GPIO_Init (GPIO_PORTA、GPIO_PIN_4);
GPIO_SetPinDirection (GPIO_PORTA、GPIO_PIN_4、GPIO_DIRECTION_OUTPUT);

CLR_BIT (TIMER0_CTL_R、Timer0A_CLK);//在设置期间禁用 timer0A
TIMER0_CFG_R = TIMER_mode16bit;// 16位计时器模式
SET_BIT (TIMER0_TAMR_R、COUNTUP_BIT);//向上计数
SET_BIT (TIMER0_TAMR_R、Capture_Mode1);//捕获模式
SET_BIT (TIMER0_TAMR_R、Capture_mode2);
Set_Bit (TIMER0_TAMR_R、Edge_Time_);//edge-Time
SET_BIT (TIMER0_CTL_R、BOOST_Edge1);
SET_BIT (TIMER0_CTL_R、BOOST_EDGE2);
SET_BIT (TIMER0_CTL_R、Timer0A_CLK);//启用 timer0A


void Timer3A_voidinit (void)
{

SET_BIT (SYSCTL_RCGCTIMER_R、Timer3A_CLK);//启用计时器块1的时钟
GPIO_Init (GPIO_PORTB、GPIO_PIN_2);
GPIO_SetPinDirection (GPIO_PORTB、GPIO_PIN_2、GPIO_DIRECTION_INPUT_PUSH_PULL);
SET_BIT (GPIO_PORTB_AFSEL_R、GPIO_PIN_2);//使用 PF2备用功能
GPIO_PORTB_PCTL_R &=(unsigned int)~PB2_T3CCP0;//针对 T1CCP0配置 PF2
SET_BIT (GPIO_PORTB_PCTL_R、8);
SET_BIT (GPIO_PORTB_PCTL_R、9);
SET_BIT (GPIO_PORTB_PCTL_R、10);

// PE3作为数字输出信号,提供触发信号
GPIO_Init (GPIO_PORTD、GPIO_PIN_3);
GPIO_SetPinDirection (GPIO_PORTD、GPIO_PIN_3、GPIO_Direction_output);

CLR_BIT (TIMER3_CTL_R、0);//在设置期间禁用 timer2A
TIMER3_CFG_R = TIMER_MODE16bit;// 16位计时器模式
SET_BIT (TIMER3_TAMR_R、COUNTUP_BIT);//向上计数
SET_BIT (TIMER3_TAMR_R、Capture_Mode1);//捕获模式
SET_BIT (TIMER3_TAMR_R、Capture_mode2);
SET_BIT (TIMER3_TAMR_R、Edge_Time_);//edge-Time
SET_BIT (TIMER3_CTL_R、BOOST_Edge1);//捕获上升沿引脚2、3
SET_BIT (TIMER3_CTL_R、BOOST_EDGE2);
SET_BIT (TIMER3_CTL_R、0);//启用 timer2A
}  请帮助我每一个运行正确的放置时使用相同的 IT 剂量不起作用   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     您似乎正在使用您自己的自定义 API。 您不应该使用 TivaWare SDK 的任何强大原因? 我不知道您的自定义函数、如 SET_BIT。  

     同时也要注意、我目前正在度假、直到下周二、由于互联网访问有限、我的回复将会延迟。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、不能使用

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    寻找解决方案