Подключение Lcd Nokia 3310

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Открыл глаза
Сообщения: 78
Зарегистрирован: Вт мар 12, 2013 09:13:16

Сообщение lakec »

Здравствуйте. Задумал собрать термометр с выводом комнатной и уличной температуры на дисплее Nokia 3310. взял библиотеку с сайта http://chipenable.ru/index.php/files-codevision.html. написал код для проверки дисплея

Код: Выделить всё

#include <mega8.h>
#include "driver_nokia3310.h"

   volatile unsigned char* TimerValue = 0;
void main( void )
{

 LCDInit();
 LCDClear(); 

 while(1){
 TimerValue++;

  LCDStr(0, 0, TimerValue); 
  LCDStr(0, 1, "0123456789");
  LCDStr(0, 2, "lcd Nokia 3310");
  LCDStr(0, 3, " test   ");  
  LCDStr(0, 4, "        test     ");
  LCDStr(0, 5, "||||||||||||||");
 delay_ms(1000); 
 }
}
Проблема в том, что статичные данные отображаются нормально, а TimerValue вместо цифр показывает различные символы и знаки.
Прошу ткнуть носом в мою ошибку
Реклама
Нашел транзистор. Понюхал.
Сообщения: 186
Зарегистрирован: Пн авг 18, 2008 13:13:29

Сообщение andrej »

TimerValue привести к строке? Не?
Реклама
Открыл глаза
Сообщения: 78
Зарегистрирован: Вт мар 12, 2013 09:13:16

Сообщение lakec »

andrej,
Вы бы не могли показать на примере кода? Си изучаю недавно и еще не освоил все, но термометр нужен срочно.
Благодарю.
Опытный кот
Аватара пользователя
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Сообщение shads »

Термометр для улицы и дома я уже намулевал: http://asis-kbr.ru/forum/viewtopic.php?f=11&t=126
теперь тоже в планах прикрутить дисплейчик от NOKIA, если не затянется это действо, то поделюсь.....
Реклама
Эиком - электронные компоненты и радиодетали
Нашел транзистор. Понюхал.
Сообщения: 186
Зарегистрирован: Пн авг 18, 2008 13:13:29

Сообщение andrej »

Реклама
Открыл глаза
Сообщения: 78
Зарегистрирован: Вт мар 12, 2013 09:13:16

Сообщение lakec »

Подключил stdio.h и получил

Код: Выделить всё

---------------------------
Error
---------------------------
The code size limit of the Evaluation version has been exceeded.
Please purchase a commercial license.
---------------------------
OK   
---------------------------
:cry: Кто-нибудь видел cvavr с кряком?
На торрентах лежит CodeVision AVR 2.05.0, а для работы с stdio нужна версия от 2.05.9. Гугл и яндех ничего не выдают :?
Или собирать 200 евр на лицуху? :shock:
Реклама
Нашел транзистор. Понюхал.
Сообщения: 186
Зарегистрирован: Пн авг 18, 2008 13:13:29

Сообщение andrej »

посмотри там же блог этого автора. у него для целых чисел есть более простые алгоритмы.

з.ы. чем avr-gcc не кошерна?
Открыл глаза
Сообщения: 78
Зарегистрирован: Вт мар 12, 2013 09:13:16

Сообщение lakec »

посмотри там же блог этого автора. у него для целых чисел есть более простые алгоритмы
Это на chipenable?
Просто я не вдуплю почему

Код: Выделить всё

TimerValue++;
  LCDStr(0, 0, TimerValue);
не работает. этот же код на семисегментнике нормально работает.
з.ы. чем avr-gcc не кошерна?
Просто начинал с CodeVision. Atmel Studio 6.1 и Winavr тоже стоят на компе. Если с Atmel Studio кое как разобрался, то Winavr для меня вообще темный лес :) Буду благодарен если скинете ссылку на сайт где разжевана работа с Winavr на примерах.
С железками ковыряюсь только в качестве хобби, на работе завал, времени не хватает :)
Нашел транзистор. Понюхал.
Сообщения: 186
Зарегистрирован: Пн авг 18, 2008 13:13:29

Сообщение andrej »

lakec писал(а):Это на chipenable?
Просто я не вдуплю почему
нет. это http://we.easyelectronics.ru/Soft/preob ... hisla.html
lakec писал(а):Буду благодарен если скинете ссылку на сайт где разжевана работа с Winavr на примерах.
С железками ковыряюсь только в качестве хобби, на работе завал, времени не хватает
http://easyelectronics.ru/category/avr-uchebnyj-kurs
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Сообщение a_skr »

lakec писал(а):Просто я не вдуплю почему

Код: Выделить всё

TimerValue++;
  LCDStr(0, 0, TimerValue);
не работает. этот же код на семисегментнике нормально работает.
потому что написана чушь:

Код: Выделить всё

volatile unsigned char* TimerValue = 0;
...
while(1){
TimerValue++;
...
TimerValue - указатель на строку, инициализирован нулевым адресом. что у Вас лежит по нулевому адресу в ОЗУ? потом еще и инкрементируется... конечно будут какие-то символы. если нужна целочисленная переменная - объявите unsigned char или short или long... преобразовать с строке можно по-всякому, cм., например,
void itoa(int n, char *str) из stdlib
Ответить

Вернуться в «Периферия»