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

 
 
> 1-wire+микроконтроллер, Работа с DS2431(1-wire)
ks007
сообщение Jun 9 2011, 10:36
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 1-02-11
Из: Томск
Пользователь №: 62 613



Здравствуйте, есть проблема не могу связать DS2431 и микроконтроллер. Моделирую в Протеусе работу микроконтроллера с DS2431. DS2431 отвечает, что оно присутствует, потом хочу записать данные видно, что данные идут а в ответ ничего подскажите как быть. код программы привел и схема.
CODE
#define OW_RESET() DDRD|=(1<<DDD0);\
PORTD&=~(1<<PD0);\
DELAY_US(500)


#define OW_SEND_ONE() DDRD|=(1<<DDD0);\
PORTD&=~(1<<PD0);\
DELAY_US(10);\
DDRD&=~(1<<DDD0);\
PORTD|=(1<<PD0);\
DELAY_US(10)

#define OW_SEND_ZERO() DDRD|=(1<<DDD0);\
PORTD&=~(1<<PD0);\
DELAY_US(100);\
DDRD&=~(1<<DDD0);\
PORTD|=(1<<PD0);\
DELAY_US(10)

typedef unsigned char BYTE;


int main(void)
{
//DDRD|=(1<<DDD1);

BYTE DevDetect;
OW_RESET();
DDRD&=~(1<<DDD0);
PORTD|=(1<<PD0);
DELAY_US(65);
if((PIND&(1<<PIND0))==0)
{
DevDetect=1;
}

else
DevDetect=0;
DELAY_US(415);
//OW_SendByte(0x55);
//OW_SendByte(0xF0);
OW_SendByte(0x0F);

OW_SendByte(0x20);
OW_SendByte(0x00);

OW_SendByte(0x8C);

return DevDetect;
}

void OW_SendByte(BYTE val)
{
for(int i=0; i<8; ++i)
{
if(val&(1<<i))
{
OW_SEND_ONE();
}
else
{
OW_SEND_ZERO();
}
}
}


Сообщение отредактировал IgorKossak - Jun 9 2011, 11:23
Причина редактирования: [codebox] !!!

Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  23423.bmp ( 87.56 килобайт ) Кол-во скачиваний: 7
 
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 04:30
Рейтинг@Mail.ru


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