реклама на сайте
подробности

 
 
> Хоть о DS18B20 , но
ILYAUL
сообщение Oct 13 2010, 15:41
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



не могу понять почему не получается этот "фокус". Всем привет!

Сейчас только обратил на это внимание. Есть часть кода: ( Полностью он где -то выкладывался на форуме , в многочисленных темах о DS18)
Код
            ....................................................
        cpi        rab,ToConvTermo;| Ищем команду ToConvTermo
        brne    ForwardCheck;| Не она идём дальше
                                ldi             temp,1<<RXCIE1|1<<UDRIE1|0<<RXEN1|1<<TXEN1
        sts    UCSR1B,temp;/ По идее конверт. должна закончиться до этой проверки,
CheckPinRX:
        sbis    PIND,PIND2;/ но проверить надо ,поэтому отключаем приёмник,
        rjmp    CheckPinRX;/ если на входе (0) конвертация не закончена.Тогда - ждём
        ldi        temp,1<<RXCIE1|1<<UDRIE1|1<<RXEN1|1<<TXEN1
        sts        UCSR1B,temp    
ForwardCheck:
                   ........................................................


ToConvTermo - это $44 -начало конвертации температуры. Отловил - отключил приемник и жду 1 от DS18B20. DS- понятно запитана от внешнего источника.
Поэтому, по идее такой фокус возможен, согласно D/S . PIN RX порта по умолчанию сконфигурирован на вход.
Студия , если делать BREAKPOINT , на SBIS дает следующую картину PIND2=1 PORTD2=0 хотя осцил на ноге дает тоже 1 и конечно никакой конвертации цикл не ждёт.
Не могу понять почему нет 0 от DS18B20 или что-то упустил при отключении USART? laughing.gif

P/S Да забыл , отключается USART в прерывании, Может незя этого делать в нём?


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ILYAUL
сообщение Nov 11 2010, 17:37
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Дошли руки , добавил опрос готовности датчика (11 команд asm) и был приятно удивлён . Длительность самой конвертации составила 75,596 ms (9 бит разрешение) весь пакет 81,984 ms против 93,75 - и соответсвенно 100,1 ms. При этом из кода выброшены команды инит таймера и обработки его прерывания.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 11:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01371 секунд с 7
ELECTRONIX ©2004-2016