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.
工具/软件:Code Composer Studio
我有3次温度测量、以作为系统的频率输入。 @ 25°C 的标称频率为28kHz、增益为-0.8Hz/°C。
我希望能够测量-30°C 至+70°C 的温度,从而获得28、044Hz 至27、964Hz 的预期频率范围。
在开发过程中,我将函数发生器的外部28kHz 信号注入 HET1[4]引脚,并使用 HalCoGen 将该引脚设置为所有 CAPn 寄存器以进行测试。
从一个代码示例开始、我发现这个代码示例的标题是:1512.NHET PWM 生成和使用 HALCoGen 的捕捉;我修改了这个示例以与一个更新版本的 HalCoGen 和 CCS 兼容。 (我使用的是 CCS Ver 7.2.0.00013和 HalCoGen Ver 4.07.00)我希望通过使用函数 capGetSignal(),我可以很容易地获得信号的周期值。 到目前为止、我无法读取任何内容、因为该函数仅返回0值。 缺少内容。
几个问题:
我出了什么问题?
NHET 是此测量的理想选择、还是 ECAP 之类的器件更合适?
有没有人有一个工作代码示例、可以从外部信号进行频率测量? 似乎有很多示例可以说明如何使用 HET 生成 PWM 信号。
随附的是供审阅的项目文件。
我们非常感谢您的任何帮助。
谢谢、
Steve
e2e.ti.com/.../2021.HETtest1.zip
/**@文件 hL_sys_main.c
* @简要应用程序主文件
* @日期:2017年7月7日
* @版本04.07.00
*
* 此文件包含一个空的主函数、
* 可用于应用程序。
*
/*
*版权所有(C) 2009-2016德州仪器(TI)公司- www.ti.com
*
*
* 以源代码和二进制形式重新分发和使用、有无
* 如果满足以下条件、则允许进行修改
符合*:
*
* 源代码的重新分发必须保留上述版权
* 注意、此条件列表和以下免责声明。
*
* 二进制形式的再发行必须复制上述版权
* 请注意、中的此条件列表和以下免责声明
* 随提供的文档和/或其他材料
*分发。
*
* 德州仪器公司的名称和名称均不相同
* 其贡献者可用于认可或推广衍生产品
* 未经特定的事先书面许可。
*
* 本软件由版权所有者和贡献者提供
* "按原样"以及任何明示或暗示的保证、包括但不包括
* 仅限于对适销性和适用性的暗示保证
* 一项特定目的不予承认。 在任何情况下、版权均不得
* 所有者或贡献者应对任何直接、间接、偶然或
* 特殊、惩戒性或后果性损害(包括但不包括)
* 仅限于采购替代货物或服务;丧失使用、
* 数据或利润;或业务中断)
* 责任理论、无论是合同责任、严格责任还是侵权行为
* (包括疏忽或其他)因使用而以任何方式产生
* 、即使被告知可能会发生此类损坏。
*
*
/*用户代码开始(0)*/
/*用户代码结束*/
/*包含文件*/
#include "hL_sys_common.h"
/*用户代码开始(1)*/
#include "hL_het.h"
/*用户代码结束*/
/**@fn void main (void)
* @应用程序主函数简介
* @请注意、默认情况下、此函数为空。
*
* 此函数在启动后调用。
* 用户可以使用此函数来实现应用程序。
*
/*用户代码开始(2)*/
hetSIGNAL_t Duty_PERIOD1、Duty_Period2、Duty_Period3、Duty_period4;
het_config_reg_t het_config;
/*用户代码结束*/
int main (空)
{
/*用户代码开始(3)*/
int i;
for (i=0;i<0x10000;i++);//简单延迟
capGetSignal (hetRAM1、cap1、Duty_PERIOD1);
/*初始化 HET 驱动程序*/
hetInit();
het1GetConfigValue (&het_config、CurrentValue);
for (i=0;i<0x20000;i++);//简单延迟
capGetSignal (hetRAM1、cap1、Duty_Period2);
for (i=0;i<0x30000;i++);//简单延迟
capGetSignal (hetRAM1、cap1、Duty_Period3);
for (i=0;i<0x40000;i++);//简单延迟
capGetSignal (hetRAM1、cap1、Duty_period4);
/*永久运行*/
while (1);
/*用户代码结束*/
返回0;
}
/*用户代码开始(4)*/
/*用户代码结束*/