Programming Microcontrollers in C by Ted Van Sickle & Ted Vansickle