Страница 1 из 1

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

Добавлено: Пт июн 14, 2013 09:33:54
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 вместо цифр показывает различные символы и знаки.
Прошу ткнуть носом в мою ошибку

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

Добавлено: Пт июн 14, 2013 10:18:08
andrej
TimerValue привести к строке? Не?

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

Добавлено: Пт июн 14, 2013 22:57:35
lakec
andrej,
Вы бы не могли показать на примере кода? Си изучаю недавно и еще не освоил все, но термометр нужен срочно.
Благодарю.

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

Добавлено: Сб июн 15, 2013 01:20:26
shads
Термометр для улицы и дома я уже намулевал: http://asis-kbr.ru/forum/viewtopic.php?f=11&t=126
теперь тоже в планах прикрутить дисплейчик от NOKIA, если не затянется это действо, то поделюсь.....

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

Добавлено: Сб июн 15, 2013 05:48:54
andrej

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

Добавлено: Сб июн 15, 2013 10:16:57
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:

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

Добавлено: Сб июн 15, 2013 10:56:39
andrej
посмотри там же блог этого автора. у него для целых чисел есть более простые алгоритмы.

з.ы. чем avr-gcc не кошерна?

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

Добавлено: Сб июн 15, 2013 17:37:04
lakec
посмотри там же блог этого автора. у него для целых чисел есть более простые алгоритмы
Это на chipenable?
Просто я не вдуплю почему

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

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

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

Добавлено: Вт июн 18, 2013 08:40:09
andrej
lakec писал(а):Это на chipenable?
Просто я не вдуплю почему
нет. это http://we.easyelectronics.ru/Soft/preob ... hisla.html
lakec писал(а):Буду благодарен если скинете ссылку на сайт где разжевана работа с Winavr на примерах.
С железками ковыряюсь только в качестве хобби, на работе завал, времени не хватает
http://easyelectronics.ru/category/avr-uchebnyj-kurs

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

Добавлено: Вт июн 18, 2013 09:21:48
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