|
Atmega328P и DS18B20 в фоновом режиме |
|
|
|
Dec 8 2011, 19:46
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 22-01-10
Из: Kiev
Пользователь №: 55 001

|
А у кого опыт паразитного питания? Какие основные моменты? Вот, думаю, что лучше уменьшить разрядность? Или при единственном датчике на линии это не имеет значения? Кто-то утверждал, что на паразитном питании получает лучшие результаты по длине кабеля, чем при постоянном питании. Как это может быть?
|
|
|
|
|
Dec 13 2011, 17:06
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 22-01-10
Из: Kiev
Пользователь №: 55 001

|
"Время заряда давать не менее 800-900мс" ---------------------------------------------------- Вы имеете в виду выдержку в "1 = +5В" после команды СТАРТ?
|
|
|
|
|
Dec 13 2011, 17:36
|

Местный
  
Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716

|
Так будет понятнее CODE ds_start: // andi flags,0xFC // чистим флаги rcall ds_reset // сброс cli // выключаем прерывания ldi tmp, 0x55 // соответствие ROM rcall ds_write // push zl // сохраняем адрес серийника push zh // rcall send_serial // посылаем 8 байт 1 код устройства 6 серийный номер 1 црц pop zh // восстанавливаем адрес серийника pop zl // ldi tmp, 0x44 // Посылаем команду конвертировать температуру rcall ds_write // sbi dal_port,ds_p sbi dal_ddr,ds_p sei // cbi portb,load // Load -> 0 rcall wait_075s // даем еденицу для конвертирования температуры минимум 800-900 мс ( о чем я говорил ) rcall ds_reset // cli // ldi tmp, 0x55 // соответствие ROM rcall ds_write // rcall send_serial // ldi tmp, 0xBE // Посылаем команду что сейчас будем читать датчик rcall ds_write // sei ldi xl,65 // Ждем 50 мкс rcall wait // cli rcall ds_read // читаем 12 бит cbi dal_port,ds_p sbi dal_ddr,ds_p // RESET Dallas ставим 0 чтоб избежать саморазогрев датчика rcall ds_bcd // ds_ok: // sei // ret // Выход из подпрограммы
send_serial: // Посылаем 8 байт серийного номера в датчик DS18B20 // Адрес строки предварительно загружаем в Z ldi loop2,8 // send_c: // lpm tmp,Z+ // rcall ds_write // dec loop2 // brne send_c // ret //
|
|
|
|
|
Dec 13 2011, 22:52
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 22-01-10
Из: Kiev
Пользователь №: 55 001

|
Понятно, спасибо, Павлик!
Сообщение отредактировал usav - Dec 13 2011, 22:52
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|