请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
主题中讨论的其他器件:TM4C123GH6PM工具/软件:Code Composer Studio
我在我的 TM4C123gh下午6微控制器上使用 PC6 、问题是代码工作正常、我从 Wtimer 获取时间捕获、但在其 ISR 中、标志未设置。 ? Code Composer Studio 会在 该位置显示我(*)星号,在监视窗口中,它会显示我的类型为: READNONE/WRITE NONE。 它为什么这么做? 问题和解决方案。
void PeriodMeasure_Init (void){ //为 WTIME1 WT1CCP0启用引脚 PC6 = WTimer1 A noInterrupts (); SYSCTL_RCGCGPIO_R |=(1<<2); //激活端口 C 时钟 SYSCTL_RCGCWTIME_R |=(1<<1); //激活 Wtimer1时钟 // GPIOPinUnlockGPIO (GPIO_PORTC_BASE、GPIO_PIN_6); //解锁 PD7 GPIO GPIO_PORTC_DIR_R &=~(1<<6); //使 PC6输入 GPIO_PORTC_AFSEL_R |=(1<<6); //启用 alt funt GPIO_PORTC_DEN_R |=(1<<6); //启用数字函数 GPIO_PORTC_PCTL_R =(GPIO_PORTC_PCTL_R 和0xF0FFFFFF)+0x07000000;//在引脚6 上配置为 WTIMER 1_CTL_R &&~0x00000001; //在设置 WTIMEER1_CFG_R = 0x00000004期间禁用 timer1A; //配置为32位捕获模式 WTIMER 1_TAMR_0x00000017; //为上升沿事件配置 WTIME1_CTL_R &&~0x0000000C; //上升沿 WTIMER 1_TAILR_R = 0x00000000; //起始值 WTIMER 1_TAPR_0xFFFF; //激活预分频、预分频器计数:65535复位时间:3.518 WTIMER 1_IMR_R |= 0x00000004; //启用捕获匹配中断 WTIME1_ICR_R |=(1<<2); //清除 timer0A 捕获匹配标志//清除标志 WTIMEER1_CTL_R |= 0x00000001; // timer0A 24-b、+EDGE、中断 NVIC_PRI24_R =(NVIC_PRI24_R 和0xFFFFFF1F)|(1<<5);//WTimer1A->优先级1 NVIC_EN3_R |= 0x1; //在 NVIC interrupts ()中启用中断96; } void WideTimer1A_Handler (void){ if (FirstRun=1){ WTIMER 1_ICR_R = 0x00000004; //清除 timer0A 捕获匹配标志//清除标志 Periodlong =(WTIMER1_TAR_R - INT_TIME)& 0xFFFFFFFF;// 32位、12.5ns 分辨率 时间= Periodlong*12.5e-9; INT_TIME = WTIMER1_TAR_R; //设置下一 个} FirstRun = 1; //设置信标 WTIMER1_ICR_R = 0x00000004; //清除 timer0A 捕获匹配标志//清除标志 }