From: Martin Mares Date: Tue, 7 Aug 2018 20:35:09 +0000 (+0200) Subject: SSR: A simple test X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=76c96139bd9ce06554117a350f5de0000393c466;p=home-hw.git SSR: A simple test --- diff --git a/ssr/Src/main.c b/ssr/Src/main.c index 19fe3c7..3a3f034 100644 --- a/ssr/Src/main.c +++ b/ssr/Src/main.c @@ -133,15 +133,40 @@ int main(void) /* USER CODE BEGIN WHILE */ while (1) { - if (rx_packet_state == 1 && !tx_packet_state) + static byte led_state; + if (led_state) + { + LL_GPIO_SetOutputPin(LED_GPIO_Port, LED_Pin); + LL_GPIO_SetOutputPin(SSR1_GPIO_Port, SSR1_Pin); + LL_GPIO_SetOutputPin(SSR2_GPIO_Port, SSR2_Pin); + LL_GPIO_SetOutputPin(SSR3_GPIO_Port, SSR3_Pin); + LL_GPIO_SetOutputPin(SSR4_GPIO_Port, SSR4_Pin); + } + else { - static byte led_state; - if (led_state) - LL_GPIO_SetOutputPin(LED_GPIO_Port, LED_Pin); - else - LL_GPIO_ResetOutputPin(LED_GPIO_Port, LED_Pin); - led_state ^= 1; + LL_GPIO_ResetOutputPin(LED_GPIO_Port, LED_Pin); + static byte xxx; + switch (xxx) + { + case 0: + LL_GPIO_ResetOutputPin(SSR1_GPIO_Port, SSR1_Pin); + break; + case 1: + LL_GPIO_ResetOutputPin(SSR2_GPIO_Port, SSR2_Pin); + break; + case 2: + LL_GPIO_ResetOutputPin(SSR3_GPIO_Port, SSR3_Pin); + break; + case 3: + LL_GPIO_ResetOutputPin(SSR4_GPIO_Port, SSR4_Pin); + break; + } + xxx = (xxx+1) % 4; + } + led_state ^= 1; + if (rx_packet_state == 1 && !tx_packet_state) + { tx_packet_state = 1; put_u32_be(tx_packet, 42); usb_ep_send(&usb, 0x82, tx_packet, 12); @@ -151,7 +176,8 @@ int main(void) // debug_printf("Counter = %d\n", cnt); - __WFI(); + //__WFI(); + LL_mDelay(1000); /* USER CODE END WHILE */ @@ -330,11 +356,11 @@ static void MX_GPIO_Init(void) LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOB); LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA); - /**/ - LL_GPIO_ResetOutputPin(LED_GPIO_Port, LED_Pin); + /* LED output is OC, active low, defaults to high */ + LL_GPIO_SetOutputPin(LED_GPIO_Port, LED_Pin); - /**/ - LL_GPIO_ResetOutputPin(GPIOB, SSR3_Pin|SSR4_Pin|SSR1_Pin|SSR2_Pin); + /* SSR outputs are OC, active low, default to high */ + LL_GPIO_SetOutputPin(GPIOB, SSR3_Pin|SSR4_Pin|SSR1_Pin|SSR2_Pin); /**/ GPIO_InitStruct.Pin = LED_Pin;