оригинальные (вар 1)
#define IA4421_RECEIVERCNT_CMD 0x9080
#define IA4421_DATAFILTER_CMD 0xC22F
исправленные мной (вар 2)
#define MY_SI4421_RECEIVER_CNTR_CMD (\
CMD_RECEIVER_CONTROL +\
PIN16_VDI_OUTPUT +\
VDI_SLOW +\
RX_BANDWIDTH_400KHZ +\
LNA_GAIN_0_DB +\
RSSI_DET_THRESHOLD_M79 )
#define MY_SI4421_DATA_FILTER_CMD (\
CMD_DATA_FILTER +\
CLOCK_RECOVERY_AUTO +\
DIGITAL_FILTER +\
DQD_THRESHOLD_MAX )
тем более у AVR запись одного и тогде числа в регистр может означать совершенно разные результаты - любит атмел некуоторые биты перебрасывать - переносимость не кчерту
Сейчас вообще практикую
TIMER0_PRESCALLER_1;
TIMER0_MODE_CTC_TOP_OCR;
TIMER0_OCRA_PIN_TOGGLE;
TIMER0_OCRA_REG = 15;
ICR4 = 20;
TIMER4_OCRA_REG = 10;
TIMER4_OCRA_PIN_CLEAR;
TIMER4_MODE_FAST_PWM_TOP_ICR;
TIMER4_EXTERNAL_CLK_RISING;
ICR5 = 20;
TIMER5_OCRA_REG = 10;
TIMER5_OCRA_PIN_CLEAR;
TIMER5_MODE_FAST_PWM_TOP_ICR;
TIMER5_EXTERNAL_CLK_RISING;
и всё получается правильно при портировании