Страница 1 из 1

Проблемка с написанием компонента HAL

Добавлено: 16 май 2015, 17:01
vvpolyakov
Пытаюсь подключить компонент atan2 из соседней темы, как-то не выходит.
Проблема такая.
вот допустим пишу код

Код: Выделить всё

component zzz;
pin out float v;
function _;
license "GPL";
;;
FUNCTION(_) { v = 1;}
компилирую его sudo comp --install zzz.comp
подключаю его в CNC.hal как обычно loadrt zzz

открываю HAL метр, нахожу zzz.0.v и там всегда показывает 0.
Если заменяю pin out float v; на pin out float v=5; то HAL-метр показывает 5...
То есть ощущение как буд-то функция не вызывается

Куда копать? целый день бьюсь с этим

Re: Проблемка с написанием компонента HAL

Добавлено: 16 май 2015, 17:37
Ворон226
Компонент нужно не просто загрузить в HAL:

Код: Выделить всё

loadrt  flipflop
, но и добавить

Код: Выделить всё

addf    flipflop.0   servo-thread
Подробнее в описании LCNC (например, тут - http://www.cnc-club.ru/wiki/index.php/L ... 82.D1.8C_1. )

Re: Проблемка с написанием компонента HAL

Добавлено: 16 май 2015, 17:47
vvpolyakov
О! Спасибо ) Заработало ))
Только у меня оно заругалось на что-то там... needs FP
нарандомил вот такую строку: function _ nofp; и всё заработало )

Re: Проблемка с написанием компонента HAL

Добавлено: 18 май 2015, 09:34
Сергей Саныч
Потоки (threads) бывают с возможностью использовать функции с плавающей запятой (точкой) и без таковой. По умолчанию servo-thread - с плавающей запятой, а base-thread - без.
Поскольку у вас компонент использует плавающую запятую, его нужно выполнять в servo-thread.