Еще один цифровой термометр.
|
|
4ester | Дата: Среда, 23.05.2012, 18:46 | Сообщение # 1 |
Группа: Друзья
Сообщений: 11
Статус: Offline
| Основные возможности термометра: 2 канала измерения, 1 датчик выносной, фиксация максимальной и минимальной температуры без сохранения в еепром т.к. мне это не надо, по желанию можно добавить, связь с пк с возможностью вывода в порт значений измеренной и зафиксированной температуры, по нажатию 1 кнопки выводятся зафиксированные показания, по нажатию второй значения сбрасываются. На печатной плате установлена микросхема MAX232 для связи с ПК, и tiny2313 выполняющего функцию виртуального COM порта. Питается устройство либо от порта юсб ПК, либо от зарядного устройства от мобильного телефона с разъемом юсб типа а, тем же проводом. Сделано для удобства. Все необходимые файлы в архиве. Фьюзы настроены на внешний кварц.
Сообщение отредактировал 4ester - Среда, 23.05.2012, 18:47 |
|
| |
exersizze | Дата: Среда, 23.05.2012, 23:39 | Сообщение # 2 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| Функция tini2313 в проекте организовывать виртуальный COM порт через юсб? Тоесть можно использовать как замену FT232RL? По возможности добавь парочку фотографий получившегося девайса.
|
|
| |
4ester | Дата: Четверг, 24.05.2012, 01:19 | Сообщение # 3 |
Группа: Друзья
Сообщений: 11
Статус: Offline
| Quote (exersizze) Тоесть можно использовать как замену FT232RL? Да тинька здесь выполняет функцию uart, вот от сюда брал схему за ОСНОВУ, еще можно на меге 8 сделать, но у меня тиньки безхозные валялись, мегу пожалел, а фотки завтра сделаю.
|
|
| |
RD3AVJ | Дата: Четверг, 24.05.2012, 09:15 | Сообщение # 4 |
Группа: Свой человек
Сообщений: 175
Статус: Offline
| Спасибо за освещение данного момента. Схему видел ранее, но как то пропустил этот момент. Тема термометров не нова, но использование таких решений делают такие проекты очень полезными! СПАСИБО!
|
|
| |
|
pchela5 | Дата: Вторник, 18.12.2012, 10:43 | Сообщение # 6 |
Группа: Свой человек
Сообщений: 85
Статус: Offline
| Собственно программа термостата с детектором присутствия на 4 канала:
|
|
| |
Vitek1977 | Дата: Среда, 19.12.2012, 16:02 | Сообщение # 7 |
Группа: Пользователи
Сообщений: 3
Статус: Offline
| в том та и дело что нет переменных под такой адрес. максимум же 4 байта
|
|
| |
pchela5 | Дата: Среда, 19.12.2012, 17:31 | Сообщение # 8 |
Группа: Свой человек
Сообщений: 85
Статус: Offline
| Давай переместимся сюда пообсуждаем программу. Посмотрел - сильна программа, сходу не осилишь ))). Заметил много одинаковых решений - почему их не формить бы в функции? Далее, пробовал ли применить CASE - может так меньше места займет, чем несколько IF-ELSE-ENDIF?
|
|
| |
pchela5 | Дата: Среда, 19.12.2012, 17:35 | Сообщение # 9 |
Группа: Свой человек
Сообщений: 85
Статус: Offline
| Quote (Vitek1977) максимум же 4 байта
А стринги не пробовал? Я бы тебе порекомендовал почитать апноут №193 про использование OVERLAY - вещь посильнее Фауста Гёте будет. Единственное - надо попробовать, как она будет и будет ли работать с EEPROM. PS
Dim Array(17) As Byte At &H100 Dim String_ram As String * 16 At Array Overlay
Dim ArrayEram(17) As Eram Byte At &H10 Dim StringEram As Eram String * 16 At ArrayEram Overlay
Такая конструкция объявления переменных прокатила - так что можно смело пробовать.
Сообщение отредактировал pchela5 - Среда, 19.12.2012, 17:49 |
|
| |
Vitek1977 | Дата: Четверг, 20.12.2012, 14:12 | Сообщение # 10 |
Группа: Пользователи
Сообщений: 3
Статус: Offline
| конечно надо пробовать, ичиться. я месяц назад начал с нуля. и для меня главное было реализовать алгоритм в работе как можно быстрей. запустил ее вообще в сыром виде, без выбора датчиков, без защиты дураков, а потом уже продолжил дописывать. кстати перевел на $eeprom так как на не пощел вариант чо описывал один датчик запоминался. если честно я так пока и не понял с распределением адреса датчика. обращение едет 1wverify Nomdat1(1) первая ячейка массива, после считывания проверяю, в них лежит 28Н у всех датчиков, где то попадалось описание этого 64 битного адреса, на сколько помню это вид изделия, и еще один байт вроде как постоянная величина чего та, а остальные байты как уникальный адрес. вообщем при сравнении 3 байта на моих 3 датчиках одинаковые. на досуге попробую те варианты что ты предлагаешь, на счет CASE выглядеть может и будет меньше, но что выдаст при компиляции ето интересно. надо пробовать
|
|
| |
Vitek1977 | Дата: Четверг, 20.12.2012, 14:18 | Сообщение # 11 |
Группа: Пользователи
Сообщений: 3
Статус: Offline
| в идеале проработать программу да и перенести ее на другую мегу, есть желание добавить к устройствы gsm, но пока это для меня темный лес
|
|
| |
pchela5 | Дата: Пятница, 21.12.2012, 11:25 | Сообщение # 12 |
Группа: Свой человек
Сообщений: 85
Статус: Offline
| Quote (Vitek1977) где то попадалось описание этого 64 битного адреса
Уж не в даташите ли? ))) Надо смотреть, да, какое значения принимают переменные при считывании уникального адреса. Но их размерность известна, местоположение в памяти можно жестко задать, ну и то, что я написал выше - работает - проверял на симуляторе. Code $regfile = "m8def.dat" $crystal = 4000000 $hwstack = 40 $swstack = 16 $framesize = 32
Dim I As Byte Dim B As Byte
Dim Array(17) As Byte At &H100 Dim String_ram As String * 16 At Array Overlay
Dim Array_eram(17) As Eram Byte At &H10 Dim String_eram As Eram String * 16 At Array_eram Overlay
String_ram = "0123456789adsfgk" 'String_eram String_eram = String_ram
Do
For I = 1 To 16 ' Step -1
B = 17 - I
Array(i) = Array_eram(b)
Next I
String_eram = String_ram
Waitms 10
Loop
End
Данный код меняет местами данные в ОЗУ и EEPROM.
|
|
| |