BASCOM AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

WildCat, Ваше желание разобраться во всем достойно уважения. Есть конечно готовые исходники, но все же стоит разобраться хотя бы для своих будущих конструкций. Не думаю что Вас устроит готовый код под Вашу задачу. Интереснее же самому разобраться. Тем более что там ничего сложного нет. :) Посмотрите описание датчика на русском, особенно на младший байт (LS Byte), младшие 4 бита которого содержат десятые. И Вы все поймете. Даташит DS18B20 на русском.

А там уже выдергивайте эти десятые как хотите, отдельно или в одну переменную, это уже как Вам удобнее...
Последний раз редактировалось edm2007 Вс май 15, 2011 15:20:35, всего редактировалось 2 раза.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

Сообщение Мурик »

edm2007 писал(а):особенно на младший байт
Там вроде не весь байт, а только младшие 4 бита отвечают за дробную часть.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Мурик, разумеется. Просто это было уже рассмотрено немного выше. Я думаю все поняли. :))

edm2007 писал(а):Я показал как в ОТДЕЛЬНУЮ переменную забрать по маске из младшего байта температуры 4 младших бита (в которых содержатся десятые).


Я исправил свое сообщение, так будет понятнее, я думаю. Спасибо, Мурик. :)
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

edm2007 писал(а):
Igor_67 писал(а):Да она (переменная) так и выводится - с десятыми! В протеусе сделай симуляцию с LCD, сам увидишь!


Игорь, Ваша переменная забирает только целые, Вы ведь сначала убрали 4 бита десятых сдвигом , и только потом забрали значение. В результате десятые будут затерты. Вы десятые убили сдвигом T = Byte0 / 16. Оно конечно выводит с запятой, но только 15,0 - 16,0 - 17,0... Или у Вас там какой-то секрет ? :)

Да какие там секреты? У меня от народа секретов нет! :))
Весь проект в архиве - смотрите! Только предупреждаю, кнопки пока не доделаны. :) Кстати, может кто посоветует, как лучше организовать опрос пяти кнопок?
Архив WinRAR.rar
(34.88 КБ) 230 скачиваний
Цапу крутить надо!!! Ку или не ку?
dhouse
Встал на лапы
Сообщения: 84
Зарегистрирован: Пт апр 16, 2010 12:30:03

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

Сообщение dhouse »

Подскажите, как вызвать в proteuse окно с исходником на Bascom. Во время пошагового прохода что-то задел мышей и появилось окно с кодом. Но теперь никак не могу его вызвать.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Я тут для одного товарища писал небольшую обучалку по симулятору совместно с баскомом. Если я Вас правильно понял, то держите: Proteus + Bascom AVR - Пошаговая отладка. Там просто simproteus.html браузером откройте, а картинки подгрузятся...
Последний раз редактировалось edm2007 Ср дек 28, 2011 19:06:22, всего редактировалось 1 раз.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
dhouse
Встал на лапы
Сообщения: 84
Зарегистрирован: Пт апр 16, 2010 12:30:03

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

Сообщение dhouse »

Спасибо! Полезная информация!
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Да на здоровье. :) Там вообще много полезного, если используется DS18B20 или DS1307 (да и вообще много чего), то можно вывесить окно этого агрегата и смотреть непосредственно что находится в регистрах того же датчика... Пользительно. :))
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Igor_67, как я понимаю там сдвинется только целая часть, не затронув дробную. Ну и обрезка Single... Интересно. :) Только вот +0,0 С / -0,0 С не очень смотрится... :)
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

edm2007 писал(а):Igor_67, как я понимаю там сдвинется только целая часть, не затронув дробную. Ну и обрезка Single... Интересно. :) Только вот +0,0 С / -0,0 С не очень смотрится... :)

Ну это можно и поправить :)) , отслеживая ту же строковую переменную Znak или используя дополнительный флаг. :) (это для минуса), а "плюс", как таковой можно вообще убрать. 8) Вот один из вариантов:

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

Do
   Debounce But5 , 0 , Knopka5 , Sub
   1wreset
   1wwrite &HCC                                             ' Выдаем команду чтения ПЗУ
   1wwrite &H44                                             ' Запуск измерения
   Waitms 750                                               ' Ждем окончания преобразования
   1wreset
   1wwrite &HCC
   1wwrite &HBE                                             ' Команда чтения ОЗУ датчика
   Byte0 = 1wread()                                         ' Читаем нулевой байт
   Byte1 = 1wread()                                         ' Читаем первый байт
   If Byte1 >= 248 Then                                     ' Проверяем на отрицательную температуру.
      Byte0 = &HFF - Byte0                                  ' 248 в десятичном - 11111000 в двоичном.
      Byte1 = &HFF - Byte1                                  ' Если температура отрицательная - вычитаем из &HFF
      Znak = "-"
   Else
      Znak = "+"
   End If
   T = Byte0 / 16
   T2 = Byte1 * 16
   T = T + T2
   If T = 0.0 And Znak = "-" Then Znak = " "
   If T = 0.0 And Znak = "+" Then Znak = " "
   Call Gettime()
   Cls
   Locate 1 , 1
   Lcd Hex(h) ; ":" ; Hex(m) ; ":" ; Hex(s) ; " " ; Znak ; T ; Chr(0) ; "C"
   'Print #1 , Hex(h) ; ":" ; Hex(m) ; ":" ; Hex(s)
   Waitms 250
