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

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

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

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

Добавлен: 11.01.2024

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

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

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
// Установка номеров контактов#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.31AD0CR_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; // Сброс PWMTCRPWMPR = 0x1D; // Установка PWM со значением предварительного делителяPWMMR0 = 20000; // Сброс при совпадении MR0PWMMR4 = 0; PWMMR2 = 0; PWMMR3 = 0; PWMMR5 = 0;PWMMCR = 0x00000002; // Сброс при совпадении MR0PWMLER = 0x7C; // Разрешение защелки для PWM2, PWM4, PWM4 и PWM5PWMTCR = 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)}