极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9754|回复: 0

请教,HCTL-2020解码芯片的使用

[复制链接]
发表于 2013-8-20 09:20:54 | 显示全部楼层 |阅读模式
最近项目中用到Arduino去读取安装在电机背后的光电编码器数值,在低速的时候还好搞定,一旦电机高速运转时,Arduino就来不及用中断去处理事务。于是想到用HCTL-2020来解码的正交信号,但是我一直无法取到值,求指点。

另外想知道Arduino用什么方法可以判断2020的芯片好坏,以及是否正常工作。

还有一点,是我写的代码里,发送时钟信号的设定是否正确。2020用的是14MHz的时钟频率。

哦,对了,忘了说了,上面这个程序,输出值为0,编码器转动时没反应,还是输出0,给我的感觉好像就是这个芯片完全没有起作用,没有任何输出值。

我曾经考虑过,如果这个方案实在走不通的话,就专门用一块328去做解码工作,然后用类似的方式将解码结果输入给主芯片,不知道这种方案可行否,效率和这种专用的芯片相比如何?求指点。

代码如下:

  1. const int Data_Pins[8] = {30,33,35,37,43,45,47,49};
  2. int SEL_Pin = 34; //set SEL pin
  3. int OE_Pin = 36;  //set OE pin
  4. int RST_Pin = 42;
  5. int CLK_Pin = 32;

  6. void setup() {
  7.   pinMode (SEL_Pin, OUTPUT);
  8.   pinMode (OE_Pin, OUTPUT);
  9.   pinMode (RST_Pin, OUTPUT);

  10.   // Reset the chip
  11.   digitalWrite(RST_Pin, LOW);
  12.   delay(100);
  13.   digitalWrite(RST_Pin, HIGH);

  14.   pinMode (CLK_Pin, OUTPUT);
  15.   TCCR1A = B01000011; // Fast PWM change at OCR1A
  16.   TCCR1B = B11001;  // System clock
  17.   OCR1A = 0; // 8 MHz

  18. for (int i=0; i<8; i++) {
  19.     pinMode(Data_Pins[i], INPUT);
  20. }
  21. pinMode(38, INPUT);

  22.   Serial.begin (9600);
  23.   Serial.print ("Start");
  24. }

  25. void loop() {
  26.   unsigned long value = 0;

  27.   // Read the high 8 bits
  28.   digitalWrite(OE_Pin, LOW); // OE = 0
  29.   digitalWrite(SEL_Pin, LOW); // SEL = 0
  30.   delay(100);

  31.   for (int i=0; i<8; i++){
  32.     value = (value << 1) | digitalRead(Data_Pins[i]);
  33.   }

  34.   // Read the low 8 bits
  35.   digitalWrite(SEL_Pin, HIGH); // SEL = 1
  36.   delay(100);

  37.   for (int i=0; i<8; i++){
  38.     value = (value << 1) | digitalRead(Data_Pins[i]);
  39.   }

  40.   digitalWrite(OE_Pin, HIGH); // OE = 1

  41.   Serial.print(digitalRead(38));
  42.   //Serial.print(value, BIN);
  43.   Serial.print(",");
  44.   Serial.println(value, DEC);
  45.   delay(1000);  // Keep the data rate reasonable
  46. }
复制代码

回复

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-8 21:03 , Processed in 0.034665 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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