Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FAQ:AD14 AD15 AC104定时器中断响应时间不准? #95

Open
Kickdecoder opened this issue Nov 15, 2022 · 0 comments
Open

FAQ:AD14 AD15 AC104定时器中断响应时间不准? #95

Kickdecoder opened this issue Nov 15, 2022 · 0 comments

Comments

@Kickdecoder
Copy link

一、简介

SDK中存在很多临界保护区域需要开关中断,有些开关中断的地方会为了防止卡音等问题会放出AUDIO等中断,这些中断可能会延后开总中断的时间(如图,此处开总中断的时间有时会延后300多us),然后导致定时器中断时间不准,本文将说明如何解决该问题;
image

二、涉及的SDK版本

ad140-release_v1.3.0 以及后续版本
ac104n-release_v1.3.0 以及后续版本
ad150-release_v1.3.0 以及后续版本

三、解决方法

  1. 在开中断函数的参数中加上你需要使用的中断(图中以timer1中断为例)
  2. 设置timer1中断的优先级,只要高于TICKTMR中断和AUDIO中断即可
  3. 将中断函数以及函数中调用的函数放进RAM
    image

四、补充说明

关中断函数OS_ENTER_CRITICAL()和_OS_ENTER_CRITICAL(u32 bit list)的区别
前者会关掉所有中断的总中断,调用后通过OS_EXIT_CRITICAL开总中断;后者会关掉括号内置的中断以外的中断,单独保留括号内的中断正常响应,调用后通过_OS_EXIT_CRITICAL恢复关中断前的状态。注意,后者不可重复调用。
如果用户有VM需求,而且写VM时需要响应定时器中断的话,则需要将中断函数和中断里调用的函数和变量都放在RAM,且调用下图中函数响应定时器中断(以timer1中断为例)。
image

五、相关链接

https://github.com/Jieli-Tech/fw-AD15N/issues/29

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant