主题中讨论的其他器件:HALCOGEN
工具/软件:Code Composer Studio
您好!
我是一个新手。 我打算使用 RM48 Hercules 开发套件(HDK)驱动两个直流电机、并在 CCS 中显示它们的 RPM。 通过使用 Halcogen 和 Code Composer、我能够使用 HET1驱动器生成具有不同占空比的 PWM、从而轻松运行两个电机(感谢 T.I 提供的示例)。 但是、我很困惑如何将每个电机的转速计信号转换为 RPM 并显示它。 我在网上看到了类似的例子,试图让我的工作,但都没有结果。
这就是我到目前为止所做的工作:
已启用 HET1驱动程序
在 PWM 0-7选项卡中、为输出引脚9和10启用 PWM。 引脚9的占空比为60%、引脚10的占空比为20%
在引脚8 - 15选项卡中、启用位9和10的输出方向
以根据转速计信号计算两个电机的 RPM
已启用 GIO 驱动程序
打开 GIO 选项卡、端口 A。选择 GIOA[0]和 GIOA[1]
使能位0和位1中断、为位0和位1选择下降沿中断
默认情况下、位0和位1为输入
使能位0和位1上拉
CCS 中使用的代码
/*用户代码开始(0)*/
#include "het.h"
#include "Gio.h"
#include "important .h"
#include
/*用户代码结束*/
/*包含文件*/
#include "sys_common.h"
#include "system.h"
#include "reg_gio.h"
/*用户代码开始(1)*/
/*用户代码结束*/
/**@fn void main (void)
*@应用程序主函数简介
*@请注意、默认情况下、此函数为空。
*
*此函数在启动后调用。
*用户可以使用此函数来实现应用程序。
*
/*用户代码开始(2)*/
/*用户代码结束*/
int main (空)
{
/*用户代码开始(3)*/
hetInit();
gioInit();
while (1);
/*用户代码结束*/
}
/*用户代码开始(4)*/
unsigned int 转速计数1 = 0;//计数风扇的转数
unsigned int 转速计数2 = 0;//计数风扇的转数
unsigned int 转速 RPM1 = 0;//存储风扇的 RPM
unsigned int 转速 RPM2 = 0;//存储风扇的 RPM
unsigned int lastRPM1 = 0;//存储上次读取的 RPM
unsigned int lastRPM2 = 0;//存储上次读取的 RPM
{
refreshTach();//更新转速计
_enable_interrupt_(TACH1);//启用转速计中断
_enable_interrupt_(TACH2);//启用转速计中断
}
void updateTach (void)
{
_disable_interrupt_(TACH1);//禁用转速计中断
_disable_interrupt_(TACH2);//禁用转速计中断
__nop();//等待1个指令周期
//将脉冲计数转换为 RPM
转速 RPM1 =(转速计数1/PULSESPERREVOLUTION1)*60;
转速 RPM2 =(转速计数2/PULSESPERREVOLUTION2)*60;
_enable_interrupt_(TACH1);//重新启用转速计中断
_enable_interrupt_(TACH2);//重新启用转速计中断
转速计数1 = 0;//重置脉冲计数器
转速计数2 = 0;//重置脉冲计数器
}
空的清爽提神()
{
updateTach();//刷新转速计读数
printf ("RPM =%i\n"、转速 RPM1);//打印第一个电机的 RPM
printf ("RPM =%i\n"、转速 RPM2);//打印第二个电机的 RPM
}
/*用户代码结束*/
头文件
important.h
*
*创建日期:2018年9月7日
*作者:chuks
*
#ifndef source_importal_H_
#define Source_Important H_
// Porta 引脚配置
#define TACH1位0
#define TACH2位1
#define PULSESPERREVOLUTION1 2.
#define PULSESPERREVOLUTION2
/******** 函数原型 /
void updateTach (void);
//用法:将转速计脉冲计数转换为实际 RPM 值
//参数:无
void refreshtach (void);
//用法:更新与转速计对应的所有变量
//参数:无
#endif /* source_Important _H_*/
请、有什么关于我为什么遇到错误以及它不起作用的建议?
此致



