Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 25.02.2010, 16:03  
ValBag
Прописка
 
Аватар для ValBag
 
Регистрация: 17.11.2007
Сообщений: 112
Сказал спасибо: 19
Сказали Спасибо 14 раз(а) в 9 сообщении(ях)
ValBag на пути к лучшему
По умолчанию Re: CodeVisionAVR начинающим с нуля

Сообщение от us4ilq Посмотреть сообщение
us4ilq(сабака)gmail.com
CVAVR ушло.
Реклама:
ValBag вне форума  
Непрочитано 25.02.2010, 16:07  
us4ilq
Частый гость
 
Регистрация: 20.01.2008
Сообщений: 31
Сказал спасибо: 5
Сказали Спасибо 17 раз(а) в 7 сообщении(ях)
us4ilq на пути к лучшему
По умолчанию Re: CodeVisionAVR начинающим с нуля

СПАСИБО

Уже забрал.
us4ilq вне форума  
Непрочитано 28.02.2010, 09:01  
ValBag
Прописка
 
Аватар для ValBag
 
Регистрация: 17.11.2007
Сообщений: 112
Сказал спасибо: 19
Сказали Спасибо 14 раз(а) в 9 сообщении(ях)
ValBag на пути к лучшему
По умолчанию Re: CodeVisionAVR начинающим с нуля

avr123-nm-ru, посмотрите плз письмо.

...уже не надо

Последний раз редактировалось ValBag; 04.03.2010 в 14:58.
ValBag вне форума  
Непрочитано 05.03.2010, 12:17  
nsl2004
Почётный гражданин KAZUS.RU
 
Регистрация: 13.04.2009
Сообщений: 5,611
Сказал спасибо: 1,070
Сказали Спасибо 1,273 раз(а) в 884 сообщении(ях)
nsl2004 на пути к лучшему
По умолчанию Re: CodeVisionAVR начинающим с нуля

Уважаемые друзья. Нужна небольшая помощь. Используя помощь в CV испытываю девайсы 1-wire. К сожалению не выходит полностью добится использовать все возможности датчика DS18B20. Стаж в програмировании на С у меня небльшой. Порядка месяца, т.ч возникают некоторые трудности.
1. Я откровенно не понял как мне вывести температуру датчика с десятвми долями градуса
Разрядность выставил самую высокую 12. Думаю что накосил с объявлением переменных и собственно с самим выводом printf. Либо надо лезть в файл DS18B20.h или dll там есть одноименный. Короче надо чтобы подсказали в чем фишка.
2. Мне непонятно с какой стороны подойти чтобы посмотреть статус - на какую разрядность включен данный датчик, т.е грубо говоря посмотреть состояние регистров 3-4 где хранятся алармы. И какое они имеют значение. В Протеусе я вижу что EEPROM хранит и изменяет данные которые я туда записываю об алармах. но вот считать их програмно и вывести для контроля я что то не соображу как.
Если мне кто то поможет решить эти вопросы буду благодарен.
На прилагаемом скрине видно что я сумел вывести с датчика

