Hi,
And thank you very much for your work on maintaining this library.
I needed to use the library on an atmega8 but it didn't compile. So I tried changing the MANCHESTER.cpp file to add support for the Atmega8.
I have tested it as a transmitter at 8 and 16Mhz, transmitting about half a meter.
Warning: I am not a programmer, and this is the first time I have messed with timers and such. I just thought it would be nice to at least try to fix it myself instead of just adding an issue and waiting for others to fix it... I know nothing about github, sorry, so I don't know how to do push requests (or is that pull requests) and such. So I post it here instead.
I guess what it needs is a changed timer/interrupt settings to suit the Atmega8, but timers/interrupts/clocks and all that is very new and confusing to me. However, after a couple of hours studying the source code and the datasheet for the Atmega8 I came up with this addition to the .cpp file:
#elif defined(__AVR_ATmega8__)
TCCR1A = _BV(WGM12);
#if F_CPU == 8000000UL
TCCR1B = _BV(CS12);
#elif F_CPU == 16000000UL
TCCR1B = _BV(CS12) | _BV(CS11);
#else
#error "Manchester library only supports 8mhz, 16mhz on ATMega8"
#endif
OCR1A = 4;
TIFR = _BV(OCF1A);
TIMSK = _BV(OCIE1A);
TCNT1 = 0;
#else
I just added it above the definition for the Atmega328, and to my big surprise, it seems to work.