Файл: Системы управления робототехническими средствами.docx

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 406

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


// Установка номеров контактов

#define SwitchPinNumber1 17 // P1.17

#define SwitchPinNumber2 18 // P1.18

#define SwitchPinNumber3 19 // P1.19

#define SwitchPinNumber4 20 // P1. 20

#define LedPinNumber1 28 // P1.28

#define LedPinNumber2 29 // P1.29

#define LedPinNumber3 30 // P1.30

#define LedPinNumber4 31 // P1.31

AD0CR_setup = (CLKDIV << 8) - BURST_MODE_OFF - PowerUP; // Настройка режима АЦП

#define CLKDIV (15-1)

#define BURST_MODE_OFF (0 << 16) // 1 для включения и 0 для выключения

#define PowerUP (1 << 21)

PWMTCR = 0x02; // Сброс PWMTCR

PWMPR = 0x1D; // Установка PWM со значением предварительного делителя

PWMMR0 = 20000; // Сброс при совпадении MR0

PWMMR4 = 0; PWMMR2 = 0; PWMMR3 = 0; PWMMR5 = 0;

PWMMCR = 0x00000002; // Сброс при совпадении MR0

PWMLER = 0x7C; // Разрешение защелки для PWM2, PWM4, PWM4 и PWM5

PWMTCR = 0x09; // Включить ШИМ и счетчик

PWMPCR = 0x7C00; // Включение PWM2, PWM4, PWM4 и PWM5, ШИМ с одним фронтом

switchStatus1 = (IOPIN1 >> SwitchPinNumber1) & 0x01; // Выбор серводвигателя для вращения с помощью кнопок

if (switchStatus1 == 1)

{

IOPIN1 = (1 < AD0CR = AD0CR_setup - SEL_AD01; // Настраиваем АЦП для канала 1

AD0CR - = START_NOW; // Начинаем новое преобразование с АЦП1

while ((AD0DR1 & ADC_DONE) == 0) // Проверяем преобразование АЦП

{

convert1 = (AD0DR1 >> 6) & 0x3ff; // Получить значение АЦП

result1 = map (convert1,0,1023,0,2450); // Преобразование значений АЦП в зависимости от продолжительности включения ШИМ

PWMMR5 = result1; // Установить значение Duty Cylce на PWM5

PWMLER = 0x20; // Включить PWM5

delay_ms (2);

}

} else

{

IOPIN1 = (0 < 1)

}