Страница 85 из 421

Re: CodeVision AVR в вопросах и ответах

Добавлено: Сб авг 14, 2010 15:33:55
ARV
sachok писал(а):

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

    
int min = 0, sec = 0, msec = 0;
sprintf(buffer, "%02d:%02d:%02d", min, sec, msec); // вывод в поле минимум 2 символа, выравнивание по правому краю
lcd_puts(buffer);
Должно вывести "00:00:00", а ничего не получается, ничего не выводит. Версия компилятора 2.03.4 Кто то сталкивался с таким?
что из себя представляет buffer ?

Re: CodeVision AVR в вопросах и ответах

Добавлено: Сб авг 14, 2010 16:07:40
sachok

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

unsigned char buffer [33];

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вс авг 15, 2010 21:06:53
sachok
В версии 2.04.8b всё работает. Видимо что то с библиотекой в старой версии.

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 16, 2010 06:46:23
ValBag
sachok писал(а):В версии 2.04.8b всё работает.
А таблетка на эту версию имеется?

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 16, 2010 16:32:39
hotstay
Доброе время суток.
Хочу "разместить" несколько датчиков DS1820 на Atmega8... Предварительно пометив их к примеру разными цветами.
(temp[0]=ds1820_temperature_10(&rom_codes[0][0])/10;)
Подскажите пожалуйста как мне считать температуру с датчика с определенным ROM кодом(серийным номером).
Либо киньте ссылку где про это можно прочесть по подробней.

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вт авг 17, 2010 15:14:11
ARV
об этом можно прочитать в даташите на датчик - самое полезное.
в CVAVR есть примеры для решения этой задачи.

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вт авг 17, 2010 18:08:57
Saadov
hotstay писал(а):Доброе время суток.
Хочу "разместить" несколько датчиков DS1820 на Atmega8... Предварительно пометив их к примеру разными цветами.
(temp[0]=ds1820_temperature_10(&rom_codes[0][0])/10;)
Подскажите пожалуйста как мне считать температуру с датчика с определенным ROM кодом(серийным номером).
Либо киньте ссылку где про это можно прочесть по подробней.
Здесь и почитать HELP CVAVR
Library Functions Reference
|
1 Wire Protocol Functions
|
Maxim/Dallas Semiconductor DS1820/DS18S20 Temperature Sensors Functions
Подскажите пожалуйста как мне считать температуру с датчика с определенным ROM кодом(серийным номером)
Написано
int ds1820_temperature_10(unsigned char *addr)


this function returns the temperature of the DS1820/DS18S20 sensor with the ROM code stored in an array of 8 bytes located at address addr
Что в переводе
int ds1820_temperature_10(unsigned char *addr)

эта функция возвращает температуру датчика DS1820/DS18S20 с кодом ROM, сохраненным в массиве 8 байтов, расположенных в адресе addr
Далее в примере кода

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

/* maximum number of DS1820/DS18S20 connected to the bus */
#define MAX_DEVICES 8


/* DS1820/DS18S20 devices ROM code storage area,
   9 bytes are used for each device
   (see the w1_search function description),
   but only the first 8 bytes contain the ROM code
   and CRC */
unsigned char rom_codes[MAX_DEVICES][9];


/* detect how many DS1820/DS18S20 devices
   are connected to the bus and
   store their ROM codes in the rom_codes array */
devices=w1_search(0xf0,rom_codes);

for (i=0;i<devices;)
          {
          temp=ds1820_temperature_10(&rom_codes[i][0]);
          printf("t%-u=%-i.%-u\xf8C\n\r",++i,temp/10,
          abs(temp%10));         
          };

Вот и ответ на ваш вопрос...

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 23, 2010 09:50:59
hotstay
Saadov писал(а): Вот и ответ на ваш вопрос...
Доброе время суток.
Я можетбыть не правильно объяснил...
У меня есть к примеру два датчика DS18*, у одного заводской номер (ROM) 22222 у друго го 33333, как мне после инициализации считать температуру с датчика 22222. а не из массива "rom_codes" ... переменная "i" :dont_know:
Для Proteus это к примеру C8C531 и C8C530.

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 23, 2010 11:01:03
ssvd
Помогите! Где я парю!
есть прога управления нагревателем, пытаюсь выводить на 3х символьный индикатор, а он вообще молчит!
Индикатор BT-M402RD.
Может я порт не правильно выставил, но вроде как все верно!
к PORTA подключены общие, а PORTB сегменты.

