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.

[参考译文] Compiler/LMT01:不会在 Arduino Uno 中运行代码

Guru**** 2618835 points

Other Parts Discussed in Thread: LMT01

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/678390/compiler-lmt01-will-not-run-code-in-arduino-uno

器件型号:LMT01

工具/软件:TI C/C++编译器

这是代码、它们都经过了适当的编译和上传。  1602A 液晶显示屏没有显示任何生命体征。
我以前没有使用过它、因此我不知道它是否正常工作。
当它不起作用时、我尝试添加行 Serial.print (pulseCount);以检查中断例程是否起作用。  但没有结果,我什么都没有。  现在、我将会满意地看到它可以在串行打印寄存器中打印。  


该电路也包括在内(可能不包括在内) 、我有一个示波器- LMT01在10uec 时输出1.6 V/0.6伏、并且大约是正确的 脉冲数。 @ 25 C 、它将馈入1.1V 比较器。  该电路是 Brandon Fisher 的标准电路。
------------------------------
#include
//声明 RS、E、D4、D5、D6、 D7.
LiquidCrystal LCD (3、5、6、9、10、11);

volatile int pulseCount = 0;
浮点温度= 0;
INT HOLD = 0;  

void setup()  

 //初始化1602 LCD 显示屏
 lcd.begin(16、2);
 //打印脉冲计数标签
 lcd.setCursor(0,0);
 lcd.write ("脉冲:");
 //打印温度标签
 lcd.setCursor(0,1);
 lcd.write ("TEMP (C):");
  
 //设置 ACSR 寄存器,初始化比较器

 /*      ACSR 位描述
 *   
 ACD -清除 ACD 以启用模拟比较器
 ACBG -将 ACBG 设置为1以使用内部1.1V 基准
 ACO -清除 ACIO (将被忽略-只读)
 ACI -通过写入1复位模拟中断标志
 ACIE -将 ACIE 置位以启用比较器中断
 ACIC -清除 ACIC、与定时器/计数器无连接
 ACIS1 -将 ACIS1置位以在下降沿触发中断
 ACIS0 -清除 ACIS0以在下降沿触发中断
 *
 ACSR = B01011010;  //根据上面的位描述进行设置


void loop()  

 //如果尚未计算任何脉冲,请勿再次进入循环。  
 if (pulseCount!= 0)
 {
  //等待计数完成
  while (pulseCount!= HOLD)
  {
   HOLD = pulseCount;
   延迟(1);
  }
  
  //将脉冲计数打印到 LCD
  lcd.setCursor(9,0);
  lcd.print (pulseCount);
   serial.print (pulseCount);
   
  //将温度打印到 LCD
  温度= 0.0625 *脉冲计数- 50;
  lcd.setCursor(9,1);
  lcd.print (temperature);
  
   
  //为下一个循环重置 pulseCount
  pulseCount = 0;
 }
 延迟(2);



//中断服务例程,对脉冲进行计数
ISR (analog_COMP_vect)  

 //递增脉冲计数
 pulseCount += 1;
 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Donald、

    您在帖子中标记了"TI C/C++编译器"。 您是否使用 Arduino IDE 进行编译?

    请进行一些完整性检查、以查看 Arduino 是否与 LCD 配合使用。 下载另一个简单的 Arduino 工作示例
    并测试 LCD 是否正常工作。

    要调试比较器、请删除所有 LDC 代码并使用串行终端
    调试。 如果比较器中断似乎不起作用、请在网上找到另一个 Arduino 比较器示例并测试该示例
    如果您得到不同的响应。

    仔细检查您的电路以匹配 LMT01示例电路。

    调试的技巧是一次将问题隔离为一个问题、直到找到根本原因。

    开尔文