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

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

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

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

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

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

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

 
Опции темы

CodeVisionAVR начинающим с нуля

Непрочитано 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.RUN
 
Регистрация: 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
Сообщений: 197
Сказал спасибо: 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
Сообщений: 197
Сказал спасибо: 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.RUN
 
Регистрация: 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
Сообщений: 197
Сказал спасибо: 14
Сказали Спасибо 27 раз(а) в 20 сообщении(ях)
ish0 на пути к лучшему
По умолчанию Re: CodeVisionAVR начинающим с нуля

Прицепите весь текст программы.
ish0 вне форума  
Непрочитано 05.03.2010, 14:53  
nsl2004
Почётный гражданин KAZUS.RUN
 
Регистрация: 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, время: 12:17.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.