- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
<分区>
所以我用 C 语言为 STM32F103C8T6
微 Controller 编写了一个程序,使用了 RTC(实时时钟)和一个显示模块。
RTC 和显示器都工作正常,但是当我尝试从 RTC 中断处理程序内部更新显示器时,它不起作用。
当我从 main()
中向显示器写入内容时,它工作正常。
中断处理程序也能正常工作,所以我认为问题出在写入显示器的函数中。
此函数使用小延迟来对与显示 Controller 的通信进行位爆炸。
我以前使用 SysTick
来生成这样的延迟:
void delay(uint32_t n){
uint32_t start = systick_count;
while (systick_count - start < n);
return;
}
但不知何故,在 RTC 的中断处理程序中它不起作用。所以我用这个替换了我的延迟函数,而不是使用 SysTick:
for (; i>0; i--) {
for (int j = 0; j < 72; ++j) {
__asm__ __volatile__("nop\n\t":::"memory");
}
}
现在一切正常。
我试图理解为什么 SysTick
显然在 RTC 中断处理程序中不起作用。
我认为这可能是由中断优先级引起的,但根据数据表,默认情况下 SysTick 中断
的优先级高于 RTC 中断优先级。
也许有人可以解释,为什么会这样?
EDIT1:好的,所以我已经阅读了更多关于中断优先级的内容,看来我需要正确配置 NVIC_IRQChannelPreemptionPriority。我会尽快尝试...
关于中断内部的延迟,我知道这不是正确的做法,但我仍然想了解程序的行为
EDIT2:我只是尝试通过以下方式更改中断优先级:
// set RTC interrupt priority to 15 (lowest)
NVIC_SetPriority(RTC_IRQn, 15);
// set interrupt priority of SysTick to 0 (highest)
NVIC_SetPriority(SysTick_IRQn, 0);
现在 SysTick 延迟在 RTC 中断处理程序中起作用。
我目前正在旁听有关嵌入式系统的在线 edX 类(class),并学习如何使用 SysTick 计时器计算耗时。 Picture of logic I'm referring to Code of lo
我目前正在努力处理一段非常简单的代码,它表明 ARM GCC 的 1 级优化器以某种方式破坏了一个简单的公式。 这使用标准编译器设置 (O1) 在最新的 Atmel 6.2 Studio 上运行。 A
我的 STM32F7 需要高精度中断。任务是在每次滴答时增加一个计数器。 CPU 的频率高达 216 MHz(来自数据表),这意味着可以实现大约 5 ns 的滴答持续时间,对吗? 经过一些互联网研究,
SysTick使用说明 系统节拍 我们有一个基于 STM32G483 MCU (Cortex M4) 的定制板。我们使用 SysTick 作为软件定时器的引用。 SysTick 重载寄存器设置为 0x
我有一个 SysTick 异常处理程序,它计算滴答并调用其他函数(f1、f2、f3),其执行时间可以长于 SysTick 周期。这些函数设置和清除它们的事件状态(全局变量),因此如果发生 SysTic
我目前正在移植我的 DCF77 library (您可能会发现 source code at GitHub )从 Arduino(基于 AVR)到 Arduino Due(ARM Cortex M3)
我有一个用于半托管的 ATSAMD21E18A 微型。为了使半托管工作,GDB 需要在第一条 bkpt 指令之前“附加”。另一方面,我莫名其妙地发现,如果在我配置 GDB 时已经附加了 GDB,则 S
我在获取在运行 uC/OS-III 的 NXP LPC1857 上平稳运行的 LED 的 PWM 信号时遇到问题。仅当我禁用以 1ms 运行的操作系统 systick 时,定期发生的闪烁才会停止。 我
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 4 年前。 Improve this qu
我是一名优秀的程序员,十分优秀!