查看: 2145|回复: 1

[其他] 哪位大神用过HEF4894B这个移位寄存器

[复制链接]
  • TA的每日心情
    开心
    2022-7-25 11:05
  • 签到天数: 38 天

    连续签到: 1 天

    [LV.5]常住居民I

    7

    主题

    151

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    393
    最后登录
    2022-7-25
    发表于 2017-7-12 22:18:12 | 显示全部楼层 |阅读模式
    本帖最后由 雪山飞狼 于 2017-7-12 22:25 编辑

    如题,请问哪位大神用过HEF4894B这个12级的串转并移位寄存器,按手册里的逻辑编程,但没有得到预想的结果,求大神指点!

    附件是IC的datasheet;

    自己编写的驱动如下:
    /* Transform data to QP0 ~ 11*/
    void HEF4894_Trans(unsigned long data,unsigned char data_len)
    {
      unsigned long  temp_data = 0;
      unsigned char i = 0;

      temp_data = data;

      HEF4894_STR = 0;  /* 锁存关 */
      HEF4894_OE  = 0;  /* 输出使能关 */
      HEF4894_D   = 0;  /* 数据输入0 */
      HEF4894_CP  = 0;  /* 时钟线0 */


      /* trans data to the register of HEF4894 */
      for(i=0;i<data_len;i++)
      {
        HEF4894_CP  = 0;
        if((temp_data & (unsigned long)0x0001) == 0)
        {
          HEF4894_D = 0;
        }
        else
        {
          HEF4894_D = 1;
        }
        HEF4894_CP  = 1;
        temp_data = temp_data>>1;
      }

      HEF4894_CP  = 0;     /* 时钟线0 */
      HEF4894_STR = 1;    /* 锁存使能 */
      HEF4894_OE  = 1;     /* 输出使能 */
    }


    我知道答案 目前已有1人回答

    HEF4894B-v 9.0-2016.pdf

    791.03 KB, 下载次数: 1, 下载积分: 威望 1

    HEF4894B

    最近调代码都一遍过,得意中~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-7-25 11:05
  • 签到天数: 38 天

    连续签到: 1 天

    [LV.5]常住居民I

    7

    主题

    151

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    393
    最后登录
    2022-7-25
     楼主| 发表于 2019-8-12 13:15:34 | 显示全部楼层
    时间太过久远,为了不给后面的小伙伴造成困惑,将调试通过的代码上传

    /* Transform data to QP0 ~ 11*/
    /* if fBUS very high , a short delay time need for datainput*/
    void HEF4894_Trans(unsigned long data,unsigned char data_len)
    {
      unsigned long  temp_data = 0;
      unsigned char Trans_i = 0;
      
      temp_data = data;
      
      HEF4894_OE  = 1;   /* 输出使能 */
      HEF4894_STR = 1;   /* 锁存开 */
      HEF4894_CP  = 0;   /* 时钟线0 */
      HEF4894_D   = 0;   /* 数据输出0 */  
      
      /* trans data to the register of HEF4894 */
      for(Trans_i=0;Trans_i<data_len;Trans_i++)
      {

        HEF4894_CP  = 0;
        if((temp_data & (unsigned long)0x0001) == 0)
        {
          HEF4894_D = 0;
        }
        else
        {
          HEF4894_D = 1;
        }
        HEF4894_CP  = 1;
        temp_data = temp_data>>1;

      }
      
      HEF4894_CP  = 0;    /* 时钟线0 */
      HEF4894_STR = 0;    /* 锁存关 */
    }
    最近调代码都一遍过,得意中~
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 18:12 , Processed in 0.087279 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表