Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
外部中断
中断延迟
硬实时
GD32 外部中断时延
发布于 2023-08-02 21:36:23 浏览:1033
订阅该版
主控是GD32F303VCT6,使用的RTT,现在是三个引脚对应(PC13~15)外部中断进入后控制一个引脚拉高,然后可能是因为会有全局中断关闭的行为,会出现一些情况下触发中断和开启引脚时延过大的情况,可以接受的delay现在在5us左右,而实际已经采到会出现17us的情况。 其中一个效果如下: ![1158032.png](https://oss-club.rt-thread.org/uploads/20230802/c04e641c5b52a1cf63e2070ae5607608.png.webp) 信号0是被拉高的信号,3是外部中断触发信号,1的高电平为中断被全局关掉的部分。 因为重写了禁用外部中断的函数,在禁用中断前先拉高对应gpio,用来测试。 ``` ;/* ; * rt_base_t rt_hw_interrupt_disable(); ; */ rt_hw_interrupt_disable PROC EXPORT rt_hw_interrupt_disable ; Set GPIO (Assuming the bit of interest is the 7th bit) LDR r1, =0x40010C10 ; Load the address of GPIO_BOP MOV r2, #0x800 ; The mask for the 11th bit STR r2, [r1] ; Write to GPIO_BOP, setting the 7th bit MRS r0, PRIMASK CPSID I BX LR ENDP ;/* ; * void rt_hw_interrupt_enable(rt_base_t level); ; */ rt_hw_interrupt_enable PROC EXPORT rt_hw_interrupt_enable MSR PRIMASK, r0 ; Clear GPIO (Assuming the bit of interest is the 7th bit) LDR r1, =0x40010C14 ; Load the address of GPIO_BC MOV r2, #0x800 ; The mask for the 11th bit STR r2, [r1] ; Write to GPIO_BC, clearing the 7th bit BX LR ENDP ``` EXTI10_15_IRQHandler已经重写,没有使用rtt的接口,几个相关的io也是直接调用的GD的库。 我现在不太理解,因为外部中断已经被我设为0 0 的优先级,按理说是最高了,从Keil的中断表里看也只有SVCall是0优先级,(systick和pendsv优先级是240也是不能理解的部分)。 如果关闭外部中断后不响应中断,在开启中断后应该直接响应最高优先级的中断吗,为什么按照上面的图里,中间还有多次开关的情况却没有先响应我的中断。
查看更多
4
个回答
默认排序
按发布时间排序
sync
2023-08-03
这家伙很懒,什么也没写!
GD32F303VCT6 只有前面的256k是零等待的,后面flash执行速度会慢点,楼主考虑下这个因素
goldengrandpa
2023-08-03
这家伙很懒,什么也没写!
会不会因为systick优先级被调到240最低了导致系统节拍不准,关中断的地方又和系统节拍有关,从而导致关中断的时间太久,导致造成外部中断时延
Blues_Jiang
2023-08-03
这家伙很懒,什么也没写!
考虑了一下 这种测试方法如果开关中断是嵌套的 那我显示的波形确实有问题了,主要现在的核心还是优先想解释现状,后面可能会移植到裸机。
兜兜里有啥
2023-08-04
这家伙很懒,什么也没写!
可以参考FreeRTOS方法,只关优先级较低的中断,比如只关优先级大于等于1的中断,将外部中断设置为0,这样就不受系统影响了,需要注意的是别在优先级为0的中断里调用RTT的接口函数。
撰写答案
登录
注册新账号
关注者
1
被浏览
1k
关于作者
Blues_Jiang
这家伙很懒,什么也没写!
提问
1
回答
5
被采纳
0
关注TA
发私信
相关问题
1
外部中断中能改变外部中断的功能,作为普通管脚用吗
2
外部中断计数输入的脉冲
3
关于4.0.2版本中STM32的PIN设备外部中断的相关问题
4
外部中断问题,现在开机上电前几次不能用,后面就可以了
5
我用外部中断接收数据,接收的时序非常严谨,现在是一次可以一次不行
6
外部中断我接收数据一次可以一次不行,我中断优先级设置最高了,是还有中断干扰吗?
7
使用外部中断释放信号量,在线程里接收数据,一次成功一次失败,这个代码有问题吗?
8
配置的GPIO中断无法执行中断服务子程序
9
增加系统,引脚为上升沿触发,触发中断,进入到中断时间延时10us,系统会干扰吗
10
rt 1052 触摸屏 INT 中断
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
RT-Thread中的time溢出问题,时间戳溢出,解决方法
2
ART-PI使用env驱动ETH网卡,pc和板子可以ping通
3
SystemView线程名字不显示
4
只用网页也能跑RT-Smart 无门槛腾讯Cloud studio + smart-build快速构建
5
免费申请 | FRDM-MCXA156评测活动发布!
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
8
个答案
2
次被采纳
三世执戟
7
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
winfeng
2
个答案
1
次被采纳
chenyaxing
2
个答案
1
次被采纳
本月文章贡献
catcatbing
2
篇文章
5
次点赞
swet123
1
篇文章
3
次点赞
YZRD
1
篇文章
2
次点赞
Days
1
篇文章
2
次点赞
阳光的掌控者
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部