https://sisoog.com/2017/07/13/c-program-optimization-tips-and-tricks-for-avr-microcontroller-part-1/