This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/TMS320F28027:F28027

Guru**** 2582405 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/647864/rtos-tms320f28027-f28027

器件型号:TMS320F28027

工具/软件:TI-RTOS

我在 Hwi 方面有问题。 我接收到脉冲并接收来自超声波传感器的回波。 我能够从 eCAP 获取回波值。

问题是、当我在 Hwi 中断例程中存储时间差值时、由于某种原因无法访问该值。 硬件中断

是 eCAP_ISR (UARg 参数)。 在 idle.cfg 中、我已将中断编号设置为56、中断优先级设置为1、并将事件 ID 设置为-1。

/*
28x 特定空闲示例。
*
*此示例:
*
* 1)在 main()中打印"Hello world"
*
2)打印来自
*的计数器的当前值 在空闲函数内、每次执行
* 计时器中断关闭。
*
*所有输出均路由到日志缓冲区
、*可使用 RTA "原始日志"查看器查看该缓冲区。 加载并运行
*应用程序后,启动 Tools->RTA->Raw Logs 工具
以*查看日志。
//
//#define XDC__STRICT
#define DSP28_DATA_Types
#include 
#include 
#include 
#include "DSP2802x_Device.h"

void DeviceInit (void);

/* Idle 函数用于检查中断是否发生的标志*/
volatile bool isrFlag = false;

/*计数器由计时器中断递增*/
volatile UINT tickCount = 0;
unsigned long int distance;

/*
*=== main ====
*/
int main()
{
/*
*将"Hello world"打印到日志缓冲区。
*
//Log_info0 ("Hello world\n");
DeviceInit();
/*
*启动 BIOS
*执行几个最终初始化、然后执行
*进入持续调用的循环
*已安装空闲函数。
*
BIOS_start();/*不返回*/
return (0);
}

/*
==== myTickFxn =====
*计时器节拍函数、递增计数器并设置 isrFlag。
*/
void myTickFxn (UArg arg)
{
tickCount += 1;//递增计数器*/
isrFlag = true;//告知背景新数据可用*/
}

/*
=== myIdleFxn ===
*从
BIOS_start()线程内反复调用的后台空闲函数*。
*/
void myIdleFxn (void)
{
if (isrFlag = true){
isrFlag = false;
/*
*将 tickCount 的当前值打印到日志缓冲区。
*
log_info1 ("节拍数=%d\n"、tickCount);
}
}

/*
=== eCAP1_ISR ====
*/
void eCAP_ISR (UARg arg)
{
distance = ECap1Regs.CAP2;
ECap1Regs.ECCLR.all = 0xFF;
} 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jacky、

    很抱歉耽误你的时间。 休假期间处理论坛主题的移交工作进展不顺利。

    这仍然是个问题吗?

    不清楚您的意思是"由于某种原因无法访问"。 请提供更多详细信息。

    Todd

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jacky、

    由于我一周内没有听到、我假设这是一个已解决的问题。

    Todd