const char *mainmenu_helpstr[14] = {
"Help", "F=exit any=continue",
"0: Setup", "1: Band",
- "3: Freq", "5: "
+ "3: Freq", ""
"4: Call user", "6: Set user",
"7: Power Off", "8: Volume",
"9: Width", "a: AM/FM",
int backlight_long;
int backlight_level;
unsigned int ui_idlecount;
+ unsigned char memorynum;
_memoryfreq_t memoryfreqs[USER_MEMORY_NUM];
} __radioset_t;
void setdefault(void)
{
char i;
- __radioset_t *p = &setup;
//amfreq = 954;
//fmfreq = 8000; // 10KHz order.
- p->amband = AKC6955_BAND_MW2;
- p->fmband = AKC6955_BAND_FM2;
- p->am_mode3k = 0xff;
- p->fm = 0;
- p->am_userbandnum = 0;
- p->fm_userbandnum = 0;
- p->lowboost = 0xff;
- p->threshold_amcnr = 0;
- p->threshold_fmcnr = 0;
- p->threshold_fmstereo = 0;
- p->threshold_width = 0;
+ setup.amband = AKC6955_BAND_MW2;
+ setup.fmband = AKC6955_BAND_FM2;
+ setup.am_mode3k = 0xff;
+ setup.fm = 0;
+ setup.am_userbandnum = 0;
+ setup.fm_userbandnum = 0;
+ setup.lowboost = 0xff;
+ setup.threshold_amcnr = 0;
+ setup.threshold_fmcnr = 0;
+ setup.threshold_fmstereo = 0;
+ setup.threshold_width = 0;
for(i = 0; i < USER_BAND_NUM; i++){
- p->am_usrbands[i].start = 0x19;
- p->am_usrbands[i].stop = 0x32;
+ setup.am_usrbands[i].start = 0x19;
+ setup.am_usrbands[i].stop = 0x32;
}
for(i = 0; i < USER_BAND_NUM; i++){
- p->fm_usrbands[i].start = 0x19;
- p->fm_usrbands[i].stop = 0x32;
+ setup.fm_usrbands[i].start = 0x19;
+ setup.fm_usrbands[i].stop = 0x32;
}
for(i =0; i < AKC6955_BAND_AMEND; i++){
- p->amfreq_bank[i] = ((ambands[i].end - ambands[i].start) / 2) + ambands[i].start;
+ setup.amfreq_bank[i] = ((ambands[i].end - ambands[i].start) / 2) + ambands[i].start;
}
for(i =0; i < AKC6955_BAND_FMEND ; i++){
- p->fmfreq_bank[i] = ((fmbands[i].end - fmbands[i].start) / 2) + fmbands[i].start;
+ setup.fmfreq_bank[i] = ((fmbands[i].end - fmbands[i].start) / 2) + fmbands[i].start;
}
+ setup.memorynum = 0x00;
for(i = 0; i < USER_MEMORY_NUM; i++) {
- p->memoryfreqs[i].band = AKC6955_BAND_MW2;
- p->memoryfreqs[i].fm = 0;
- p->memoryfreqs[i].freq = 594; // NHK1 Tokyo.
+ setup.memoryfreqs[i].band = AKC6955_BAND_MW2;
+ setup.memoryfreqs[i].fm = 0;
+ setup.memoryfreqs[i].freq = 594; // NHK1 Tokyo.
}
- p->fmfreq = p->fmfreq_bank[p->fmband];
- p->amfreq = p->amfreq_bank[p->amband];
- p->stereo = 0xff; // Auto
+ setup.fmfreq = setup.fmfreq_bank[setup.fmband];
+ setup.amfreq = setup.amfreq_bank[setup.amband];
+ setup.stereo = 0xff; // Auto
}
void valinit(void)
unsigned char _band;
unsigned char _userband;
if(num >= USER_MEMORY_NUM) return;
+
_fm = setup.memoryfreqs[num].fm;
_userband = setup.memoryfreqs[num].band;
_band = _userband & 0x1f;
- _userband = (_userband >> 5) & 0x07;
+ _userband = _userband >> 5;
if(_fm) { // AM
setup.fmband = _band;
setup.fm_userbandnum = _userband;
printstr("Mem: 00-");
print_numeric_nosupress(USER_MEMORY_NUM - 1, 2);
val = read_numeric(val, 2, 4, 1);
- if(val >= USER_MEMORY_NUM) return;
call_freqbank(val);
}
void on_set_userfreq(void)
{
unsigned int val = USER_MEMORY_NUM;
+ unsigned char n;
+ unsigned char c;
_CLS();
_LOCATE(0,0);
printstr("Set Mem: 00-");
print_numeric_nosupress(USER_MEMORY_NUM - 1, 2);
val = read_numeric(val, 2, 4, 1);
- if(val >= USER_MEMORY_NUM) return;
+ _HOME();
+ _LOCATE(0,0);
+ printstr("OK? A=OK ");
+ do {
+ n = pollkeys(pollkeybuf, 19, 1);
+ } while(n == 0);
+ c = pollkeybuf[0];
+ if(c != charcode_a) return;
set_freqbank(val);
save_eeprom();
+}
+
+void on_updown_userfreq(void)
+{
+ unsigned int _freq;
+ unsigned char _fm;
+ unsigned char _band;
+ unsigned char _userband;
+ unsigned char n;
+ unsigned char c;
+
+ _fm = setup.fm;
+ _freq = setup.amfreq;
+ _userband = setup.am_userbandnum;
+ _band = setup.amband;
+ if(_fm){
+ _userband = setup.fm_userbandnum;
+ _band = setup.fmband;
+ _freq = setup.fmfreq;
+ }
+
+ _CLS();
+ _LOCATE(0,0);
+ printstr("CH: ");
+ print_numeric_nosupress(setup.memorynum, 2);
+ update_status();
+ print_freq(1);
+ _HOME();
+ do {
+ do {
+ n = pollkeys(pollkeybuf, 19, 1);
+ } while(n == 0);
+ c = pollkeybuf[0];
+ switch(c) {
+ case charcode_8: // UP CH
+ setup.memorynum++;
+ if(setup.memorynum >= USER_MEMORY_NUM) setup.memorynum = 0;
+ call_freqbank(setup.memorynum);
+ break;
+ case charcode_2: // Down CH
+ if(setup.memorynum == 0) setup.memorynum = USER_MEMORY_NUM;
+ setup.memorynum--;
+ call_freqbank(setup.memorynum);
+ break;
+ case charcode_d: // Reset
+ if(_fm) { // AM
+ setup.fmband = _band;
+ setup.fm_userbandnum = _userband;
+ setup.fmfreq = _freq;
+ } else {
+ setup.amband = _band;
+ setup.am_userbandnum = _userband;
+ setup.amfreq = _freq;
+ }
+ akc6955_chg_fm(_fm, _freq);
+ break;
+ case charcode_5: // exit
+ case charcode_a:
+ goto _l0;
+ break;
+ default:
+ break;
+ }
+// _HOME();
+ _LOCATE(0,0);
+ printstr("CH: ");
+ print_numeric_nosupress(setup.memorynum, 2);
+ update_status();
+ print_freq(1);
+ _HOME();
+ } while(1);
+_l0:
+ _CLS();
+
}
\ No newline at end of file
extern void set_freqbank(unsigned char num);
extern void on_call_userfreq(void);
extern void on_set_userfreq(void);
+extern void on_updown_userfreq(void);
#ifdef __cplusplus
}
#include "eeprom.h"
#include "ioports.h"
#include "menu.h"
+#include "menu_memoryfreq.h"
#include "power.h"
#include "adc_int.h"
toggle_amfm();
break;
case charcode_b:
- set_volume();
+// set_volume();
+ on_updown_userfreq();
break;
case charcode_c:
// Scan