improving timer1 and usart0 drivers