LCD Nokia6610 && BMP085

xorkrus
Offline
Зарегистрирован: 22.09.2013

Здравия. Подскажите пожалуйста с выводом на дисплей информации от барометра.

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);
}

 

Библиотека Nokia6610

LiquidCrystal стандартный из Arduino 1.0.5

Файлы проекта

В то же время такой вывод срабатывает с обычным HD44780. Что я делаю не так? Подскажите пожалуйста ;)

xorkrus
Offline
Зарегистрирован: 22.09.2013

LiquidCrystal тут же вообще ни к чему... :)

И строки не строки 24,25,28,   а  20,21,24

На консоль вывести дебаг не могу - спалил :)

sva1509
Offline
Зарегистрирован: 07.12.2012

Доброго времени суток !

Вы объявили указатель buffer, но не выделили память. Попробуйте так char buffer[10]; И лучше вынесите это объявление в глобальные переменные, что бы при каждом входе в loop не выделять/освобождать стек.

И 20 строку перенесите в setup().

xorkrus
Offline
Зарегистрирован: 22.09.2013

Спасибо, это действительно помогло.