Калибровка системы
Значения некоторых переменных, используемых в наших программах, корректны только для наших версий роботов. Проблема — в управлении двигателем. Когда приводной двигатель включается на конкретный отрезок времени (скажем, 0,2 с), то расстояние, пройденное роботом, будет зависеть от типа двигателя, передаточного числа коробки передач, напряжения питания, диаметра колес и шин.
Ваш робот, наверняка, будет отличаться от собранного нами (по крайней мере, в одном из перечисленных аспектов).
То же относится и к другим переменным (например, к выходным данным аналоговых датчиков).
Обычно мы можем решить, каким образом откорректировать значения переменных, наблюдая робота в действии.
Робота, движущегося по прямой, можно запрограммировать на движение в течении 10 путем вызова подпрограммы longdelay, вызывающей 50 раз подпрограмму delay. Рабочий регистр при этом перед вызовом подпрограммы longdelay загружается значением 32h. Если, например, робот перемещается вперед на расстояние, вдвое превышающее ожидаемое, то измените программы, загрузив w половинным значением, т.е числом 19h.
Иногда нам необходимо опрашивать значение переменной в то время, когда робот в действии.
Например, может считываться результат аналого-цифрового преобразования с последующим его сохранением в памяти EEPROM.
В конце прогона программы поместите микроконтроллер PIC в программатор и считайте сохраненное значение.
Затем соответствующим образом откорректируйте программу.
Источник: qwedr.com