Dalrate.ru

Построение рабочей локальной сети

Охрана труда.

// Останов всех сервоприводов

{i;

for(i=0;i<fxPWM_CH_NUM;i++) = currAng;

}

//----------------------------------------------------------

//

//----------------------------------------------------------main(void)

{addr, MY_ADDR, U1, U2, a1, a2;char num, angle;i;_485Init();();_CH_NUM = 6;

USART_Init(BR57600);

// Установить в начальное положение

SetStartPos();

// Timer/Counter 2 initialization

// Clock source: System Clock

// Clock value: 7,200 kHz

// Mode: Normal top=FFh

// OC2A output: Disconnected

// OC2B output: Disconnected=0x00;A=0x00;B=0x07;=0x00;A=0x00;B=0x00;

// Timer/Counter 2 Interrupt(s) initialization=0x01;

// Global enable interrupts

//--------------------------------------------------------

// Определяем собственный адрес=ReadByteADC(6);

a1=U1>100;=ReadByteADC(7);=U2>100;_ADDR=a1+a2*2;(MY_ADDR);

// Инициализация регистров = AStepDefault; = (signed char)0xff; = 0x00; = 0x00;

//--------------------------------------------------------

// Основной цикл

//--------------------------------------------------------CTL = U485READ;(1)

{

//------------------------------------------------------

// Считываю байты с портов

for(i=0;i<8;i++) = ReadByteADC(i);

//------------------------------------------------------

// Управление сервомашинками

//------------------------------------------------------(i=0;i<fxPWM_CH_NUM;i++)

{(needrotate)

{(i, currAng);

needrotate = 0;

}

}

//------------------------------------------------------

// Проверяем условие прерывания операции CMD_SET_INT

//------------------------------------------------------(i=0;i<8;i++)

{= (INT_MASK & (1<<i));(num)

{(ADCVAL>=INT_VALUE) // Блокируем движение

{();_MASK = 0;;

}

}

}(UWasChar1()) addr = ReadCommand(); else continue;(addr!=MY_ADDR) continue;CTL = U485WRITE;_us(DELAY_TIME);(MRcmd)

{CMD_GET_REG:(HEADER_BYTE);(MRfrom);(MY_ADDR);(CMD_SENS_COND);(MAX_REGIST);(i=0;i<MAX_REGIST;i++)(REGIST);;CMD_READ_SENS: // Отправляем значения АЦП(HEADER_BYTE);(MRfrom);(MY_ADDR);(CMD_SENS_COND);(8);(i=0;i<8;i++)(ADCVAL);;CMD_SENS_COND: // Пропускаю командуCMD_ACK:;CMD_PIP: // Пищалка();;CMD_STARTPOS: // Исходное положение();;CMD_SET_FAST:CMD_SET_SLOW:= MRDATA;= MRDATA;(num<0 || num>=fxPWM_CH_NUM) break;(angle>MaxAng) angle = MaxAng;(angle<MinAng) angle = MinAng;(MRcmd==CMD_SET_FAST) // Быстрый поворот

{ = goalAng = angle;((int)num, (int)angle);

}// Медленный поворот = angle;;CMD_SET_VECT_SLOW:CMD_SET_VECT_FAST:(MRlen>fxPWM_CH_NUM) MRlen = fxPWM_CH_NUM;(i=0;i<MRlen;i++)

{= MRDATA;(angle>MaxAng) angle = MaxAng;(angle<MinAng) angle = MinAng;(MRcmd==CMD_SET_VECT_FAST) // Быстрый поворот

{ = goalAng = angle;(i, (int)angle);

}// Медленный поворот=angle;

};CMD_SET_REG: // Установить значение регистра= MRDATA;(num<0 || num>=MAX_REGIST) break; = MRDATA;;

//----------------------------------------------------

// Для версии SlaveXPod

//----------------------------------------------------CMD_STOP: // Останов всех сервоприводов();;CMD_SET_INT: // Прервать выполнение операции по состоянию датчика. Аргументы: <маска датчиков> <значение>_MASK = MRDATA;_VALUE = MRDATA;; Перейти на страницу: 8 9 10 11 12 13 14 15 16 17

Популярное:

Изучение объекта и синтеза регулятора систем управления Теория автоматического управления (ТАУ) - одна из наиболее важных общетехнических дисциплин. В ее рамках предлагаются универсальные подходы, которые можно применять при создании систем управления объектами различной природы. В состав любой системы автоматического управления (САУ) - системы, работающей без участия человека, обяза ...