Code cosmetics, added missing void statement to empty parameter of
functions
This commit is contained in:
parent
208d26be89
commit
5168afa16e
@ -8,21 +8,25 @@
|
|||||||
#include "device.h"
|
#include "device.h"
|
||||||
#include "nfc.h"
|
#include "nfc.h"
|
||||||
|
|
||||||
static void flush_rx()
|
static void flush_rx(void)
|
||||||
{
|
{
|
||||||
while(LL_SPI_IsActiveFlag_RXNE(SPI1) != 0)
|
while(LL_SPI_IsActiveFlag_RXNE(SPI1) != 0)
|
||||||
{
|
{
|
||||||
LL_SPI_ReceiveData8(SPI1);
|
LL_SPI_ReceiveData8(SPI1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static void wait_for_tx()
|
|
||||||
|
|
||||||
|
static void wait_for_tx(void)
|
||||||
{
|
{
|
||||||
// while (LL_SPI_IsActiveFlag_BSY(SPI1) == 1)
|
// while (LL_SPI_IsActiveFlag_BSY(SPI1) == 1)
|
||||||
// ;
|
// ;
|
||||||
while(LL_SPI_GetTxFIFOLevel(SPI1) != LL_SPI_TX_FIFO_EMPTY)
|
while(LL_SPI_GetTxFIFOLevel(SPI1) != LL_SPI_TX_FIFO_EMPTY)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
static void wait_for_rx()
|
|
||||||
|
|
||||||
|
static void wait_for_rx(void)
|
||||||
{
|
{
|
||||||
while(LL_SPI_IsActiveFlag_RXNE(SPI1) == 0)
|
while(LL_SPI_IsActiveFlag_RXNE(SPI1) == 0)
|
||||||
;
|
;
|
||||||
@ -270,7 +274,7 @@ void ams_print_int1(uint8_t int0)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
int ams_init()
|
int ams_init(void)
|
||||||
{
|
{
|
||||||
LL_GPIO_SetPinMode(SOLO_AMS_CS_PORT,SOLO_AMS_CS_PIN,LL_GPIO_MODE_OUTPUT);
|
LL_GPIO_SetPinMode(SOLO_AMS_CS_PORT,SOLO_AMS_CS_PIN,LL_GPIO_MODE_OUTPUT);
|
||||||
LL_GPIO_SetOutputPin(SOLO_AMS_CS_PORT,SOLO_AMS_CS_PIN);
|
LL_GPIO_SetOutputPin(SOLO_AMS_CS_PORT,SOLO_AMS_CS_PIN);
|
||||||
@ -292,7 +296,7 @@ int ams_init()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ams_configure()
|
void ams_configure(void)
|
||||||
{
|
{
|
||||||
// Should not be used during passive operation.
|
// Should not be used during passive operation.
|
||||||
uint8_t block[4];
|
uint8_t block[4];
|
||||||
|
@ -39,8 +39,8 @@ typedef union
|
|||||||
#define SELECT() LL_GPIO_ResetOutputPin(SOLO_AMS_CS_PORT,SOLO_AMS_CS_PIN)
|
#define SELECT() LL_GPIO_ResetOutputPin(SOLO_AMS_CS_PORT,SOLO_AMS_CS_PIN)
|
||||||
#define UNSELECT() LL_GPIO_SetOutputPin(SOLO_AMS_CS_PORT,SOLO_AMS_CS_PIN)
|
#define UNSELECT() LL_GPIO_SetOutputPin(SOLO_AMS_CS_PORT,SOLO_AMS_CS_PIN)
|
||||||
|
|
||||||
int ams_init();
|
int ams_init(void);
|
||||||
void ams_configure();
|
void ams_configure(void);
|
||||||
|
|
||||||
void ams_read_buffer(uint8_t * data, int len);
|
void ams_read_buffer(uint8_t * data, int len);
|
||||||
void ams_write_buffer(uint8_t * data, int len);
|
void ams_write_buffer(uint8_t * data, int len);
|
||||||
|
@ -61,12 +61,13 @@ static uint8_t master_secret[64];
|
|||||||
static uint8_t transport_secret[32];
|
static uint8_t transport_secret[32];
|
||||||
|
|
||||||
|
|
||||||
void crypto_sha256_init()
|
void crypto_sha256_init(void)
|
||||||
{
|
{
|
||||||
sha256_init(&sha256_ctx);
|
sha256_init(&sha256_ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void crypto_sha512_init() {
|
void crypto_sha512_init(void)
|
||||||
|
{
|
||||||
cf_sha512_init(&sha512_ctx);
|
cf_sha512_init(&sha512_ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,7 +80,7 @@ void crypto_load_master_secret(uint8_t * key)
|
|||||||
memmove(transport_secret, key+64, 32);
|
memmove(transport_secret, key+64, 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
void crypto_reset_master_secret()
|
void crypto_reset_master_secret(void)
|
||||||
{
|
{
|
||||||
memset(master_secret, 0, 64);
|
memset(master_secret, 0, 64);
|
||||||
memset(transport_secret, 0, 32);
|
memset(transport_secret, 0, 32);
|
||||||
@ -107,7 +108,8 @@ void crypto_sha256_final(uint8_t * hash)
|
|||||||
sha256_final(&sha256_ctx, hash);
|
sha256_final(&sha256_ctx, hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
void crypto_sha512_final(uint8_t * hash) {
|
void crypto_sha512_final(uint8_t * hash)
|
||||||
|
{
|
||||||
// NB: there is also cf_sha512_digest
|
// NB: there is also cf_sha512_digest
|
||||||
cf_sha512_digest_final(&sha512_ctx, hash);
|
cf_sha512_digest_final(&sha512_ctx, hash);
|
||||||
}
|
}
|
||||||
@ -183,14 +185,14 @@ void crypto_sha256_hmac_final(uint8_t * key, uint32_t klen, uint8_t * hmac)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void crypto_ecc256_init()
|
void crypto_ecc256_init(void)
|
||||||
{
|
{
|
||||||
uECC_set_rng((uECC_RNG_Function)ctap_generate_rng);
|
uECC_set_rng((uECC_RNG_Function)ctap_generate_rng);
|
||||||
_es256_curve = uECC_secp256r1();
|
_es256_curve = uECC_secp256r1();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void crypto_ecc256_load_attestation_key()
|
void crypto_ecc256_load_attestation_key(void)
|
||||||
{
|
{
|
||||||
static uint8_t _key [32];
|
static uint8_t _key [32];
|
||||||
memmove(_key, (uint8_t*)ATTESTATION_KEY_ADDR, 32);
|
memmove(_key, (uint8_t*)ATTESTATION_KEY_ADDR, 32);
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
#define LOW_FREQUENCY 1
|
#define LOW_FREQUENCY 1
|
||||||
#define HIGH_FREQUENCY 0
|
#define HIGH_FREQUENCY 0
|
||||||
|
|
||||||
void wait_for_usb_tether();
|
void wait_for_usb_tether(void);
|
||||||
|
|
||||||
|
|
||||||
uint32_t __90_ms = 0;
|
uint32_t __90_ms = 0;
|
||||||
@ -48,12 +48,12 @@ static bool isLowFreq = 0;
|
|||||||
static bool _up_disabled = false;
|
static bool _up_disabled = false;
|
||||||
|
|
||||||
// #define IS_BUTTON_PRESSED() (0 == (LL_GPIO_ReadInputPort(SOLO_BUTTON_PORT) & SOLO_BUTTON_PIN))
|
// #define IS_BUTTON_PRESSED() (0 == (LL_GPIO_ReadInputPort(SOLO_BUTTON_PORT) & SOLO_BUTTON_PIN))
|
||||||
static int is_physical_button_pressed()
|
static int is_physical_button_pressed(void)
|
||||||
{
|
{
|
||||||
return (0 == (LL_GPIO_ReadInputPort(SOLO_BUTTON_PORT) & SOLO_BUTTON_PIN));
|
return (0 == (LL_GPIO_ReadInputPort(SOLO_BUTTON_PORT) & SOLO_BUTTON_PIN));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int is_touch_button_pressed()
|
static int is_touch_button_pressed(void)
|
||||||
{
|
{
|
||||||
int is_pressed = (tsc_read_button(0) || tsc_read_button(1));
|
int is_pressed = (tsc_read_button(0) || tsc_read_button(1));
|
||||||
#ifndef IS_BOOTLOADER
|
#ifndef IS_BOOTLOADER
|
||||||
@ -69,7 +69,7 @@ static int is_touch_button_pressed()
|
|||||||
|
|
||||||
int (*IS_BUTTON_PRESSED)() = is_physical_button_pressed;
|
int (*IS_BUTTON_PRESSED)() = is_physical_button_pressed;
|
||||||
|
|
||||||
static void edge_detect_touch_button()
|
static void edge_detect_touch_button(void)
|
||||||
{
|
{
|
||||||
static uint8_t last_touch = 0;
|
static uint8_t last_touch = 0;
|
||||||
uint8_t current_touch = 0;
|
uint8_t current_touch = 0;
|
||||||
@ -92,12 +92,13 @@ static void edge_detect_touch_button()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void device_disable_up(bool disable) {
|
void device_disable_up(bool disable)
|
||||||
|
{
|
||||||
_up_disabled = disable;
|
_up_disabled = disable;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Timer6 overflow handler. happens every ~90ms.
|
// Timer6 overflow handler. happens every ~90ms.
|
||||||
void TIM6_DAC_IRQHandler()
|
void TIM6_DAC_IRQHandler(void)
|
||||||
{
|
{
|
||||||
// timer is only 16 bits, so roll it over here
|
// timer is only 16 bits, so roll it over here
|
||||||
TIM6->SR = 0;
|
TIM6->SR = 0;
|
||||||
@ -142,7 +143,7 @@ void USB_IRQHandler(void)
|
|||||||
HAL_PCD_IRQHandler(&hpcd);
|
HAL_PCD_IRQHandler(&hpcd);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t millis()
|
uint32_t millis(void)
|
||||||
{
|
{
|
||||||
return (((uint32_t)TIM6->CNT) + (__90_ms * 90));
|
return (((uint32_t)TIM6->CNT) + (__90_ms * 90));
|
||||||
}
|
}
|
||||||
@ -160,7 +161,7 @@ void device_set_status(uint32_t status)
|
|||||||
__device_status = status;
|
__device_status = status;
|
||||||
}
|
}
|
||||||
|
|
||||||
int device_is_button_pressed()
|
int device_is_button_pressed(void)
|
||||||
{
|
{
|
||||||
return IS_BUTTON_PRESSED();
|
return IS_BUTTON_PRESSED();
|
||||||
}
|
}
|
||||||
@ -171,12 +172,13 @@ void delay(uint32_t ms)
|
|||||||
while ((millis() - time) < ms)
|
while ((millis() - time) < ms)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
void device_reboot()
|
|
||||||
|
void device_reboot(void)
|
||||||
{
|
{
|
||||||
NVIC_SystemReset();
|
NVIC_SystemReset();
|
||||||
}
|
}
|
||||||
|
|
||||||
void device_init_button()
|
void device_init_button(void)
|
||||||
{
|
{
|
||||||
if (tsc_sensor_exists())
|
if (tsc_sensor_exists())
|
||||||
{
|
{
|
||||||
@ -226,12 +228,12 @@ void device_init(int argc, char *argv[])
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int device_is_nfc()
|
int device_is_nfc(void)
|
||||||
{
|
{
|
||||||
return _NFC_status;
|
return _NFC_status;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wait_for_usb_tether()
|
void wait_for_usb_tether(void)
|
||||||
{
|
{
|
||||||
while (USBD_OK != CDC_Transmit_FS((uint8_t*)"tethered\r\n", 10) )
|
while (USBD_OK != CDC_Transmit_FS((uint8_t*)"tethered\r\n", 10) )
|
||||||
;
|
;
|
||||||
@ -242,7 +244,7 @@ void wait_for_usb_tether()
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
void usbhid_init()
|
void usbhid_init(void)
|
||||||
{
|
{
|
||||||
if (!isLowFreq)
|
if (!isLowFreq)
|
||||||
{
|
{
|
||||||
@ -292,12 +294,12 @@ void ctaphid_write_block(uint8_t * data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void usbhid_close()
|
void usbhid_close(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void main_loop_delay()
|
void main_loop_delay(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -307,13 +309,14 @@ static uint32_t winkt1 = 0;
|
|||||||
#ifdef LED_WINK_VALUE
|
#ifdef LED_WINK_VALUE
|
||||||
static uint32_t winkt2 = 0;
|
static uint32_t winkt2 = 0;
|
||||||
#endif
|
#endif
|
||||||
void device_wink()
|
|
||||||
|
void device_wink(void)
|
||||||
{
|
{
|
||||||
wink_time = 10;
|
wink_time = 10;
|
||||||
winkt1 = 0;
|
winkt1 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void heartbeat()
|
void heartbeat(void)
|
||||||
{
|
{
|
||||||
static int state = 0;
|
static int state = 0;
|
||||||
static uint32_t val = (LED_MAX_SCALER - LED_MIN_SCALER)/2;
|
static uint32_t val = (LED_MAX_SCALER - LED_MIN_SCALER)/2;
|
||||||
@ -382,7 +385,7 @@ void authenticator_read_backup_state(AuthenticatorState * a)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Return 1 yes backup is init'd, else 0
|
// Return 1 yes backup is init'd, else 0
|
||||||
int authenticator_is_backup_initialized()
|
int authenticator_is_backup_initialized(void)
|
||||||
{
|
{
|
||||||
uint8_t header[16];
|
uint8_t header[16];
|
||||||
uint32_t * ptr = (uint32_t *)flash_addr(STATE2_PAGE);
|
uint32_t * ptr = (uint32_t *)flash_addr(STATE2_PAGE);
|
||||||
@ -499,7 +502,7 @@ uint32_t ctap_atomic_count(int sel)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void device_manage()
|
void device_manage(void)
|
||||||
{
|
{
|
||||||
#if NON_BLOCK_PRINTING
|
#if NON_BLOCK_PRINTING
|
||||||
int i = 10;
|
int i = 10;
|
||||||
@ -525,7 +528,7 @@ void device_manage()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static int handle_packets()
|
static int handle_packets(void)
|
||||||
{
|
{
|
||||||
static uint8_t hidmsg[HID_PACKET_SIZE];
|
static uint8_t hidmsg[HID_PACKET_SIZE];
|
||||||
memset(hidmsg,0, sizeof(hidmsg));
|
memset(hidmsg,0, sizeof(hidmsg));
|
||||||
@ -561,6 +564,7 @@ static int wait_for_button_activate(uint32_t wait)
|
|||||||
} while (!IS_BUTTON_PRESSED());
|
} while (!IS_BUTTON_PRESSED());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int wait_for_button_release(uint32_t wait)
|
static int wait_for_button_release(uint32_t wait)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
@ -654,7 +658,7 @@ int ctap_user_verification(uint8_t arg)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ctap_reset_rk()
|
void ctap_reset_rk(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
printf1(TAG_GREEN, "resetting RK \r\n");
|
printf1(TAG_GREEN, "resetting RK \r\n");
|
||||||
@ -664,7 +668,7 @@ void ctap_reset_rk()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t ctap_rk_size()
|
uint32_t ctap_rk_size(void)
|
||||||
{
|
{
|
||||||
return RK_NUM_PAGES * (PAGE_SIZE / sizeof(CTAP_residentKey));
|
return RK_NUM_PAGES * (PAGE_SIZE / sizeof(CTAP_residentKey));
|
||||||
}
|
}
|
||||||
@ -726,7 +730,7 @@ void ctap_overwrite_rk(int index,CTAP_residentKey * rk)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void boot_st_bootloader()
|
void boot_st_bootloader(void)
|
||||||
{
|
{
|
||||||
__disable_irq();
|
__disable_irq();
|
||||||
|
|
||||||
@ -738,7 +742,7 @@ void boot_st_bootloader()
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
void boot_solo_bootloader()
|
void boot_solo_bootloader(void)
|
||||||
{
|
{
|
||||||
LL_IWDG_Enable(IWDG);
|
LL_IWDG_Enable(IWDG);
|
||||||
|
|
||||||
|
@ -14,12 +14,12 @@
|
|||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "device.h"
|
#include "device.h"
|
||||||
|
|
||||||
static void flash_lock()
|
static void flash_lock(void)
|
||||||
{
|
{
|
||||||
FLASH->CR |= (1U<<31);
|
FLASH->CR |= (1U<<31);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void flash_unlock()
|
static void flash_unlock(void)
|
||||||
{
|
{
|
||||||
if (FLASH->CR & FLASH_CR_LOCK)
|
if (FLASH->CR & FLASH_CR_LOCK)
|
||||||
{
|
{
|
||||||
|
@ -699,7 +699,7 @@ void SystemClock_Config_LF20(void)
|
|||||||
SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_PWREN);
|
SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_PWREN);
|
||||||
}
|
}
|
||||||
|
|
||||||
void init_usb()
|
void init_usb(void)
|
||||||
{
|
{
|
||||||
// enable USB power
|
// enable USB power
|
||||||
SET_BIT(PWR->CR2, PWR_CR2_USV);
|
SET_BIT(PWR->CR2, PWR_CR2_USV);
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#ifndef _INIT_H_
|
#ifndef _INIT_H_
|
||||||
#define _INIT_H_
|
#define _INIT_H_
|
||||||
|
|
||||||
void init_usb();
|
void init_usb(void);
|
||||||
void init_gpio(void);
|
void init_gpio(void);
|
||||||
void init_debug_uart(void);
|
void init_debug_uart(void);
|
||||||
void init_pwm(void);
|
void init_pwm(void);
|
||||||
|
@ -57,10 +57,11 @@ void TIM6_DAC_IRQHandler()
|
|||||||
__90_ms += 1;
|
__90_ms += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t millis()
|
uint32_t millis(void)
|
||||||
{
|
{
|
||||||
return (((uint32_t)TIM6->CNT) + (__90_ms * 90));
|
return (((uint32_t)TIM6->CNT) + (__90_ms * 90));
|
||||||
}
|
}
|
||||||
|
|
||||||
void _Error_Handler(char *file, int line)
|
void _Error_Handler(char *file, int line)
|
||||||
{
|
{
|
||||||
while(1)
|
while(1)
|
||||||
|
@ -359,7 +359,7 @@ static uint32_t WTX_timer;
|
|||||||
|
|
||||||
bool WTX_process(int read_timeout);
|
bool WTX_process(int read_timeout);
|
||||||
|
|
||||||
void WTX_clear()
|
void WTX_clear(void)
|
||||||
{
|
{
|
||||||
WTX_sent = false;
|
WTX_sent = false;
|
||||||
WTX_fail = false;
|
WTX_fail = false;
|
||||||
@ -374,7 +374,7 @@ bool WTX_on(int WTX_time)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WTX_off()
|
bool WTX_off(void)
|
||||||
{
|
{
|
||||||
WTX_timer = 0;
|
WTX_timer = 0;
|
||||||
|
|
||||||
@ -398,7 +398,7 @@ bool WTX_off()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WTX_timer_exec()
|
void WTX_timer_exec(void)
|
||||||
{
|
{
|
||||||
// condition: (timer on) or (not expired[300ms])
|
// condition: (timer on) or (not expired[300ms])
|
||||||
if ((WTX_timer == 0) || WTX_timer + 300 > millis())
|
if ((WTX_timer == 0) || WTX_timer + 300 > millis())
|
||||||
@ -856,7 +856,7 @@ void nfc_process_iblock(uint8_t * buf, int len)
|
|||||||
static uint8_t ibuf[1024];
|
static uint8_t ibuf[1024];
|
||||||
static int ibuflen = 0;
|
static int ibuflen = 0;
|
||||||
|
|
||||||
void clear_ibuf()
|
void clear_ibuf(void)
|
||||||
{
|
{
|
||||||
ibuflen = 0;
|
ibuflen = 0;
|
||||||
memset(ibuf, 0, sizeof(ibuf));
|
memset(ibuf, 0, sizeof(ibuf));
|
||||||
@ -969,7 +969,7 @@ void nfc_process_block(uint8_t * buf, unsigned int len)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int nfc_loop()
|
int nfc_loop(void)
|
||||||
{
|
{
|
||||||
uint8_t buf[32];
|
uint8_t buf[32];
|
||||||
AMS_DEVICE ams;
|
AMS_DEVICE ams;
|
||||||
|
@ -6,9 +6,9 @@
|
|||||||
#include "apdu.h"
|
#include "apdu.h"
|
||||||
|
|
||||||
// Return number of bytes read if any.
|
// Return number of bytes read if any.
|
||||||
int nfc_loop();
|
int nfc_loop(void);
|
||||||
|
|
||||||
int nfc_init();
|
int nfc_init(void);
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
@ -61,6 +61,6 @@ typedef enum
|
|||||||
APP_FIDO,
|
APP_FIDO,
|
||||||
} APPLETS;
|
} APPLETS;
|
||||||
|
|
||||||
void WTX_timer_exec();
|
void WTX_timer_exec(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#define ELECTRODE_0 TSC_GROUP2_IO1
|
#define ELECTRODE_0 TSC_GROUP2_IO1
|
||||||
#define ELECTRODE_1 TSC_GROUP2_IO2
|
#define ELECTRODE_1 TSC_GROUP2_IO2
|
||||||
|
|
||||||
void tsc_init()
|
void tsc_init(void)
|
||||||
{
|
{
|
||||||
LL_GPIO_InitTypeDef GPIO_InitStruct;
|
LL_GPIO_InitTypeDef GPIO_InitStruct;
|
||||||
// Enable TSC clock
|
// Enable TSC clock
|
||||||
@ -74,7 +74,7 @@ void tsc_set_electrode(uint32_t channel_ids)
|
|||||||
TSC->IOCCR = (channel_ids);
|
TSC->IOCCR = (channel_ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
void tsc_start_acq()
|
void tsc_start_acq(void)
|
||||||
{
|
{
|
||||||
TSC->CR &= ~(TSC_CR_START);
|
TSC->CR &= ~(TSC_CR_START);
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ void tsc_start_acq()
|
|||||||
TSC->CR |= TSC_CR_START;
|
TSC->CR |= TSC_CR_START;
|
||||||
}
|
}
|
||||||
|
|
||||||
void tsc_wait_on_acq()
|
void tsc_wait_on_acq(void)
|
||||||
{
|
{
|
||||||
while ( ! (TSC->ISR & TSC_FLAG_EOA) )
|
while ( ! (TSC->ISR & TSC_FLAG_EOA) )
|
||||||
;
|
;
|
||||||
@ -117,7 +117,7 @@ uint32_t tsc_read_button(uint32_t index)
|
|||||||
return tsc_read(1) < 45;
|
return tsc_read(1) < 45;
|
||||||
}
|
}
|
||||||
|
|
||||||
int tsc_sensor_exists()
|
int tsc_sensor_exists(void)
|
||||||
{
|
{
|
||||||
static uint8_t does = 0;
|
static uint8_t does = 0;
|
||||||
if (does) return 1;
|
if (does) return 1;
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
void tsc_init();
|
void tsc_init(void);
|
||||||
|
|
||||||
int tsc_sensor_exists();
|
int tsc_sensor_exists(void);
|
||||||
|
|
||||||
// Read button0 or button1
|
// Read button0 or button1
|
||||||
// Returns 1 if pressed, 0 if not.
|
// Returns 1 if pressed, 0 if not.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user