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:导致故障的 IF 语句

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1386890/tm4c123gh6pm-if-statement-causing-a-fault

器件型号:TM4C123GH6PM

工具与软件:

您好!

当实现了 Timer0A 中断(但尚未启用)时、我的 if 语句会导致故障。 每当下面的 if 语句检查 ADCvoltage 是否>=939时、它会进入 FaultISR、但当我注释掉以下用于 Timer0A 中断的代码(Timer0Init 和 Timer0IntHandler)时、效果很好。  

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void Timer0Init(void){
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC);
uint32_t ui32Period = (80000000/10);
TimerLoadSet(TIMER0_BASE, TIMER_A, ui32Period - 1);
// NVIC_PRI4_R = (NVIC_PRI4_R & 0x00FFFFFF) | (7 << 29);
IntEnable(INT_TIMER0A);
TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
IntMasterEnable();
TimerEnable(TIMER0_BASE, TIMER_A);
}
void Timer0IntHandler(void) {
// Clear the timer interrupt
TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

这里的问题是什么?

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

    我将在进一步测试代码后发布新的主题