Вопрос про вывод на LCD
- Войдите на сайт для отправки комментариев
Чт, 10/09/2015 - 15:56
Вот код. Подскажите, почему информация выводится только на первую строку поочередно, а не так как задумано на все 4 строки?
#include <LiquidCrystal.h>
LiquidCrystal lcd(3,5,7,9,10,11);
float ADC0=0;
float value;
float DC;
#include <util/delay.h>
volatile unsigned int tachBuf;
unsigned long tachValue;
ISR(TIMER1_CAPT_vect)
{
TCNT1 = 0;
tachBuf = ICR1+2;
}
//********************************************************************
void setup()
{
pinMode(8, INPUT); //Вход для импульсов спидометра
pinMode(6, OUTPUT);//выход ШИМ
TCCR0B = TCCR0B & 0b11111000 | 4;//частота ШИМ 243 Гц
analogWrite(6, 128); //Запустить ШИМ
digitalWrite(8, HIGH); // включить подтяжку входа
Serial.begin(115200);
TIM_Init();//инициализация таймера
_delay_ms(200);
}
//********************************************************************
void loop()
{
cli();
tachValue = 250000/tachBuf;
analogWrite(6, constrain(map(tachValue, 0, 150, 0, 255), 0, 255)); //Запустить ШИМ на 6 выводе (на 9 работать не будет)
tachBuf=64000;
sei();
_delay_ms(200);
value=analogRead(ADC0);
DC=value / 200;
lcd.setCursor(0,0);
lcd.print("Frequency = ");
lcd.print(tachValue,DEC);
lcd.print(" ");
delay(100);
lcd.setCursor(0,1);
lcd.print("DC = ");
lcd.print(DC);
lcd.print(" volt ");
delay(100);
lcd.setCursor(0,2);
lcd.print("11111111111 ");
delay(100);
lcd.setCursor(0,3);
lcd.print("22222222222");
delay(100);
}
//********************************************************************
void TIM_Init(void)
{
TIMSK1=(1<<ICIE1);
TCCR1A=(0<<COM1A1)|(0<<COM1A0)|(0<<WGM11)|(0<<WGM10);
TCCR1B=(1<<ICNC1)|(1<<ICES1)|(0<<WGM13)|(0<<WGM12)|(0<<CS12)|(1<<CS11)|(1<<CS10);
TCNT1 = 0;
}
voidsetup()Спасибо. Я узнал на аватарке Модеста. Уважаю юмор.
Не за что. Респект Вам, Модеста нынче не всякий узнает.