tzz1983
发表于 2024-8-27 09:45:47
tubulvxing 发表于 2024-8-27 09:38
楼主,如果huge模式,需要更改哪些配置。
应该不用改什么,就能直接支持huge模式,这个版本是用中断切换任务的,中断本身就只用RETI返回, 不像代码切换任务那个,要分RET和ERET(huge模式).
tubulvxing
发表于 2024-8-27 09:51:52
tzz1983 发表于 2024-8-27 09:45
应该不用改什么,就能直接支持huge模式,这个版本是用中断切换任务的,中断本身就只用RETI返回, 不像代码 ...
刚看见96个警告,以为配置不对,结果细看全是l16。屏蔽后舒服多了
tubulvxing
发表于 2024-8-27 09:52:17
tubulvxing 发表于 2024-8-27 09:51
刚看见96个警告,以为配置不对,结果细看全是l16。屏蔽后舒服多了
huge 模式可以的
JWQ_QL_STC
发表于 2024-9-2 22:03:24
请教一下哪位大神,STC32G跑FreeRTOS系统中,如何做uS级别的延时函数呢?不想用那种死循环等待的方式
tzz1983
发表于 2024-9-3 07:49:05
本帖最后由 tzz1983 于 2024-9-3 07:52 编辑
JWQ_QL_STC 发表于 2024-9-2 22:03
请教一下哪位大神,STC32G跑FreeRTOS系统中,如何做uS级别的延时函数呢?不想用那种死循环等待的方式 ...
RTOS的延时是以滴答为单位的粗线条延时,不保证延时精度。
具体解释是:
延时1个时钟滴答,实际延时= 0至1个滴答,
延时2个时钟滴答,实际延时= 1至2个滴答, 以此类推,
如果延时时间到了,任务却被阻塞,延时时间会更长一些,所以说不保证精确。
uS级延时时间太短, 不适合用RTOS延时, 另外想别的办法。
_nop_()也不错, 几个uS不要太在意.
常用的延时分两类:
1. 要求必须精确,这种用来保证硬件时序,可用NOP指令 或 借助硬定时器,如有必要,还需进临界区或关中断。
2. 只需保证最短延时,这种很常用,例如开启ADC电源后,1mS后才进行ADC操作。 这个就比较随意了,用RTOS延时或硬件延时都可以。
llyymm
发表于 2024-9-3 10:12:37
一直在关注学习FreeRTOS,感谢楼主分享
durongze
发表于 2024-9-5 07:36:19
不要置气,只要能帮你改正错误的老师都是好老师。 因为你不知道你的产品流入用户手中后,会给用户带来什么。 老师觉得太简单的东西要自己查。但是初学者,困难重重,查了这里,顾不上查那里。总想问现成的。
不管怎样,老师能提出你的问题。就已经很不错了。不是每一个老师都喜欢 “管你的闲事” 。
durongze
发表于 2024-9-5 07:39:04
我的实验箱不在手上,有没有人试过这个,这个烧写后是啥效果呢?
durongze
发表于 2024-9-5 07:44:34
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=467
UART1.C(32): error C168: interrupt: value not in range 0 ... 31
UART1.C(55): error C168: interrupt: value not in range 0 ... 31
assembling START251.A51...
durongze
发表于 2024-9-5 07:47:38
亲测,可以编译通过了。0警告。
Rebuild target 'FreeRTOS_STC32G_Demo'
compiling croutine.c...
compiling event_groups.c...
compiling list.c...
compiling queue.c...
compiling stream_buffer.c...
compiling tasks.c...
compiling timers.c...
compiling port.c...
assembling .\Objects\port.src...
compiling heap_4.c...
compiling STC32G_Delay.c...
compiling UART1.C...
assembling START251.A51...
compiling main.c...
compiling StarTask.c...
compiling testTask.c...
linking...
Program Size: data=9.2 edata+hdata=3751 xdata=384 const=186 code=9868
creating hex file from ".\Objects\FreeRTOS_STC32G12K"...
".\Objects\FreeRTOS_STC32G12K" - 0 Error(s), 0 Warning(s).
Build Time Elapsed:00:00:03