implementing soft usart: added RX state
timer 2: simplification
implementing soft usart + timer 0 revamp
timer 0: flexible configuration