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.

数字引脚如何做GIO

Other Parts Discussed in Thread: HALCOGEN

本来记得是看过的,现在自己要用了,找半天没见着,所以厚着脸皮又来问了,

举个例子,如果用NHET做GIO使用如何来实现,谢谢!!!

  • 我其实是对AND Share和XOR Share及HR Share的设置不懂,怎么设置,有什么用,用作什么

  • 您看是否是这样设置,以het6、het7为例(从het6、7读取高低电平):

    1、设置方向gioSetDirection(hetPORT1,0xFFFFFF3F);

    2、读取数值gioGetBit(hetPORT1,6);gioGetBit(hetPORT1,7);

    不是是否有漏洞,这样设置对不

    对于HR,AND,XOR Share表示不懂

  • Hi Surface,

       可以这样使用,但是需要做一些初始化操作,在HALCoGen中完成即可。

         

        如果是我的话,使用HET或者其他数字模块的IO,直接操作它的寄存器就好了,如果觉得不方便,那么要自己写一个接口即可。

        比如,比较关键的几个寄存器分别是:

        1. IO的方向: DIR寄存器

        2. IO的开漏状态: PDR寄存器

        3. IO的上下拉状态: PULDIS和PSL寄存器

        4. IO的输出值: 一般用SET和CLR寄存器

        5. IO的输入值: 也是用SET和CLR就可以,也可以用IN这个寄存器。

        看技术手册(TRM)的话,几乎所有IO都有上述寄存器,只不过有时候名字不同而已,不离其宗。

      

        1, 2, 3步一般在初始化中运行一次就OK了。

        4和5,可能需要经常使用的。

        比如读取hetPORT1的值: result = hetREG1->DSET;

        把HET00引脚拉高: hetREG1->DSET = 0x01;

  • AND, XOR, HR是HET内部产生不同输出时要用到的功能,如果只是做GIO使用的话,不需要关心这些功能,保持他们的默认状态即可。