ATxmega Core
Loading...
Searching...
No Matches
hwbp_core.h
Go to the documentation of this file.
1#ifndef _HWBP_CORE_H_
2#define _HWBP_CORE_H_
3#include <avr/io.h>
4
5
6
7// Define if not defined
8#ifndef bool
9 #define bool uint8_t
10#endif
11#ifndef true
12 #define true 1
13 #define false 0
14#endif
15
16typedef struct {
17 uint32_t second;
18 uint16_t usecond;
20
23
27
31
35
40
47
48
53
60
61
63bool core_read_app_register(uint8_t add, uint8_t type);
65bool core_write_app_register(uint8_t add, uint8_t type, uint8_t * content, uint16_t n_elements);
67bool hwbp_read_common_reg(uint8_t add, uint8_t type);
69bool hwbp_write_common_reg(uint8_t add, uint8_t type, uint8_t * content, uint16_t n_elements);
70
71
72/************************************************************************/
73/* Register RESET_APP */
74/************************************************************************/
77
80
81
82/************************************************************************/
83/* Register CONFIG */
84/************************************************************************/
89
98
105
111bool core_clock_to_lock(void);
113bool core_clock_to_unlock(void);
114
115
118 const uint16_t who_am_i,
119 const uint8_t hwH,
120 const uint8_t hwL,
121 const uint8_t fwH,
122 const uint8_t fwL,
123 const uint8_t assembly,
124 uint8_t *pointer_to_app_regs,
125 const uint16_t app_mem_size_to_save,
126 const uint8_t num_of_app_registers,
127 const uint8_t *device_name,
128 const bool device_is_able_to_repeat_clock,
129 const bool device_is_able_to_generate_clock,
130 const uint8_t default_timestamp_offset
131 );
132
139
142
143
145void core_func_update_user_timestamp(uint32_t seconds, uint16_t useconds);
146
148void core_func_read_user_timestamp(uint32_t *seconds, uint16_t *useconds);
149
152
154void core_func_send_event(uint8_t add, bool use_core_timestamp);
155
160
161
162
163
172
173
174
175#endif /* _HWBP_CORE_H_ */
void core_callback_t_after_exec(void)
Called after execute the timer interrupts.
bool core_save_all_registers_to_eeprom(void)
Used to save all registers to non-volatile memory.
Definition hwbp_core.c:1438
bool core_bool_device_is_synchronized(void)
Return "true" if the device is synchronized.
Definition hwbp_core.c:1641
bool hwbp_read_common_reg(uint8_t add, uint8_t type)
Read from a common register.
Definition hwbp_core.c:1224
bool core_clock_to_unlock(void)
Used to unlock the timestamp register.
Definition hwbp_core.c:1522
void core_callback_initialize_hardware(void)
bool hwbp_write_common_reg_CONFIG(void *a)
Write to common register CONFIG.
Definition hwbp_core.c:1529
void core_func_start_core(const uint16_t who_am_i, const uint8_t hwH, const uint8_t hwL, const uint8_t fwH, const uint8_t fwL, const uint8_t assembly, uint8_t *pointer_to_app_regs, const uint16_t app_mem_size_to_save, const uint8_t num_of_app_registers, const uint8_t *device_name, const bool device_is_able_to_repeat_clock, const bool device_is_able_to_generate_clock, const uint8_t default_timestamp_offset)
It is mandatory that this function is the first of the application code.
Definition hwbp_core.c:256
bool core_bool_is_visual_enabled(void)
Return "true" if the LEDs can be ON.
Definition hwbp_core.c:1626
void core_callback_clock_to_lock(void)
Called when the timestamp lock is changed to locked.
void core_callback_visualen_to_off(void)
Called when the application can turn on the visual indicators.
bool hwbp_write_common_reg_RESET_APP(void *a)
Write to common register RESET_APP.
Definition hwbp_core.c:1443
void core_func_catastrophic_error_detected(void)
Definition hwbp_core.c:449
uint16_t core_func_read_R_TIMESTAMP_MICRO(void)
Used to get the content of register R_TIMESTAMP_MICRO.
Definition hwbp_core.c:1603
void core_callback_visualen_to_on(void)
Called when the application must turn off all the visual indicators.
void core_callback_reset_registers(void)
void hwbp_read_common_reg_CONFIG(void)
Read from common register CONFIG.
Definition hwbp_core.c:1527
void core_callback_clock_to_repeater(void)
Called when the application should configure the hardware to repeat the harp timestamp clock input.
void core_callback_clock_to_unlock(void)
Called when the timestamp lock is changed to unlocked.
void core_func_send_event(uint8_t add, bool use_core_timestamp)
Used to send an Event.
Definition hwbp_core.c:1215
void core_callback_t_1ms(void)
Called every millisecond.
bool core_write_app_register(uint8_t add, uint8_t type, uint8_t *content, uint16_t n_elements)
Write to an application register.
void core_callback_t_before_exec(void)
Called before execute the timer interrupts.
void core_func_mark_user_timestamp(void)
Used to save the current timestamp.
Definition hwbp_core.c:1015
bool core_bool_device_is_generator(void)
Used to know if the device is generating the harp timestamp clock.
Definition hwbp_core.c:1499
void core_callback_catastrophic_error_detected(void)
bool core_bool_speed_mode_is_in_use(void)
Return "true" if the device is in Speed Mode.
Definition hwbp_core.c:1631
bool core_device_to_clock_repeater(void)
Used to set the device as a repeater.
Definition hwbp_core.c:1507
void core_callback_clock_to_generator(void)
Called when the application should configure the hardware to generate the harp timestamp clock.
bool core_bool_device_is_active(void)
Return "true" if the device is in Active Mode.
Definition hwbp_core.c:1636
void core_callback_t_500us(void)
Called 500 microseconds after the "void core_callback_t_1ms(void)".
void core_callback_device_to_speed(void)
When the device goes to Speed Mode.
bool core_read_app_register(uint8_t add, uint8_t type)
Read from an application register.
bool hwbp_write_common_reg(uint8_t add, uint8_t type, uint8_t *content, uint16_t n_elements)
Write to an common register.
Definition hwbp_core.c:1270
void core_func_update_user_timestamp(uint32_t seconds, uint16_t useconds)
Used to create a specific timestamp that can be used when sending Events.
Definition hwbp_core.c:1003
bool core_bool_device_is_repeater(void)
Used to know if the device is repeating the harp timestamp clock.
Definition hwbp_core.c:1495
uint32_t core_func_read_R_TIMESTAMP_SECOND(void)
Used to get the content of register R_TIMESTAMP_SECOND.
Definition hwbp_core.c:1598
void core_callback_registers_were_reinitialized(void)
void core_callback_device_to_standby(void)
When the device goes to Standby Mode.
void core_callback_define_clock_default(void)
Used to define the clock direction default of the device.
void core_callback_t_new_second(void)
Called every time a new second starts.
bool core_bool_clock_is_locked(void)
Used to check if the timestamp register is locked.
Definition hwbp_core.c:1503
bool core_clock_to_lock(void)
Used to lock the timestamp register.
Definition hwbp_core.c:1517
void core_callback_device_to_active(void)
When the device goes to Active Mode.
bool core_device_to_clock_generator(void)
Used to set the device as a generator.
Definition hwbp_core.c:1512
void core_func_leave_speed_mode_and_go_to_standby_mode(void)
Used to leave the speed mode.
Definition hwbp_core.c:1612
void core_func_read_user_timestamp(uint32_t *seconds, uint16_t *useconds)
Used to read the current user timestamps.
Definition hwbp_core.c:1009
Definition hwbp_core.h:16
uint16_t usecond
Definition hwbp_core.h:18
uint32_t second
Definition hwbp_core.h:17