aboutsummaryrefslogtreecommitdiffhomepage
path: root/pyecsca/codegen/hal/stm32f0
diff options
context:
space:
mode:
authorJ08nY2020-02-27 13:38:47 +0100
committerJ08nY2020-02-27 13:38:47 +0100
commit4eafe2d49fc7406861609c5af12b850741bbe5a0 (patch)
tree49355d5cce44be8bd100fa8260b3b488f15be4a5 /pyecsca/codegen/hal/stm32f0
parenta071822d9966ac150e7ed3d4efffbf3feaa500f5 (diff)
downloadpyecsca-codegen-4eafe2d49fc7406861609c5af12b850741bbe5a0.tar.gz
pyecsca-codegen-4eafe2d49fc7406861609c5af12b850741bbe5a0.tar.zst
pyecsca-codegen-4eafe2d49fc7406861609c5af12b850741bbe5a0.zip
Proper LED thingies.
Diffstat (limited to 'pyecsca/codegen/hal/stm32f0')
-rw-r--r--pyecsca/codegen/hal/stm32f0/stm32f0_hal.c40
-rw-r--r--pyecsca/codegen/hal/stm32f0/stm32f0_hal.h2
2 files changed, 40 insertions, 2 deletions
diff --git a/pyecsca/codegen/hal/stm32f0/stm32f0_hal.c b/pyecsca/codegen/hal/stm32f0/stm32f0_hal.c
index ee70dd7..613a20a 100644
--- a/pyecsca/codegen/hal/stm32f0/stm32f0_hal.c
+++ b/pyecsca/codegen/hal/stm32f0/stm32f0_hal.c
@@ -27,8 +27,7 @@ void platform_init(void)
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
- uint32_t flash_latency = 0;
- HAL_RCC_ClockConfig(&RCC_ClkInitStruct, flash_latency);
+ HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0);
#else
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI;
@@ -44,6 +43,17 @@ void platform_init(void)
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0);
#endif
+
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ GPIO_InitTypeDef GpioInit;
+ GpioInit.Pin = GPIO_PIN_13 | GPIO_PIN_14;
+ GpioInit.Mode = GPIO_MODE_OUTPUT_PP;
+ GpioInit.Pull = GPIO_NOPULL;
+ GpioInit.Speed = GPIO_SPEED_FREQ_HIGH;
+ HAL_GPIO_Init(GPIOC, &GpioInit);
+
+ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, RESET);
+ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, RESET);
}
void init_uart(void)
@@ -69,6 +79,8 @@ void init_uart(void)
HAL_UART_Init(&UartHandle);
}
+static bool trig;
+
void trigger_setup(void)
{
__HAL_RCC_GPIOA_CLK_ENABLE();
@@ -81,15 +93,23 @@ void trigger_setup(void)
HAL_GPIO_Init(GPIOA, &GpioInit);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, RESET);
+ trig = false;
}
void trigger_high(void)
{
+ trig = true;
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, SET);
}
+bool trigger_status(void)
+{
+ return trig;
+}
+
void trigger_low(void)
{
+ trig = false;
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, RESET);
}
@@ -106,3 +126,19 @@ void putch(char c)
HAL_UART_Transmit(&UartHandle, &d, 1, 5000);
}
+void led_error(unsigned int x)
+{
+ if (!x)
+ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, RESET);
+ else
+ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, SET);
+}
+
+void led_ok(unsigned int x)
+{
+ if (!x)
+ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, RESET);
+ else
+ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, SET);
+}
+
diff --git a/pyecsca/codegen/hal/stm32f0/stm32f0_hal.h b/pyecsca/codegen/hal/stm32f0/stm32f0_hal.h
index 1cbdefc..d432304 100644
--- a/pyecsca/codegen/hal/stm32f0/stm32f0_hal.h
+++ b/pyecsca/codegen/hal/stm32f0/stm32f0_hal.h
@@ -1,5 +1,6 @@
#ifndef STM32F0_HAL_H
#define STM32F0_HAL_H
+#include <stdbool.h>
void init_uart(void);
void putch(char c);
@@ -8,6 +9,7 @@ char getch(void);
void trigger_setup(void);
void trigger_low(void);
+bool trigger_status(void);
void trigger_high(void);
void led_error(unsigned int status);