Keil软件仿真时如何用逻辑分析仪观察变量值

316 阅读1分钟

在调试代码的时候,有时候手头上没有硬件环境,就需要用到纯软件仿真。下面先看一下要测试的代码。

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "FreeRTOS.h"
#include "task.h"
_Bool ledState = 0;
//任务1
void vTask1(void *pvParameters)
{
    const char *pcTaskName = "Task 1 is runing \r\n";
    volatile unsigned long ul;
    for(;;)
    {
        printf("%s\r\n", pcTaskName);

        ledState = 0;
        LED1 = 0;
        for(ul = 0; ul < 1000; ul++)
        {
        }
    }
}
//任务2
void vTask2(void *pvParameters)
{
    const char *pcTaskName = "Task 2 is runing \r\n";
    volatile unsigned long ul;
    for(;;)
    {
        printf("%s\r\n", pcTaskName);

        ledState = 1;
        LED1 = 1;
        for(ul = 0; ul < 1000; ul++)
        {
        }
    }
}
int main(void)
{
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4
    delay_init();	    				//延时函数初始化
    uart_init(115200);					//初始化串口
    LED_Init();		  					//初始化LED
    //创建开始任务
    xTaskCreate(vTask1,					//任务函数的指针
                "Task 1",				//任务的文本名字,只会在调试中用到
                100,					//栈深度
                NULL,					//没有任务参数
                1,						//任务优先级
                NULL					//不会用到任务句柄
               );
    xTaskCreate(vTask2, "Task 2", 100, NULL, 1, NULL);
    vTaskStartScheduler();          //开启任务调度
}

首先设置参数
在这里插入图片描述
设置晶振
在这里插入图片描述
设置软件仿真及Dialog 和 Paramerter参数。

下来开始仿真
在这里插入图片描述
在要观察的变量值上面右键,将变量添加到逻辑分析仪中。
要观察的变量值是0和1变化的。所以在逻辑分析仪上,将要观察的值设置为bit类型。
在这里插入图片描述
在逻辑分析仪上右键,选择bit。
在这里插入图片描述
如何要实时显示变量值,将view选项中最后一项打上勾。