LCD Nokia6610 && BMP085
- Войдите на сайт для отправки комментариев
Пнд, 16/12/2013 - 22:02
Здравия. Подскажите пожалуйста с выводом на дисплей информации от барометра.
LCD работает, показывает текст первой части, но не показывает вторую - давление и температуру.
"Температуру" показывает, если закомментировать строки 24,25,28.
#include <avr/io.h> // Библиотека ввода-вывода
#include <util/delay.h> // Библиотека задержек
#include "Nokia6610_lcd_lib.c" // Подключаем драйвер LCD Nokia6610 ( ONLY PCF8833 )
#include <avr/pgmspace.h>
#include <Wire.h>
#include <BMP085.h> //Библиотека датчика давления
#include "itoc.h"
BMP085 tempPress(0x77);
void setup()
{
nlcd_Init();
nlcd_Text(">MEGA BAROMETER<",10,3,WHITE,BLACK);
nlcd_Text("< Pressure >",30,20,WHITE,BLACK);
nlcd_Text("mm Pt. Ct",50,80,WHITE,BLACK);
nlcd_Text("< Temperature >",70,7,WHITE,BLACK);
nlcd_Text("C",90,80,WHITE,BLACK);
}
void loop()
{
tempPress.begin();
tempPress.readValues();
long pressure;
char* buffer;
pressure = tempPress.getPressure();
itoa(pressure, buffer, 10);
nlcd_Text(buffer,10,3,GREEN,BLACK);
nlcd_Text("+25.8",90,40,WHITE,BLACK);
delay(3000);
}
LiquidCrystal стандартный из Arduino 1.0.5
В то же время такой вывод срабатывает с обычным HD44780. Что я делаю не так? Подскажите пожалуйста ;)
LiquidCrystal тут же вообще ни к чему... :)
И строки не строки 24,25,28, а 20,21,24
На консоль вывести дебаг не могу - спалил :)
Доброго времени суток !
Вы объявили указатель buffer, но не выделили память. Попробуйте так char buffer[10]; И лучше вынесите это объявление в глобальные переменные, что бы при каждом входе в loop не выделять/освобождать стек.
И 20 строку перенесите в setup().
Спасибо, это действительно помогло.