вот код

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 23, 2010 11:42:59
Saadov
hotstay писал(а):
Saadov писал(а): Вот и ответ на ваш вопрос...
Доброе время суток.
Я можетбыть не правильно объяснил...
У меня есть к примеру два датчика DS18*, у одного заводской номер (ROM) 22222 у друго го 33333, как мне после инициализации считать температуру с датчика 22222. а не из массива "rom_codes" ... переменная "i" :dont_know:
Для Proteus это к примеру C8C531 и C8C530.
В моем сообщение есть ответ на ваш вопрос. Сначала считываем ROM, заносим его в массив, а потом передаем нужный по адресу. Если вы знаете код, присвойте переменной свой код и дайте ей порядковый номер. И функции будете передавать код в виде

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

temp[порядковый номер]=ds1820_temperature_10(&rom_codes[порядковый номер][код датчика]);
Считали коды устройств на шине, сравнили с нужным вам кодом и передали функции для считывания показаний температуры...

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 23, 2010 17:45:39
ValBag
ssvd писал(а):к PORTA подключены общие
А что, вы выставили фьюз на использование РА2 как вывод порта и используете внутренний генератор?

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 23, 2010 18:06:44
ssvd
ValBag писал(а):
ssvd писал(а):к PORTA подключены общие
А что, вы выставили фьюз на использование РА2 как вывод порта и используете внутренний генератор?
ага, я использую внутренний генератор...

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 23, 2010 18:10:44
ValBag
ssvd писал(а):ага, я использую внутренний генератор...
Это разряды РА0, РА1. А как быть с РА2 - по умолчанию RESET. Его тоже "переделали"?

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 23, 2010 18:14:33
ssvd
ValBag писал(а):
ssvd писал(а):ага, я использую внутренний генератор...
Это разряды РА0, РА1. А как быть с РА2 - по умолчанию RESET. Его тоже "переделали"?
вот тут то я и лохонулся... ))))))
спасибо!!! завтра на другой порт переделаю!

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вт авг 24, 2010 08:08:59
ssvd
все, индикатор заработал!
теперь следующая и основная, в память микрухи не входит весь код! мне надо запихать туда два условия! подскажите как можно оптимизировать код, что бы они вошли...
В прикрепленном файле комментированные две строчки, вот они и не помещаются..
посмотрите пожалуйста!

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вт авг 24, 2010 13:14:24
ValBag
ssvd, ваш исходник после компиляции 1954 байт.

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вт авг 24, 2010 13:41:55
ssvd
ValBag писал(а):ssvd, ваш исходник после компиляции 1954 байт.
с раскомментированными строчками? странно! хотя я уже немного оптимизировал, теперь осталось вместить одну строчку! )))
вот файлик. сейчас все раскомментирую!

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вт авг 24, 2010 13:55:28
ssvd
ssvd писал(а):
ValBag писал(а):ssvd, ваш исходник после компиляции 1954 байт.
с раскомментированными строчками? странно! хотя я уже немного оптимизировал, теперь осталось вместить одну строчку! )))
вот файлик. сейчас все раскомментирую!
все, оптимизировал, спасибо! ))))

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вт авг 24, 2010 14:23:06
ValBag
ssvd писал(а):все, оптимизировал, спасибо!
Ну и ладушки. К сведению: в тексте проги есть индексы более, чем определены в массиве.
char bCharacter[11];

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вт авг 24, 2010 14:41:12
ssvd
ValBag писал(а):
ssvd писал(а):все, оптимизировал, спасибо!
Ну и ладушки. К сведению: в тексте проги есть индексы более, чем определены в массиве.
char bCharacter[11];
ага, уже поправил! )))