Loop
Или еще проще:
If T = 0.0 Then Znak= " ", а плюс и минус ваще похрен! :))
Кстати, ни один кот за опрос кнопок так ничё и не сказал, а я ж таки задавал вопрос??? :)))
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

edm2007 писал(а):Я тут для одного товарища писал небольшую обучалку по симулятору совместно с баскомом. Если я Вас правильно понял, то держите: Proteus + Bascom AVR - Пошаговая отладка. Там просто simproteus.html браузером откройте, а картинки подгрузятся...

Миш, если не секрет, откуда "дровишки" ?(в смысле, такие подробные сведения о Proteus-e?). Может хоть сцылочку дашь? :))) Или ты с "Labcener Electronics" в корешах и они тебе русский ХЕЛП прислали??? :)) Шутка, конечно!.
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Igor_67 писал(а):Миш, если не секрет, откуда "дровишки" (в смысле, такие подробные сведения о Proteus-e?).


Игорь, да любопытство банальное. Кнопочек-то много, все потыкать надо. :)) Протеус на самом деле штука очень мощная, и возможностей в нем гораздо больше чем кажется. Просто очень давно с ним ковыряюсь, вот и накопился опыт...

А про кнопки... Так это тебе виднее как они там должны работать, я вообще на DS1307 две кнопки делал (ног больше не осталось). SET - установка часов - SET - установка минут - SET - установка числа.... Ну и все в этом духе, вобщем...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

Не-е-е, две кнопки мало и неудобно очень, поэтому будет пять! Пятая - выбор режима (установка даты/установка времени/программирование термостата/основной режим(индикация времени и температуры). Первая - инкремент любого значения в старших разрядах (например в часах - часов, в числе месяца - чисел месяца), Вторая - инкремент любого значения в старших разрядах (например в минутах - минут, в месяцах - месяцев), годы не корректируются. Третья и Четвертая - декремент тех же значений. Ну и в режиме установки термостата - два подрежима: 1 - установка верхнего предела и 2 - установка нижнего предела. Там же опрос кнопок на установку границ диапазона регулирования температуры, скажем, что 1 кнопка задает целые доли градусов, а 2 кнопка - десятые. Всяческие нововведения приветствуются! :)
Ну так как, слабо помочь нехилому проекту? Сдается мне это будет термостат с управлением по времени, т.е. проще говоря, автомат поддержания температуры в нескольких точках (до 64!!!). Все равно ведь потом все это будет всенародным достоянием... Я, как вы уже успели убедиться, альтруист. Мне наград не надо, лишь бы было народу полезно!
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Igor_67 писал(а):Не-е-е, две кнопки мало и неудобно очень, поэтому будет пять!


Ну для всяких термостатов и прочих наворотов конечно мало. :)) Я про часы-календарь на attiny2313 говорил, там ног маловато а разрядов LED 6 штук. :) И кстати вполне удобно. Вторая кнопка в главном режиме переключала на дату (дд.мм.гг) если ее удерживать. В установке - устанавливала. Не каждый же день дату и время меняешь. :))

А с Вашим проектом лично я не против повозиться в свободное время. Времени только не очень много... А так может еще кто подключится.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

Ну, так я надеюсь на вас, господа!!!???
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
kip96
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

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

Сообщение kip96 »

edm2007 писал(а):там ног маловато а разрядов LED 6 штук

Кстати, это не проблемма. Делал себе таймер на 2313, использовал четаре разряда, кварц, и шесть(реально можно восемь) кнопок, ну и выход на реле. При этом ресет сохранён. портВ- сегменты, портД -всё остальное.
ЗЫ
только Тини, и ничего кроме! :))
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Если Вас не затруднит, расскажите пожалуйста подробнее. :) Я вот что-то не сообразил. 8 на сегменты - 6 на разряды, 2 на DS1307 - 2 питания - 1 ресет = 1 вывод только свободный. Я точками жертвовал, от нужных разрядов их цеплял чтобы освободить под вторую кнопку.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
kip96
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

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

Сообщение kip96 »

edm2007 писал(а):- 6 на разряды....... 1 вывод только свободный

Вот этот свободный вывод( пусть он будет Int0) подключаешь к 6-ти разрядам через кнопки. А далле всё просто - Нажимаем кнопку подключённую к первому разряду и в прерывании проверяем-Select case rasrjad ; case1: incr H; case2: decr H , ну и т.д.
При этом, конечно, нужно держать кнопку нажатой что-бы проскочили все разряды :)) , надеюсь это не проблема.
А если серьёзно, то для защиты нужно кнопки через диоды включать, чтоб плюс на минус не лёг. Дома проект в протеусе есть, если не понял вечером выложу.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Аватара пользователя
Gordon Shumway
Мучитель микросхем
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область
Контактная информация:

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

Сообщение Gordon Shumway »

Доброго времени суток !

Разбираюсь с часиками DS1307, оказалось, что у меня нет библиотеки ds1307clock.lib
в дистрибутиве Баскома... Пример программы есть, а библиотеки нет. Может кто-нибудь поделится ?

Спасибо !
С уважением,
Алексей.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

kip96, спасибо, я идею понял. Интересный ход. Есть конечно нюансы, в плане записи потом измененных значений даты и времени, но это уже другое... :)

Gordon Shumway, интересно, куда же это она делась... :))
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Ответить

Вернуться в «AVR»