#include #include #define DCSBIOS_IRQ_SERIAL #include LiquidCrystal_PCF8574 lcd(0x27); // set the LCD address to 0x27 for a 16 chars and 2 line display int show; void onUhf100mhzSelChange(char* newValue) { lcd.setCursor(0, 1); lcd.print(newValue); } DcsBios::StringBuffer<1> uhf100mhzSelStrBuffer(0x1178, onUhf100mhzSelChange); void onUhf10mhzSelChange(unsigned int newValue) { lcd.setCursor(1, 1); lcd.print(newValue); } DcsBios::IntegerBuffer uhf10mhzSelBuffer(0x1170, 0x3c00, 10, onUhf10mhzSelChange); void onUhf1mhzSelChange(unsigned int newValue) { lcd.setCursor(2, 1); lcd.print(newValue); } DcsBios::IntegerBuffer uhf1mhzSelBuffer(0x1178, 0x0f00, 8, onUhf1mhzSelChange); void onUhfPresetChange(char* newValue) { lcd.setCursor(6, 0); lcd.print(newValue); } DcsBios::StringBuffer<2> uhfPresetBuffer(0x1188, onUhfPresetChange); void onUhfPoint1mhzSelChange(unsigned int newValue) { lcd.setCursor(4, 1); lcd.print(newValue); } DcsBios::IntegerBuffer uhfPoint1mhzSelBuffer(0x1178, 0xf000, 12, onUhfPoint1mhzSelChange); void onUhfPoint25SelChange(char* newValue) { lcd.setCursor(5, 1); lcd.print(newValue); lcd.setCursor(3, 1); lcd.print("."); } DcsBios::StringBuffer<2> uhfPoint25SelStrBuffer(0x117a, onUhfPoint25SelChange); DcsBios::RotaryEncoder uhf100mhzSel("UHF_100MHZ_SEL", "DEC", "INC", 2, 3); DcsBios::RotaryEncoder uhf10mhzSel("UHF_10MHZ_SEL", "DEC", "INC", 4, 5); DcsBios::RotaryEncoder uhf1mhzSel("UHF_1MHZ_SEL", "DEC", "INC", 6, 7); DcsBios::RotaryEncoder uhfPoint1mhzSel("UHF_POINT1MHZ_SEL", "DEC", "INC", 8, 9); DcsBios::RotaryEncoder uhfPoint25Sel("UHF_POINT25_SEL", "DEC", "INC", 10, 11); DcsBios::RotaryEncoder uhfPresetSel("UHF_PRESET_SEL", "DEC", "INC", 12, 13); void setup() { lcd.begin(16, 2); DcsBios::setup(); } void loop() { DcsBios::loop(); lcd.setBacklight(10); }