Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

PMP4

.docx
Скачиваний:
5
Добавлен:
06.06.2018
Размер:
18.46 Кб
Скачать

ГУАП

КАФЕДРА № 43

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

Доцент, к.т.н.

А.А. Ключарев

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ

Исследование таймера

по курсу: ПРОГРАММИРОВАНИЕ МИКРОПРОЦЕССОРОВ

РАБОТУ ВЫПОЛНИЛ

подпись, дата

инициалы, фамилия

Санкт-Петербург 2017

int main(void)

{

uint16_t period = 999;

uint8_t flag1 = 0;

uint8_t flag = 0;

uint8_t flag2 = 0;

int Stop_Time=0;

float Q=0.1;

int Polarity=1;

uint32_t start_Time1;

uint32_t start_Time2;

uint32_t time_delta;

HAL_Init();

SystemClock_Config();

MX_GPIO_Init();

MX_TIM3_Init();

HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);

//__HAL_TIM_SET_AUTORELOAD(&htim3,freaq);

TIM3->CCR1 = dlit;

while (1)

{

if(HAL_GetTick()>Stop_Time)

Q=Q+0.008;

if (Q>0.8)

{

Q=0;

}

HAL_Delay(50);

__HAL_TIM_SET_AUTORELOAD(&htim3, period);

if (Polarity==1)

{

TIM3->CCR1=period*(1-Q);

}

else

{

TIM3->CCR1=period*Q;

}

if (HAL_GPIO_ReadPin(GPIOA,B1_Pin) == 1)

{

HAL_Delay(100);

if (HAL_GPIO_ReadPin(GPIOA,B1_Pin) == 1)

{

if(flag1==0 && flag==0)

{

flag1 = 1;

flag = 1;

start_Time1 = HAL_GetTick();

}

else

{

if(flag1==1 && flag==0)

{

flag2 = 1;

flag = 1;

start_Time2 = HAL_GetTick();

}

}

}

}

else

{

flag = 0;

time_delta = HAL_GetTick();

if(time_delta - start_Time1 >=400 && flag1==1 && flag2==0)

{

flag1=0;

flag2=0;

Stop_Time=HAL_GetTick()+20000;

}

if(flag1==1 && flag2==1)

{

flag1=0;

flag2=0;

period= period-91;

if(period<360)

{

period=999;

if (Polarity==1)

{

Polarity=0;

}

else

{

Polarity=1;

}

}

}

}

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]