I wired up a rotary encoder to my tester. I then tried to compile v1.18m firmware with the rotary encoder option (HW_ENCODER) but without the frequency counter option (HW_FREQ_COUNTER). When I executed make I got the following error:
extras.c: In function ‘SquareWave_SignalGenerator’:
extras.c:335:34: error: ‘T1_Prescaler_table’ undeclared (first use in this function)
Prescaler = MEM_read_word(&T1_Prescaler_table[Index]);
^
After investigating the problem, I think it's due to the following code segments in variables.h:
#if defined (HW_FREQ_COUNTER) || defined (SW_SIGNAL_GEN)
/* Timer1 prescalers and corresponding bitmasks */
const uint16_t T1_Prescaler_table[] MEM_TEXT = {1, 8, 64, 256, 1024};
const uint8_t T1_Bitmask_table[] MEM_TEXT = {(1 << CS10), (1 << CS11), (1 << CS11) | (1 << CS10), (1 << CS12), (1 << CS12) | (1 << CS10)};
#endif
#if defined (HW_FREQ_COUNTER) || defined (SW_SIGNAL_GEN)
/* Timer1 prescalers and corresponding bitmasks */
extern const uint16_t T1_Prescaler_table[];
extern const uint8_t T1_Bitmask_table[];
#endif
Since HW_FREQ_COUNTER is not defined, then SW_SIGNAL_GEN needs to be defined in order to create the tables. However, there is no mention of SW_SIGNAL_GEN anywhere else in the code. I believe the two instances of SW_SIGNAL_GEN should be changed to SW_SQUAREWAVE. When I made these changes the code compiled without errors and my tester appears to be functioning properly with it.
P.S. If there's somewhere other than this thread where it would be more appropriate to submit bug reports and discuss software issues, please let me know.