Mood_lamp
hal.h
Go to the documentation of this file.
1 
25 #ifndef __HAL_H__
26 #define __HAL_H__
27 
28 #include <stm8s.h>
29 
43 #define HAL_GPIO_PINS_MASK 0x1C
44 
45 void gpio_init();
46 
48 
56 #define HAL_CLK_HSI_DIV_1_OUTPUT 0x00
57 
58 void clk_init();
59 
61 
69 void pwm_init();
70 void set_rgbw_output_value(uint8_t channel, uint16_t value);
71 
73 
81 #define HAL_EEPROM_UNBLOCK_CODE_1 ((uint8_t) 0xAE)
82 #define HAL_EEPROM_UNBLOCK_CODE_2 ((uint8_t) 0x56)
83 #define HAL_EEPROM_BLOCK_CODE ((uint8_t) 0x08)
84 #define HAL_EEPROM_START_ADDRESS ((uint16_t) 0x4000)
85 #define HAL_EEPROM_END_ADDRESS ((uint16_t) 0x427F)
86 #define HAL_EEPROM_READ_BYTE(ADDRESS) (*(PointerAttr uint8_t *) ((MemoryAddressCast) (ADDRESS)))
87 #define HAL_EEPROM_WRITE_BYTE(ADDRESS,DATA) do{*(PointerAttr uint8_t*) ((MemoryAddressCast) (ADDRESS)) = (uint8_t)(DATA);}while(0)
88 #define HAL_EEPROM_READ_WORD(ADDRESS) ((((uint16_t) HAL_EEPROM_READ_BYTE(ADDRESS)) << 8) + HAL_EEPROM_READ_BYTE((ADDRESS) + 1))
89 #define HAL_EEPROM_WRITE_WORD(ADDRESS,DATA) do{HAL_EEPROM_WRITE_BYTE((ADDRESS), (DATA) >> 8);HAL_EEPROM_WRITE_BYTE((ADDRESS) + 1, (DATA));}while(0)
90 
91 void eeprom_init();
92 uint16_t get_saved_xorshift_value();
93 void save_xorshift_value(uint16_t value);
94 void eeprom_deinit();
95 
97 
99 
100 #endif /* __HAL_H__ */
void clk_init()
MCU clock initialization.
Definition: hal.c:54
uint16_t get_saved_xorshift_value()
Extracts random number generator initialization value from EEPROM memory.
Definition: hal.c:141
void eeprom_init()
EEPROM memory initialization.
Definition: hal.c:124
void pwm_init()
PWM timer initialization.
Definition: hal.c:69
void eeprom_deinit()
EEPROM memory deinitialization.
Definition: hal.c:170
void save_xorshift_value(uint16_t value)
Saves random number generator initialization value into EEPROM memory.
Definition: hal.c:149
void set_rgbw_output_value(uint8_t channel, uint16_t value)
PWM level changing.
Definition: hal.c:87
void gpio_init()
GPIO initialization.
Definition: hal.c:36