[an error occurred while processing this directive]
|
Даже хуже. Был готовый, работающий алгоритм на бейсике. Работал на PC, команды на двигатели давал по RS232. Была задача перевести на микроконтроллер. 16F877, компиллятор ht-picc. Пробовал самый легкий путь - перевести на pic бейсик. Весь опплевался и в довершении код перестал в кристалле помещаться. Переписал на C при помощи конвертера basToC. Совершенно неожиданно оказалось, что практически все рабочее. Единственное конвертер и действительные числа бейсика и целые гонит как int. Вручную разбирался, где какие и нужные заменял на double. Ну и лишние процедуры (типа работы с экраном, со строками и т.д. конвертер приписал. Я их выкинул). Все довольно быстро заработало. Но из-за разных библиотек вычислений действительных выражений, результаты си микроконтроллера и бейсика PC временами отличались на несколько единиц младшего разряда для 10-разрядных выходных величин (т.е. порядка 1%) во время переходных процессов в САР и на 1-2 разряда в установившемся режиме. Как уже говорил, код на pic бейсике в кристалл не влазил, а вот на ht-picc занял чуть меньше 60%!
E-mail: info@telesys.ru