Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

(+)...

Отправлено zlogic 12 марта 2009, г. 13:14
В ответ на: Ответ: былобы очень здоров, поделитесь куском кода :) отправлено пользователем nicekit37 12 марта 2009, г. 13:07

switch(scan)
{
case 0:
DIG0 = 0;
if(nextTemp)
{
if(OneWireReset())
{
sensor_Temp = true;
nextTemp = false;
stopReadTemp = false;
}
else sensor_Temp = false;
}
scan++;
break;
case 1:
DIG1 = 0;
if(sensor_Temp && canReadTemp)
{
OneWireWriteByte(0xcc);
OneWireWriteByte(0x44);
}
scan++;
break;
case 2:
DIG2 = 0;
if(sensor_Temp && canReadTemp)
{
if(OneWireReset()) sensor_Temp = true;
else sensor_Temp = false;
}
scan++;
break;
case 3:
DIG3 = 0;
if(sensor_Temp && canReadTemp)
{
OneWireWriteByte(0xcc);
OneWireWriteByte(0xbe);
}
scan++;
break;
case 4:
if(sensor_Temp && canReadTemp)
{
temp_lsb = OneWireReadByte();
temp_msb = OneWireReadByte();
stopReadTemp = true;
}
scan = 0;
break;
}
Идея такая...

При первой цифре я делаю OneWireReset()
При второй - OneWireWriteByte(0xcc) и OneWireWriteByte(0x44)
При третьей - OneWireReset()
При четвёртой - OneWireWriteByte(0xcc) и OneWireWriteByte(0xbe)
При пятой - temp_lsb = OneWireReadByte() и temp_msb = eWireReadByte()

Таймер перезапускается для динамической индикации через 2 мс.
Всего четыре цифры, пятая цифра пустая...


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 234:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru