Не увидел ничего, что касается выходов 0 и 1.AlexNikov писал(а):Вот код:
Добавьте в файл инициализации такие строки. Можно в самом начале.
Код: Выделить всё
SetBitDirection(0,1); //set as output
SetBitDirection(1,1); //set as output
Не увидел ничего, что касается выходов 0 и 1.AlexNikov писал(а):Вот код:
Код: Выделить всё
SetBitDirection(0,1); //set as output
SetBitDirection(1,1); //set as output
Прописал в файле, сделал инициализацию. Реакции выходов нет. На пинах 2 и 4 так же 0ukr-sasha писал(а):Не увидел ничего, что касается выходов 0 и 1.AlexNikov писал(а):Вот код:
Добавьте в файл инициализации такие строки. Можно в самом начале.Код: Выделить всё
SetBitDirection(0,1); //set as output SetBitDirection(1,1); //set as output
Это помогло! Большущее спасибоukr-sasha писал(а):Попробуйте вручную.
1. После инициализации , если память не подводит, должны быть "галочки".
2. Вручную поставьте "галочки", должны ключи срабатывать. П.С. Перепроверьте подключение к разъему - возможно не к тем пинам подключили.
Что именно?AlexNikov писал(а):Это помогло!
Руками поставил галки в Digital I/O. Реле сразу включились. На M3 прописал установить биты 1 и 0 в "1", на М5 эти же биты установить в "0"ukr-sasha писал(а):Что именно?AlexNikov писал(а):Это помогло!
ukr-sasha писал(а):Добавьте в файл инициализации такие строки. Можно в самом начале.
SetBitDirection(0,1); //set as output
SetBitDirection(1,1); //set as output
Код: Выделить всё
#include "KMotionDef.h"
int main()
{
SetBitDirection(0,1); //set as output
SetBit(0);
}
Это сделано. Не помогает.ukr-sasha писал(а):ukr-sasha писал(а):Добавьте в файл инициализации такие строки. Можно в самом начале.
SetBitDirection(0,1); //set as output
SetBitDirection(1,1); //set as output
Код: Выделить всё
SetBitDirection(0,1); //set as output
SetBitDirection(1,1); //set as output
Код: Выделить всё
#include "KMotionDef.h"
#include "CorrectAnalogFunction.c"
#define RefVoltage 11.09f
main()
{
float V=5.0;
FPGA(KAN_TRIG_REG)=4; // Mux PWM0 to JP7 Pin5 IO 44 for KSTEP
SetBitDirection(44,1); // define bit as an output
FPGA(IO_PWMS_PRESCALE) = 46; // divide clock by 46 (1.4 KHz)
FPGA(IO_PWMS+1) = 1; // Enable
FPGA(IO_PWMS) = CorrectAnalog(V/RefVoltage); // Set PWM
// FPGA(IO_PWMS) = 7; // Set PWM to a specific count
}
Добавьте перед включением задержку Delay_sec(5.0) (5 секунд)vektor_z писал(а):только задержка
А куда её прописать? И как отключить второй бит в то время когда включен первый?Shishio Makoto писал(а):Добавьте перед включением задержку Delay_sec(5.0) (5 секунд)vektor_z писал(а):только задержка
ClearBit(27);vektor_z писал(а):Задача состоит следующая, если включен бит 27, то бит 28 не активный и активируется только через 5 секунд (примерно столько нужно времени чтоб остановилось вращение двигателя по инерции) после того как выключится бит 27
О, спасибо! Так более понятно. Завтра попробую на станке и отпишусь.Shishio Makoto писал(а):ClearBit(27);vektor_z писал(а):Задача состоит следующая, если включен бит 27, то бит 28 не активный и активируется только через 5 секунд (примерно столько нужно времени чтоб остановилось вращение двигателя по инерции) после того как выключится бит 27
Delay_sec(5.0);
SetBit(28);
Код: Выделить всё
#include "KMotionDef.h"
main()
{
if ( SetBit(27) )
{
ClearBit(27);
Delay_sec(5.0);
}
SetBit(28);
}
Тоесть как я понял код выполняется по следующему алгоритму: Если бит 27 включен то - отключаем бит 27 - ждем 5 сек - и включаем бит 28. А если бит 27 выключен то сразу (без задержки) включаем бит 28. ? Я правильно понял выполнение предоставленного вами кода?ukr-sasha писал(а):Я бы всё таки сделал с проверкой условия:
Всё верно.vektor_z писал(а):Я правильно понял выполнение предоставленного вами кода?