My friend and I fried the 328 on our APM and replaced it with an ATmega88 I had lying around. However, when I tried to flash this new chip, the PPM encoder hex from the repository (r638) didn't seem to work (to be expected; it's a different chip). I recompiled the code but that didn't work either so I looked around for what could be wrong and found what seem to be 3 issues. However, I'm using a pretty non-standard configuration, so I didn't want to post them as Issues on Google Code. Are my changes below correct, implying that the PPMEncoder in the repository is wrong?
1) Changed F_CPU to 16Mhz (was 8Mhz in the repository)
2) Changed RC_PPM_OUTPUT_TYPE to POSITIVE PULSE  (was NEGATIVE PULSE  in the repository)
3) Changed RC_MUX_MAX to 3500 (1750*2)
4) Changed RC_MUX_REVERSE to reverse 
Change 1) was because the crystal on the board is a 16 MHz crystal, right? I'm not sure how the project would work with 8 Mhz as it currently is in the repository. Change 2) was because most radios are positive pulse, and my positive pulse radios work with my APM boards straight from SparkFun. Changes 3) and 4) were because first, it doesn't appear that the units of RC_MUX_MAX are actually microseconds (all the other microsecond constants are converted to timer counts and then the converted values are used) and second, hardware manual is supposed to engage at pulse lengths longer than 1750us, not shorter than 1250us (http://code.google.com/p/ardupilot-mega/wiki/RC