Страница 14 из 19

Re: Смена инструмента на токарнике

Добавлено: 25 фев 2020, 18:25
Serg
Ваш компонент никуда не подключен.

Re: Смена инструмента на токарнике

Добавлено: 25 фев 2020, 18:42
tokarka63
Усе, нашел косяк!))

loadrt test
addf test servo-thread
net knopka test.knopka <= parport.0.pin-12-in
net led test.led <= parport.0.pin-17-out

заработало!!!)))
так и знал, мелочь каую нить пропустил!)

Теперь на долго затихну, револьверка пришла, осталось ее разобрать, помыть-почистить-модернизировать(установить датчики-флажки для датчиков), адаптировать к станку....потом продолжу!))

Всем спасибо!

Re: Смена инструмента на токарнике

Добавлено: 27 фев 2020, 18:59
tokarka63
Киньте пожалуйста в меня ссылкой, на тот СИ который используется в linuxcnc )

Re: Смена инструмента на токарнике

Добавлено: 27 фев 2020, 19:07
nkp
tokarka63 писал(а):Киньте пожалуйста в меня ссылкой, на тот СИ который используется в linuxcnc )
попробую "перевести" вопрос:
требуется описание синтаксиса ,который используется в компонентах
угадал?
пост #248

Re: Смена инструмента на токарнике

Добавлено: 27 фев 2020, 19:49
tokarka63
nkp писал(а):угадал?
Почти) не могу понять почему не работает инвертирование типа " a =~a; "
"a" может иметь значение 1 или 0, объявляю переменную "pin out bit a = 0;" после запуска "а=1" и все

Re: Смена инструмента на токарнике

Добавлено: 27 фев 2020, 20:14
nkp
но для правильного ответа нужен код

Re: Смена инструмента на токарнике

Добавлено: 27 фев 2020, 20:21
nkp
tokarka63 писал(а):pin out bit a = 0;
может там нужно просто переменную объявить

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

variable тип имя;

Re: Смена инструмента на токарнике

Добавлено: 27 фев 2020, 20:24
tokarka63
nkp писал(а):a = !a;
это просто заменит 1 на 0 и все, я хочу, чтоб с каждым циклом менялось значение)
Сейчас пытаюсь изобразить....нажали на кнопку-зажгли led, еще раз нажали-потушили led
потихоньку разбираюсь, что как работает и мучительно вспоминаю СИ )

pin in bit knopka = 0;
pin out bit led = 0;
pin out bit b = 0;

UNCTION(_)
{
if((b==1)&& !knopka)
{
b=0;
led=~led;
}
if (knopka)
{
b =1;
}
}

P.S. на МК это работает!)

Re: Смена инструмента на токарнике

Добавлено: 27 фев 2020, 20:31
nkp

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

pin in bit knopka ;
pin out bit led ;


FUNCTION(_){
    if(knopka)led=1;
    if(!knopka)led=0;
}

Re: Смена инструмента на токарнике

Добавлено: 27 фев 2020, 20:38
nkp
вот полностью код компонента
(в коменте команда компиляции)

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

component knopka"knopka";
//sudo halcompile --install knopka.comp
pin in bit knopka;
pin out bit led;

function _;
license "GPL"; 
;;
    if(knopka)led=1;
    if(!knopka)led=0;

Re: Смена инструмента на токарнике

Добавлено: 27 фев 2020, 20:41
nkp
извиняюсь - только сейчас дочитал - кнопка-тумблер нужна
тогда всё что выше - не считается :hehehe:

Re: Смена инструмента на токарнике

Добавлено: 27 фев 2020, 20:42
tokarka63
Меня не поняли
tokarka63 писал(а):Сейчас пытаюсь изобразить....нажали на кнопку-зажгли led, еще раз нажали-потушили led
По вашему коду....кнопка отпущена-горим, кнопка нажата -не горим)
nkp писал(а):тогда всё что выше - не считается
Ага ))

Re: Смена инструмента на токарнике

Добавлено: 27 фев 2020, 21:04
nkp

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

pin in bit knopka;
pin out bit led;
variable int iter;

function _;
license "GPL"; 
;;
    if(knopka & !iter){led=1;}
    if(knopka & iter) {led=0;}
    if(!knopka){iter=led;}

Re: Смена инструмента на токарнике

Добавлено: 27 фев 2020, 21:15
Maxekb77
Посмотри компонент toggle

Re: Смена инструмента на токарнике

Добавлено: 27 фев 2020, 21:18
nkp
Maxekb77 писал(а):Посмотри компонент toggle
зачем?

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

component toggle "'push-on, push-off' from momentary pushbuttons";
pin in bit in "button input";
pin io bit out "on/off output";
param rw u32 debounce = 2 "debounce delay in periods";
option data toggle_data;

function _ nofp;
license "GPL";
;;

typedef struct {
    int debounce_cntr;
    int debounced;
} toggle_data;

FUNCTION(_) {

    if (( debounce < 1 ) || ( debounce > 10000 )) {
	/* set a sane value, we don't want 2 million second delays */
	debounce = 2;
    }
    if ( in ) {
	/* pressed */
	data.debounce_cntr++;
	if ( data.debounce_cntr >= debounce ) {
	    data.debounce_cntr = debounce;
	    if ( data.debounced == 0 ) {
		/* toggle output */
		out = !out;
	    }
	    data.debounced = 1;
	}
    } else {
	/* not pressed */
	data.debounce_cntr--;
	if ( data.debounce_cntr <= 0 ) {
	    data.debounce_cntr = 0;
	    data.debounced = 0;
	}
    }
}

Re: Смена инструмента на токарнике

Добавлено: 27 фев 2020, 21:53
tokarka63
nkp
Спасибо за код, завтра попробую-обдумаю)

Re: Смена инструмента на токарнике

Добавлено: 28 фев 2020, 12:36
tokarka63
nkp писал(а):

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

pin in bit knopka;
pin out bit led;
variable int iter;

function _;
license "GPL"; 
;;
    if(knopka & !iter){led=1;}
    if(knopka & iter) {led=0;}
    if(!knopka){iter=led;}
Работает!))
вне зависимости как объявлена переменная
pin out bit
variable int
т.е. получается, на прямую ни выход, ни переменную не проинвертировать
Спасибо

Re: Смена инструмента на токарнике

Добавлено: 08 окт 2020, 19:46
tokarka63
Приветствую!!!
Не прошло и года, как я продолжил развлекаться с револьверкой!)
Возник вопрос, на который, не удалось найти ответа.
С какой частотой идет обращение к компоненту!?

Re: Смена инструмента на токарнике

Добавлено: 08 окт 2020, 20:42
Maxekb77
Быстро ;)

Re: Смена инструмента на токарнике

Добавлено: 08 окт 2020, 23:54
tokarka63
Maxekb77 писал(а): Быстро
Это я уже понял!)
Сколько надо посчитать попугаев, для секундной задержки?)