Вт май 14, 2019 08:21:12
if (k>400000) {
GPIO_WriteReverse(GPIOC, GPIO_PIN_7); //GPIOС->ODR ^= (uint8_t)GPIO_PIN_7;
k=0;
}
else k++;
Вт май 14, 2019 08:37:33
Вт май 14, 2019 10:09:48
Вт май 14, 2019 10:14:34
Вт май 14, 2019 10:16:39
Вт май 14, 2019 21:01:32
while (1)
{
( void )eMBPoll( );
if (usRegHoldingBuf[4]==0) {
usRegHoldingBuf[2]=!GPIO_ReadInputPin(GPIOC, GPIO_PIN_3); //опрос входов
usRegHoldingBuf[3]=!GPIO_ReadInputPin(GPIOC, GPIO_PIN_4);
}
if (usRegHoldingBuf[2]==1 || usRegHoldingBuf[4]==2) //команда вниз
{
GPIO_WriteHigh(GPIOD, GPIO_PIN_3);
POLfl=true;
Delay(10000);
GPIO_WriteHigh(GPIOD, GPIO_PIN_2);
}
if (usRegHoldingBuf[3]==1 || (usRegHoldingBuf[4]==1)) //команда вверх
{
GPIO_WriteLow(GPIOD, GPIO_PIN_3);
POLfl=false;
Delay(10000);
GPIO_WriteHigh(GPIOD, GPIO_PIN_2);
}
if (usRegHoldingBuf[2]==0 && usRegHoldingBuf[3]==0 && usRegHoldingBuf[4]==0) //стоп
{
GPIO_WriteLow(GPIOD, GPIO_PIN_2);
usRegHoldingBuf[2]=0;
usRegHoldingBuf[3]=0;
Delay(5000);
}
if (POL != POLfl)
{
POL=POLfl;
usRegHoldingBuf[5]=POL;
}
///////////////////////////////////////////////////////
if ((usRegHoldingBuf[0]==0) || (usRegHoldingBuf[0]>0xF7)) {
usRegHoldingBuf[0]=ADR;
}
if (usRegHoldingBuf[1]>5) {
usRegHoldingBuf[1]=BR;
}
if ((usRegHoldingBuf[0]!=ADR) || (usRegHoldingBuf[1]!=BR)) {
FLASH_Unlock(FLASH_MEMTYPE_DATA); // Разблокируем флеш память
ADR=usRegHoldingBuf[0]; // Записываем значение переменной
BR=usRegHoldingBuf[1];
FLASH_Lock(FLASH_MEMTYPE_DATA); // Блокируем флеш память
Delay(5000);
eStatus = eMBInit( MB_RTU, usRegHoldingBuf[0], 1, (usRegHoldingBuf[1]+1)*9600, MB_PAR_NONE );
eStatus = eMBEnable( );
}
if (k==255) {
GPIO_WriteReverse(GPIOC, GPIO_PIN_7);
k=0;
}
else k++;
}
}
Вт май 14, 2019 21:33:07
Вт май 14, 2019 23:56:14
Ср май 15, 2019 00:17:45
while(1)
{
if (k > 254)
{
GPIO_WriteReverse(GPIOC, GPIO_PIN_7);
k=0;
}
else k++;
}
Ср май 15, 2019 08:04:48
Reflector писал(а):Т.е. у тебя такой код мигает с периодом 1.5 сек?
Ср май 15, 2019 09:03:47
Ср май 15, 2019 19:28:10
/* TIM4 configuration:
- TIM4CLK is set to 16 MHz, the TIM4 Prescaler is equal to 128 so the TIM1 counter
clock used is 16 MHz / 128 = 125 000 Hz
- With 125 000 Hz we can generate time base:
max time base is 2.048 ms if TIM4_PERIOD = 255 --> (255 + 1) / 125000 = 2.048 ms
min time base is 0.016 ms if TIM4_PERIOD = 1 --> ( 1 + 1) / 125000 = 0.016 ms
--> 16us
- In this example we need to generate a time base equal to 50us
so TIM4_PERIOD = (0.00005 * 125000 - 1) = 5 */
/* Time base configuration */
TIM4_TimeBaseInit(TIM4_PRESCALER_128, (5*usTim1Timerout50us));