[an error occurred while processing this directive]
Вот процедурка для сканирования устройств в сетке 485 и назначения сетевого адреса по 16 битному серийному номеру:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Гудвин 04 сентября 2006 г. 11:38
В ответ на: Можно так : запрос - ответы от устройств через временные интервалы, пропорциональные сетевому адресу. отправлено Гудвин 04 сентября 2006 г. 11:20


void proceed_info(void)
{

char n = '1'; // порядковый номер контроллера
unsigned int cnt = 0;
unsigned int SN;
char f1;
char i;

SN=MAC[4]+MAC[5]*256;

for (cnt=0;cnt {
f1=1;
for (i=0;i<20;i++)
{
delay_us(3);
if (PIND.0==0)f1=0;
}

if (f1)
{
if (cnt==SN){
TX_485;
putchar('#');// начало блока данных с контроллера
putchar(n); // номер контроллера
putchar(TYPE+'0');// тип контроллера
putchar(VER_MAJOR);// версия
putchar(VER_MINOR);
printf("%05u",SN); // серийный номер
if (fl_foto==0) putchar('0'); // флаг фотодатчиков
else putchar('1');
putchar('*');
UCSR0A.6=1;
while(!UCSR0A.6);
UCSR0A.6=1;
RX_485;
N_CONTR=n;
return;
}
}
else
{
cnt--;////////////
n++;
delay_ms(15);
}

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

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


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание