Прошивать одним адресом, например, 0 А при регулировке выдавать команду смены адреса (при одном подключенном модуле), по которой новый адрес будет запоминаться в памяти.
Если нужно динамически переопределять адреса, то это сложнее. Нужно детектировать коллизии и в каждом модуле должен быть уникальный идентификатор (наподобие мак-адреса) - на худой конец, забивать серийный номер.
Кстати, тоже мысль. При прошивке забивает серийный номер, а адрес тогда будет равен SerialNumber % 32 (или другими словами, SerialNumber & 31)
При перепрошивке опять выставляем серийный номер (который приклеен на бирочке - ведь так?), и получаем тот же адрес, который и был.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|