Skip to content
Snippets Groups Projects
Select Git revision
  • bca913c35ad0ca655976c72dfb8d7530340ed938
  • master default protected
  • blink_multi_rocket
  • blink_rocket
  • msgctl/gfx_rle
  • msgctl/faultscreen
  • msgctl/textbuffer_api
  • schneider/bonding
  • schneider/bootloader-update-9a0d158
  • schneider/bsec
  • rahix/bma
  • rahix/bhi
  • schleicher-test
  • schneider/schleicher-test
  • freertos-btle
  • ch3/api-speed-eval2
  • schneider/mp-for-old-bl
  • ch3/leds-api
  • ch3/genapi-refactor
  • ch3/dual-core
  • dualcore
  • v0.0
22 results

gfx.c

Blame
  • Forked from card10 / firmware
    Source project has a limited visibility.
    • Marek's avatar
      bca913c3
      Optimize circle drawing · bca913c3
      Marek authored
      I have no idea whether this is something the compiler wouldn't
      automatically do, but it can't hurt to be explicit.
      bca913c3
      History
      Optimize circle drawing
      Marek authored
      I have no idea whether this is something the compiler wouldn't
      automatically do, but it can't hurt to be explicit.
    modules.h 1.85 KiB
    #ifndef MODULES_H
    #define MODULES_H
    
    #include "FreeRTOS.h"
    #include "semphr.h"
    
    #include <stdint.h>
    #include <stdbool.h>
    
    /* ---------- Dispatcher --------------------------------------------------- */
    void vApiDispatcher(void *pvParameters);
    extern SemaphoreHandle_t api_mutex;
    extern TaskHandle_t dispatcher_task_id;
    
    /* ---------- Hardware Init & Reset ---------------------------------------- */
    int hardware_early_init(void);
    int hardware_init(void);
    int hardware_reset(void);
    
    /* ---------- Lifecycle ---------------------------------------------------- */
    void vLifecycleTask(void *pvParameters);
    void return_to_menu(void);
    
    /* ---------- Serial ------------------------------------------------------- */
    #define SERIAL_READ_BUFFER_SIZE 128
    void vSerialTask(void *pvParameters);
    void serial_enqueue_char(char chr);
    
    /* ---------- LED Animation / Personal States ------------------------------ */
    #define PERSONAL_STATE_LED 14
    void vLedTask(void *pvParameters);
    int personal_state_enabled();
    
    /* ---------- PMIC --------------------------------------------------------- */
    /* In 1/10s */
    #define PMIC_PRESS_SLEEP           20
    #define PMIC_PRESS_POWEROFF        40
    void vPmicTask(void *pvParameters);
    
    /* ---------- BLE ---------------------------------------------------------- */
    void vBleTask(void *pvParameters);
    bool ble_shall_start(void);
    void ble_uart_write(uint8_t *pValue, uint8_t len);
    
    /* ---------- Hardware (Peripheral) Locks ---------------------------------- */
    void hwlock_init(void);
    
    enum hwlock_periph {
    	HWLOCK_I2C = 0,
    	HWLOCK_ADC,
        HWLOCK_LED,
    	_HWLOCK_MAX,
    };
    
    int hwlock_acquire(enum hwlock_periph p, TickType_t wait);
    int hwlock_release(enum hwlock_periph p);
    
    /* ---------- Display ------------------------------------------------------ */
    /* Forces an unlock of the display. Only to be used in Epicardium */
    void disp_forcelock();
    
    #endif /* MODULES_H */