Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Готовые конструкции » Часы на атмега 8 очень простые


Часы на атмега 8 очень простые

Сообщений 31 страница 38 из 38

31

sasha_1973 написал(а):

но через АЦП батарейка будет садиться.

два миллиампера - терпимо. хотя автор заявляет 10 мкА. в общем, дешево и сердито. меня устраивает
так а что с термометром-то не так?

0

32

Наверное что то с TIMER0. Вы его почти на секунду останавливаете. А вообще нужно запрещать прерывания на время измерения и преобразования.

0

33

IDok написал(а):

два миллиампера - терпимо. хотя автор заявляет 10 мкА. в общем, дешево и сердито. меня устраиваеттак а что с термометром-то не так?

2mA при батарейном питании - это не "терпимо", а "ощутимо"...

На УАЗ Патриот криворуко подключенная (с завода) гамнитола дает ток "утечки" до 130mA...
Вроде "терпимо", но после двухсуточной стоянке при ниже -25°С АКБ высаживается настолько, что хватает только на мигание сигналки...

И про термометр...
В качестве датчика - что ?

0

34

Nord написал(а):

но после двухсуточной стоянке при ниже -25°С АКБ высаживается настолько, что хватает только на мигание сигналки...

Вот именно после такого же попадалова, я поставил себе выключатель массы.

И про термометр...
В качестве датчика - что ?

Я думаю, что DS18B20.

0

35

Andrusha написал(а):

Nord написал(а):но после двухсуточной стоянке при ниже -25°С АКБ высаживается настолько, что хватает только на мигание сигналки...Вот именно после такого же попадалова, я поставил себе выключатель массы.

Оффтопик конечно, но при наличии сигналки с дист. запуском это не решение... ;)

0

36

Andrusha написал(а):

А вообще нужно запрещать прерывания на время измерения и преобразования.

ну так вот таймер и останавливается. хотя да, в данных часах это ведет к косяку наверное а на ход часов это не влияет, так что в чем косяк?

Отредактировано IDok (2018-05-11 06:50:24)

0

37

IDok написал(а):

так а что с термометром-то не так?

Никого не слушайте, раз работает, значит усё в порядке !!!

Если всё-таки интересно, то не совсем понятен

этот момент

If Byte1 >= 248 Then                                        ' Проверяем на отрицательную температуру.248 в десятичном - 11111000 в двоичном. Если температура отрицательная - вычитаем из &HFF
Byte0 = &HFF - Byte0
Byte1 = &HFF - Byte1
End If
T1 = Byte0 / 16                                             ' Сдвигаем нулевой байт вправо на 4 бита (2*2*2*2=16)
T2 = Byte1 * 16                                             ' Сдвигаем первый байт влево на 4 бита (2*2*2*2=16)
T1 = T1 + T2               

так сказать, подгонка искомого под желаемое.


Попробуйте так

Dim Temp_ds18b20 As Integer       'Температура*16 в HEX формате
  Dim Data_ds18b20(2) As Byte At Temp_ds18b20 Overlay       'массив данных от DS18B20
  Dim Температура As Single

do

    1wreset       ' Сброс линии 1Ware
    1wwrite &HCC       ' Обращение к датчику
    1wwrite &H44       ' Запуск измерения датчика

    waitms 750

    1wreset       ' Сброс линии 1Ware
    1wwrite &HCC       ' Обращение к датчику
    1wwrite &HBE       ' Команда чтения ОЗУ датчика
    Data_ds18b20(1) = 1wread(2)       ' Принимаем данные
    Температура = Temp_ds18b20       ' Забираем сырое значение температуры
    Shift Температура , Right , 4       ' Получаем готовую температуру с знаком

    Print Fusing(температура , "#.####") ; "°C"

loop
end

0

38

sasha_1973
спасибо, попробую

0


Вы здесь » Программирование ATMEL в BASCOM. » Готовые конструкции » Часы на атмега 8 очень простые