Третий девайс не температурный датчик, я его воткнул для контроля поэтому темп 9999. Это все нормально.
Код прилагаю целиком и вот кусок отвечающий за вывод
Код:
for (i=0;i‹devices;i++)
           { 
            temp[i]=ds18b20_temperature(&rom_codes[i][0]);
            delay_ms(750);
            printf("DEVICE #%-u TEMP Value:", i+1);
            //printf("\n\r");
            printf("t=%i.%d\xf8C\n\r",temp[i]);
По поводу развернувшейся дискуссии - полностью поддерживаю, что лучше конечно придерживатся полного написания кода , без особенных библиотек CV. Но ... это на первоначальном этапе нереально ИМХО. Язык С откровенно сложный, даже примеры мало помогают, тк одно и тоже можно написать десятью способами и нет никакой гарантии что все они окажутся правильными - это на взгляд дилетанта
Миниатюры:
Нажмите на изображение для увеличения
Название: Scrin1.jpg
Просмотров: 572
Размер:	214.1 Кб
ID:	5321  
Вложения:
Тип файла: txt NEWBEZLCD.txt (5.0 Кб, 107 просмотров)
nsl2004 вне форума  
Непрочитано 05.03.2010, 12:57  
ish0
Прописка
 
Регистрация: 09.08.2006
Сообщений: 198
Сказал спасибо: 14
Сказали Спасибо 27 раз(а) в 20 сообщении(ях)
ish0 на пути к лучшему
По умолчанию Re: CodeVisionAVR начинающим с нуля

Вы определили массив temp как массив целых 16-бит чисел:
int temp [MAX_DEVICES];//объявлен целочисленный массив для хранения температур

Ну, и что ж тогда удивляться: функция ds18b20_temperature(..) честно выдает число с долями градусов, компилятор честно отбрасывает дробную часть, т.к. результат нужно сохранить в целочисленном массиве.

P.S. Задержка - delay_ms(750); - не нужна, т.к. она уже есть в функции ds18b20_temperature().
ish0 вне форума  
Сказали "Спасибо" ish0
nsl2004 (05.03.2010)
Непрочитано 05.03.2010, 13:30  
ish0
Прописка
 
Регистрация: 09.08.2006
Сообщений: 198
Сказал спасибо: 14
Сказали Спасибо 27 раз(а) в 20 сообщении(ях)
ish0 на пути к лучшему
По умолчанию Re: CodeVisionAVR начинающим с нуля

Сообщение от nsl2004 Посмотреть сообщение
2. Мне непонятно с какой стороны подойти чтобы посмотреть статус - на какую разрядность включен данный датчик, т.е грубо говоря посмотреть состояние регистров 3-4 где хранятся алармы. И какое они имеют значение.
Если Вы читали ДШ на DS18B20, то видели соответствие 9-ти байтовой структуры "stratch pad" с параметрами датчика. Функция ds18b20_temperature((&rom_codes[i][0]); не только возвращает измеренную температуру, но и считывает с датчика остальные 7 байт. Так, что rom_codes[i].temp_high - значение регистра 3, rom_codes[i].temp_low - значение регистра 4 и т.д. - смотрите описание полей в файле заголовка ds18b20.h.

Полезно, помимо прогона приведеннго в help примера, посмотреть файлы .h и .lib соответственно.
ish0 вне форума  
Непрочитано 05.03.2010, 13:51  
mironov
Вид на жительство
 
Регистрация: 07.03.2005
Сообщений: 300
Сказал спасибо: 13
Сказали Спасибо 117 раз(а) в 62 сообщении(ях)
mironov на пути к лучшему
По умолчанию Re: CodeVisionAVR начинающим с нуля

А обучение-то где?. Примеры, приемы работы. Одни споры о компиляторах типа - Чем это дерьмо рекламировать, взгляни лучше на…
Так и дальше будет? Или кто то решиться обучать без 99% рекламы, как AVR123.
mironov вне форума  
Непрочитано 05.03.2010, 14:10  
nsl2004
Почётный гражданин KAZUS.RU
 
Регистрация: 13.04.2009
Сообщений: 5,611
Сказал спасибо: 1,070
Сказали Спасибо 1,273 раз(а) в 884 сообщении(ях)
nsl2004 на пути к лучшему
По умолчанию Re: CodeVisionAVR начинающим с нуля

Сообщение от ish0 Посмотреть сообщение
Вы определили массив temp как массив целых 16-бит чисел:
int temp [MAX_DEVICES];//объявлен целочисленный массив для хранения температур

Ну, и что ж тогда удивляться: функция ds18b20_temperature(..) честно выдает число с долями градусов, компилятор честно отбрасывает дробную часть, т.к. результат нужно сохранить в целочисленном массиве.
Значит надо заменить объявление переменной на float, double? Меня запутали два регистра, я подумал что один за целую часть второй за дробную. Хотя даташет прочитали не русском и для верности на английском. Но понял совсем наоборот.
Итак объявляю
float temp [MAX_DEVICES];
...
printf("t=%f.%d\xf8C\n\r",temp[i]); - температура перестала определятся и выводится пробел.0
printf("t=%i.%d\xf8C\n\r",temp[i]); - выводит 0.0
Невыходит пока , что то еще не учтено...
nsl2004 вне форума  
Непрочитано 05.03.2010, 14:28  
ish0
Прописка
 
Регистрация: 09.08.2006
Сообщений: 198
Сказал спасибо: 14
Сказали Спасибо 27 раз(а) в 20 сообщении(ях)
ish0 на пути к лучшему
По умолчанию Re: CodeVisionAVR начинающим с нуля

Прицепите весь текст программы.
ish0 вне форума  
Непрочитано 05.03.2010, 14:53  
nsl2004
Почётный гражданин KAZUS.RU
 
Регистрация: 13.04.2009
Сообщений: 5,611
Сказал спасибо: 1,070
Сказали Спасибо 1,273 раз(а) в 884 сообщении(ях)
nsl2004 на пути к лучшему
По умолчанию Re: CodeVisionAVR начинающим с нуля

Сообщение от ish0 Посмотреть сообщение
Так, что rom_codes[i].temp_high - значение регистра 3, rom_codes[i].temp_low - значение регистра 4 и т.д. - смотрите описание полей в файле заголовка ds18b20.h.
Посмотрел - все ясно с полями. Не ясно с конструкцией строк.
Вот это
Код:
temp1[i]= rom_codes[i].temp_low
temp[i]=ds18b20_temperature(&rom_codes[i].temp_low); 
Error: M:\****\MK8DS18B20\NEWBEZLCD.c(112): the first argument of the '.' operator must be of 'struct' or 'union' type 
printf("t=%i.%d\xf8C\n\r",temp_low);
 и даже на это printf("t=%i.%d\xf8C\n\r",temp[i][2]);
и ещё по всякому ругается компилятор. Дальше не идет. Еще десяток вариантов перепробовал неполучилось. Как всетаки правильно?
nsl2004 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ARM начинающим с нуля - KEIL с лекарсвом, методички, книги avr123-nm-ru Микроконтроллеры, АЦП, память и т.д 22 31.03.2010 00:24
CodeVisionAVR 1.25 and ds1992 Serj1987 Микроконтроллеры, АЦП, память и т.д 1 25.11.2009 14:11


Часовой пояс GMT +4, время: 01:44.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot