uint8_t ds3234_read(uint8_t addr) { uint8_t out; gpio_clear(RTCCS_PORT, RTCCS_PIN); clock_out(addr & 0x7F); out = clock_in(); gpio_set(RTCCS_PORT, RTCCS_PIN); return out; }
inline void exec_slice(void) { int8_t i; void (*slot_ptr)(void); for(i=0; i<NUMBER_OF_ITEMS_PER_SLOT; i++) { slot_ptr = pgm_read_ptr(&g_sched_list[g_next_slice][i]); if (slot_ptr != NULL) { g_next_item = i; (*slot_ptr)(); clock_in(); } } }
static inline uint16_t wait_clock_hi(uint16_t us) { while (!clock_in() && us) { asm(""); _delay_us(1); us--; } return us; }