From: K.Ohta Date: Tue, 13 Aug 2013 17:05:46 +0000 (+0900) Subject: [UI] Add UpDOwn on calling user-frequency (22chs or any). X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=43906197599039e378c46ab49bb0a9b040e2676c;p=openi2cradio%2FOpenI2CRadio.git [UI] Add UpDOwn on calling user-frequency (22chs or any). --- diff --git a/helps.c b/helps.c index 1b837ce..d624044 100644 --- a/helps.c +++ b/helps.c @@ -56,7 +56,7 @@ const char *setup_helpstr[14] = { 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", diff --git a/menu.h b/menu.h index 3eb9537..bb0fb2f 100644 --- a/menu.h +++ b/menu.h @@ -98,6 +98,7 @@ typedef struct { int backlight_long; int backlight_level; unsigned int ui_idlecount; + unsigned char memorynum; _memoryfreq_t memoryfreqs[USER_MEMORY_NUM]; } __radioset_t; diff --git a/menu_defs.c b/menu_defs.c index 7c2068f..d58e3ab 100644 --- a/menu_defs.c +++ b/menu_defs.c @@ -96,43 +96,43 @@ unsigned char scanflag; 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) diff --git a/menu_memoryfreq.c b/menu_memoryfreq.c index d2e9377..c1663dc 100644 --- a/menu_memoryfreq.c +++ b/menu_memoryfreq.c @@ -38,10 +38,11 @@ void call_freqbank(unsigned char num) 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; @@ -85,19 +86,101 @@ void on_call_userfreq(void) 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 diff --git a/menu_memoryfreq.h b/menu_memoryfreq.h index b254e7e..ead8971 100644 --- a/menu_memoryfreq.h +++ b/menu_memoryfreq.h @@ -37,6 +37,7 @@ extern void call_freqbank(unsigned char num); 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 } diff --git a/ui_updown.c b/ui_updown.c index 42ce1fc..1cca676 100644 --- a/ui_updown.c +++ b/ui_updown.c @@ -48,6 +48,7 @@ #include "eeprom.h" #include "ioports.h" #include "menu.h" +#include "menu_memoryfreq.h" #include "power.h" #include "adc_int.h" @@ -212,7 +213,8 @@ void setfreq_updown(unsigned char ctlword) toggle_amfm(); break; case charcode_b: - set_volume(); +// set_volume(); + on_updown_userfreq(); break; case charcode_c: // Scan