That one is easy, let the user decide which timer to use and provide a suitable default.
Sounds like a good idea,which one would be a reasonable default?
TMR0, TMR1, or TMR2 depending upon a variety of factors for which you have not provided remotely enough information to narrow the choices.
Ok, the basic idea is to implement a duplex communications library. There is one rx and one tx line. The data would be send out manchester encoded at a speed selectable by the user. In general the speed would be between 1kBaud and 20kBaud. I want this to be a general purpose library, so the rx and tx pin should be freely assignable and not tied to INT0, INT1 or any of the OCnx pins. The timer would be used to both sample the rx pin and set the tx pin. From the programming requirements, any timer would work.
I will probably first prototype this on an Atmega32u4, since I like having the direct USB connection, but I want to make this available as an arduino library, and I was wondering if there are any conventions, which timers should be used by addon libraries (e.g. "TMR0 is used by the milis() function, don't use that one" or "the servo library already uses TMR2",...)