LCD дисплей

Sergei8449
Offline
Зарегистрирован: 28.05.2020

#include <Wire.h> 

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
 
#include <PinChangeInt.h>
 
int Pin1=7;
volatile int rc = 0;
int rpm = 0; //обороты
unsigned long ls = 0;
int R=0;
 
void setup()
{
 lcd.init();                    
 lcd.backlight();
 
 pinMode(Pin1,INPUT);
 digitalWrite(Pin1,HIGH);
 PCintPort:: attachInterrupt(Pin1,rpm1,FALLING);
}
 
 
void loop()
 if (millis() - ls == 1000)
 {
  detachInterrupt(7);
  rpm = rc * 60;
  R=rpm; 
  rc = 0;
  ls = millis();
  PCintPort:: attachInterrupt(Pin1, rpm1, FALLING); 
 }
 
 lcd.setCursor(0, 0);
 lcd.print("RPM: "); 
 lcd.print(R); 
}
 
void rpm1()
{
 rc++;
}
Подскажите, почему R не принимает значение переменной rpm при выведении на дисплей, но при выведении R в монитор порта все работает как положено?
 
DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

аптамуш, код вставлен неправильно. 

Sergei8449
Offline
Зарегистрирован: 28.05.2020

Если lcd.print вставить внутри таймера то R все равно будет равна нулю

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

На форум код вставлен неправильно, в таком виде его никто обсуждать не будет. Вставьте код через кнопку code в новом сообщении.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Sergei8449 пишет:
Если lcd.print вставить внутри таймера то R все равно будет равна нулю

В какой строке? Это в тему правильности вставки  кода...