/*************************************************************************//** *****************************************************************************/ void HAL_TimerDelay(uint16_t us) { PRAGMA(diag_suppress=Pa082); #if F_CPU == 4000000 us >>= 1; #elif F_CPU == 8000000 // Empty #elif F_CPU == 12000000 us += (us >> 1); #elif F_CPU == 16000000 us <<= 1; #elif F_CPU == 32000000 us <<= 2; #endif TCC1.CCB = TCC1.CNT + us; if (TCC1.CCB > TCC1.PER) TCC1.CCB -= TCC1.PER; TCC1.INTFLAGS = TC1_CCBIF_bm; while (0 == (TCC1.INTFLAGS & TC1_CCBIF_bm)); PRAGMA(diag_default=Pa082); }
void HAL_TimerDelay(uint16_t us) { PRAGMA(diag_suppress=Pa082); #if F_CPU == 4000000 // div 2 us >>= 1; #elif F_CPU == 8000000 // equal // Empty #elif F_CPU == 12000000 // us = us * 1.5 us += (us >> 1); #elif F_CPU == 16000000 // us = us * 2 us <<= 1; #elif F_CPU == 24000000 // us = us * 3 us += (us << 1); #elif F_CPU == 32000000 // us = us * 4 us <<= 2; #endif SYSTIMER.CCB = SYSTIMER.CNT + us; if(SYSTIMER.CCB > SYSTIMER.PER) SYSTIMER.CCB -= SYSTIMER.PER; halTimerDelayInt = 0; SYSTIMER.INTCTRLB = TC_CCBINTLVL_LO_gc; while(0 == halTimerDelayInt); SYSTIMER.INTCTRLB = TC_CCBINTLVL_OFF_gc; PRAGMA(diag_default=Pa082); }
/*************************************************************************//** *****************************************************************************/ void HAL_TimerDelay(uint16_t us) { PRAGMA(diag_suppress=Pa082); OCR4B = TCNT4 + us; if (OCR4B > OCR4A) OCR4B -= OCR4A; TIFR4 = (1 << OCF4B); while (0 == (TIFR4 & (1 << OCF4B))); PRAGMA(diag_default=Pa082); }
void HAL_TimerDelay(uint16_t us) { PRAGMA(diag_suppress=Pa082); OCR4B = TCNT4 + us; if (OCR4B > OCR4A) OCR4B -= OCR4A; halTimerDelayInt = 0; TIMSK4 |= (1 << OCIE4B); while (0 == halTimerDelayInt); TIMSK4 &= ~(1 << OCIE4B); PRAGMA(diag_default=Pa082); }
uint8_t HAL_UartReadByte(void) { uint8_t byte; PRAGMA(diag_suppress=Pa082) ATOMIC_SECTION_ENTER byte = rxFifo.data[rxFifo.head++]; if (rxFifo.head == rxFifo.size) rxFifo.head = 0; rxFifo.bytes--; ATOMIC_SECTION_LEAVE PRAGMA(diag_default=Pa082) return byte; }