gpt4 book ai didi

c - 在 UC/OS-II 中打印 OSTime

转载 作者:行者123 更新时间:2023-11-30 16:26:45 24 4
gpt4 key购买 nike

设备:F28335 controlCRAD 和实验者套件 - Delfino F28335。

移植了 ucos-II。

我使用 OSTimeGet() 函数来获取 OSTime。

但是任务1每次都返回'0'并且任务2不起作用。

有什么问题吗?如何解决这个问题?

App_Task1's priority = 6u
App_Task2's priority = 7u


static void App_Task1 (void *p_arg)
{
(void)&p_arg;
INT32U t;

while (DEF_TRUE) {

t = OSTimeGet();

printf("Task1 \n");
printf("OSTime=%lu\n",t);
OSTimeDly(5);
}
}

static void App_Task2 (void *p_arg)
{
(void)&p_arg;
INT32U t;

while (DEF_TRUE) {

t = OSTimeGet();

printf("Task2 \n");
printf("OSTime=%lu\n",t);
OSTimeDly(10);
}
}


output
Task1 OSTime=0

最佳答案

您的 Systick 功能似乎运行不正确。由于我对您使用的芯片没有经验,因此无法给您完整的答案。但是你的 systick 函数应该包含这样的内容。这是来自 LPC17xx 的代码,但您应该会发生类似的事情

void  OS_CPU_SysTickHandler (void)
{
CPU_SR_ALLOC();


CPU_CRITICAL_ENTER();
OSIntNestingCtr++; /* Tell uC/OS-II that we are starting an ISR */
CPU_CRITICAL_EXIT();

OSTimeTick(); /* Call uC/OS-II's OSTimeTick() */

OSIntExit(); /* Tell uC/OS-II that we are leaving the ISR */
}

OSTimeTick() 用于 OSTimeDly()、OSTimeGet() 和任务切换

关于c - 在 UC/OS-II 中打印 OSTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52971984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com