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.

[参考译文] LAUNCHXL2-TMS57012:gioGetBit 函数不起作用

Guru**** 2589265 points
Other Parts Discussed in Thread: HALCOGEN, TMS570LS1224

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/999545/launchxl2-tms57012-giogetbit-function-not-working

器件型号:LAUNCHXL2-TMS57012
主题中讨论的其他器件:HALCOGENTMS570LS1224

我在读取 TMS570LS1224的数字输入时遇到问题。 我已经在 Halcogen 上配置了 Gio 和 HET 驱动程序、将项目导入到 CCS 并修改了 main 之后、如下所示:

#include "sys_common.h"
#include "het.h"
#include "Gio.h"


int main (空)

gioInit();
bool a=0;
hetSIGNAL_t pwmSignal;
gioSetBit (gioPORTA、0U、1);
a=gioGetBit (gioPORTA、1U);
如果(A=0)

hetInit();
pwmSignal.tDuty = 80;
pwmSignale.Period = 800;
pwmSetSignal (hetRAM1、pwm0、pwmSignal);
pwmStart( hetRAM1, pwm0);

返回0;

 

我对代码的 PWM 部分没有任何问题、但当我添加"gioGetBit"功能时、它不起作用。 我正在尝试从 gioportA 1U 读取信号。

我是否可能错过了 Halcogen 上的一些配置? 或者 CCS 上的主代码是否有问题?

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

    抱歉,条件语句应该是: if (a=1)激活 PWM,但这也不起作用  

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

     gioSetBit()的第二个参数是位#。

    gioSetBit (gioPORTA、0U、1); -->设置 GIOA[0]

    a=gioGetBit (gioPORTA、1U); -->读取 GIOA[1]

    请将第二条指令更改为:

    a=gioGetBit (gioPORTA、0U);

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

    感谢 QJ、但这将读取我之前在  GIOA[0]上设置的值。

    gioGetBit 函数是否设计为读取输出引脚的当前状态? 因为我要尝试读取的是 Launchpad 完全外部的信号。 (第一条指令只用于测试 GPIO 引脚的输出)

    Daniel  

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

    GIO 缓冲器架构支持在给定 I/O 结构的输入和输出缓冲器之间进行模拟回路。 无论 I/O 方向是配置为输入还是输出、数据输入和数据输出寄存器的内容都将直接反映引脚的状态。  

    您可以使用此函数读取此 GIO 引脚上的输入信号。

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

    因此、该代码行应该能够很好地读取 GIOA[1]上的输入信号:

    a=gioGetBit (gioPORTA、1U);  

    是否有任何线索表明、当有一个高电压信号连接到该引脚时、代码为什么不会进入条件??

    谢谢

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

    该引脚应配置为输入:

    gioSetDirection (gioPORT_t *端口、uint32方向)可用于设置 GIO 引脚的方向。

    gioSetDirection (gioPORTA、0xFE); -->将 GIOA[0]设置为输入、将其他设置为输出

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

    非常感谢、这很有用。