[UI] Fix incorrect power-button(maybe)...
[UI] Fix scan screen problem.
do {
delay10tcy(8); // 10uS
a = ((ADRESH << 8) + ADRESL) & 0x03ff;
- } while(ADCON0bits.DONE == 1);
+ } while(ADCON0bits.DONE);
return a;
}
unsigned int polladc(void)
{
unsigned int a;
- if(ADCON0bits.DONE == 1){ // converting or not enable.
+ if(ADCON0bits.DONE){ // converting or not enable.
PIE1bits.ADIE = 1;
PIR1bits.ADIF = 0;
return 0xffff;
#include "idle.h"
#include "power.h"
#include "commondef.h"
+#include "menu.h"
void akc6955_writecmd(unsigned char reg, unsigned char data)
{
} while(comp == 0x00);
f.byte = akc6955_readcmd(AKC6955_POWER);
band = 0;
- if(f.b6 == 0){
+ if(!f.b6){
akc6955_get_amband(band);
}
stop = fmbands[band].end;
}
ch = freq - 3000;
- ch = (ch * 4) / 10;
+ ch = (ch << 2) / 10;
} else {
akc6955_get_amband(band);
// if(band >= AKC6955_BAND_AMEND) band = AKC6955_BAND_AMEND - 1;
__bitops_t c;
c.byte = akc6955_readcmd(AKC6955_VOLUME);
- c.b0 = 0;
- if(flag != 0) {
- c.b0 = 1; //
+ c.b0 = 1;
+ if(flag == 0) {
+ c.b0 = 0; //
}
akc6955_writecmd(AKC6955_VOLUME, c.byte);
}
{
__bitops_t c;
c.byte = akc6955_readcmd(AKC6955_VOLUME);
- c.b1 = 0;
- if(flag != 0) {
- c.b1 = 1;
+ c.b1 = 1;
+ if(flag == 0) {
+ c.b1 = 0;
}
akc6955_writecmd(AKC6955_VOLUME, c.byte);
}
{
__bitops_t c;
c.byte = akc6955_readcmd(AKC6955_STEREO);
- c.b3 = 0;
- if(flag != 0) {
- c.b3 = 1;
+ c.b3 = 1;
+ if(flag == 0) {
+ c.b3 = 0;
}
akc6955_writecmd(AKC6955_STEREO, c.byte);
}
return batt;
}
+void akc6955_set_thresh_fmstereo(unsigned char a)
+{
+ unsigned char b;
+ a = a & 0x03;
+ threshold_fmstereo = a;
+ b = akc6955_readcmd(AKC6955_THRESH) & 0xfc;
+ akc6955_writecmd(AKC6955_THRESH, a | b);
+}
+
+void akc6955_set_thresh_width(unsigned char a)
+{
+ unsigned char b;
+ a = a & 0x03;
+ threshold_width = a;
+ a = a << 2; // << 2
+ b = akc6955_readcmd(AKC6955_THRESH) & 0xf3;;
+ akc6955_writecmd(AKC6955_THRESH, a | b);
+}
+
+void akc6955_set_thresh_amcnr(unsigned char a)
+{
+ unsigned char b;
+ a = a & 0x03;
+ threshold_amcnr = a;
+ a = a << 4; // << 4
+ b = akc6955_readcmd(AKC6955_THRESH) & 0xcf;
+ akc6955_writecmd(AKC6955_THRESH, a | b);
+}
+
+void akc6955_set_thresh_fmcnr(unsigned char a)
+{
+ unsigned char b;
+ a = a & 0x03;
+ threshold_fmcnr = a;
+ a = a << 6; // << 4
+ b = akc6955_readcmd(AKC6955_THRESH) & 0x3f;
+ akc6955_writecmd(AKC6955_THRESH, a | b);
+}
extern void akc6955_set_scanrate_fm(unsigned char rate);
extern unsigned int akc6955_get_battery(void);
extern void akc6955_set_lowboost(unsigned char flag);
+extern void akc6955_set_thresh_fmstereo(unsigned char a);
+extern void akc6955_set_thresh_fmcnr(unsigned char a);
+extern void akc6955_set_thresh_amcnr(unsigned char a);
+extern void akc6955_set_thresh_width(unsigned char a);
#define akc6955_set_fmbandwidth(bw) { \
unsigned char c = akc6955_readcmd(AKC6955_STEREO); \
return 0xff;
}
-unsigned char readbyte_eeprom(unsigned int p, unsigned int *sum)
+unsigned char readbyte_eeprom(unsigned int *p, unsigned int *sum)
{
unsigned char b;
ClrWdt();
- b = eeprom_readbyte(p);
+ b = eeprom_readbyte(*p);
*sum = calcsum_byte(*sum, b);
+ *p = *p + 1;
return b;
}
-unsigned int readword_eeprom(unsigned int p, unsigned int *sum)
+unsigned int readword_eeprom(unsigned int *p, unsigned int *sum)
{
unsigned char h,l;
unsigned int s;
// ClrWdt();
h = readbyte_eeprom(p, sum);
- l = readbyte_eeprom(p + 1, sum);
+ l = readbyte_eeprom(p, sum);
s = (h << 8) | l;
return s;
return 0xff;
}
-unsigned int writebyte_eeprom(unsigned int p, unsigned int *sum, unsigned char b)
+unsigned int writebyte_eeprom(unsigned int *p, unsigned int *sum, unsigned char b)
{
ClrWdt();
- if(eeprom_writebyte(p, b) == 0) return p; // Error
+ if(eeprom_writebyte(*p, b) == 0) return *p; // Error
*sum = calcsum_byte(*sum, b);
+ *p = *p + 1;
return 0xffff;
}
-unsigned int writeword_eeprom(unsigned int p, unsigned int *sum, unsigned int word)
+unsigned int writeword_eeprom(unsigned int *p, unsigned int *sum, unsigned int word)
{
// ClrWdt();
- if(writebyte_eeprom(p, sum, word >> 8) == 0) return p; // Error
- if(writebyte_eeprom(p + 1, sum, word & 0xff) == 0) return p + 1; // Error
+ if(writebyte_eeprom(p, sum, word >> 8) == 0) return *p; // Error
+ if(writebyte_eeprom(p, sum, word & 0xff) == 0) return *p; // Error
return 0xffff;
}
/*
* Read/Write with checksum.
*/
-extern unsigned int readword_eeprom(unsigned int p, unsigned int *sum);
-extern unsigned char readbyte_eeprom(unsigned int p, unsigned int *sum);
-extern unsigned int writeword_eeprom(unsigned int p, unsigned int *sum, unsigned int word);
-extern unsigned int writebyte_eeprom(unsigned int p, unsigned int *sum, unsigned char b);
+extern unsigned int readword_eeprom(unsigned int *p, unsigned int *sum);
+extern unsigned char readbyte_eeprom(unsigned int *p, unsigned int *sum);
+extern unsigned int writeword_eeprom(unsigned int *p, unsigned int *sum, unsigned int word);
+extern unsigned int writebyte_eeprom(unsigned int *p, unsigned int *sum, unsigned char b);
#ifdef __cplusplus
void save_eeprom(void)
{
- unsigned int p = 0;
+ unsigned int p[1];
unsigned int sum = 0x0000;
unsigned char i;
unsigned char j;
unsigned char *q;
+ *p = 0;
// Magic word
writeword_eeprom(p, &sum, 0x1298);
- p+= 2;
// amfreq
writeword_eeprom(p, &sum, amfreq);
- p+= 2;
// amfreq
writeword_eeprom(p, &sum, fmfreq);
- p+= 2;
writebyte_eeprom(p, &sum, amband);
- p++;
writebyte_eeprom(p, &sum, fmband);
- p++;
writebyte_eeprom(p, &sum, fm);
- p++;
writebyte_eeprom(p, &sum, am_mode3k);
- p++;
writebyte_eeprom(p, &sum, am_userbandnum);
- p++;
writebyte_eeprom(p, &sum, fm_userbandnum);
- p++;
-#if 0
- for(i = 0 ; i < USER_BAND_NUM; i++){
- writebyte_eeprom(p, &sum, am_usrbands[i].mode3k);
- writebyte_eeprom(p + 1, &sum, am_usrbands[i].start);
- writebyte_eeprom(p + 2, &sum, am_usrbands[i].stop);
- writeword_eeprom(p + 3, &sum, am_usrbands[i].freq);
- p += 5;
- }
- for(i = 0 ; i < USER_BAND_NUM; i++){
- writebyte_eeprom(p, &sum, fm_usrbands[i].mode3k);
- writebyte_eeprom(p + 1, &sum, fm_usrbands[i].start);
- writebyte_eeprom(p + 2, &sum, fm_usrbands[i].stop);
- writeword_eeprom(p + 3, &sum, fm_usrbands[i].freq);
- p += 5;
- }
-#else
for(j = 0; j < USER_BAND_NUM; j++){
q = (unsigned char *)&am_usrbands[j];
for(i = 0; i < sizeof(_userband_t); i++){
writebyte_eeprom(p, &sum, *q);
- p++;
q++;
}
}
q = (unsigned char *)&fm_usrbands[j];
for(i = 0; i < sizeof(_userband_t); i++){
writebyte_eeprom(p, &sum, *q);
- p++;
q++;
}
}
-#endif
amfreq_bank[amband] = amfreq;
fmfreq_bank[fmband] = fmfreq;
for(i = 0; i < 19; i++){
writeword_eeprom(p , &sum, amfreq_bank[i]);
- p += 2;
}
for(i = 0; i < 8; i++){
writeword_eeprom(p , &sum, fmfreq_bank[i]);
- p += 2;
}
writebyte_eeprom(p, &sum, threshold_amcnr);
- p++;
writebyte_eeprom(p, &sum, threshold_fmcnr);
- p++;
writebyte_eeprom(p, &sum, threshold_width);
- p++;
writebyte_eeprom(p, &sum, threshold_fmstereo);
- p++;
writebyte_eeprom(p, &sum, lowboost);
- p++;
writebyte_eeprom(p, &sum, stereo);
- p++;
writebyte_eeprom(p, &sum, volume);
- p++;
writebyte_eeprom(p, &sum, prevolume);
- p++;
writebyte_eeprom(p, &sum, fmbandwidth);
- p++;
writeword_eeprom(p, &sum, backlight_long);
- p += 2;
writeword_eeprom(p, &sum, ui_idlecount);
- p += 2;
writebyte_eeprom(p, &sum, backlight_level);
- p += 1;
// Write checksum
- eeprom_writebyte(p, sum >> 8);
- eeprom_writebyte(p + 1, sum & 0xff);
+ eeprom_writebyte(*p, sum >> 8);
+ eeprom_writebyte(*p + 1, sum & 0xff);
}
unsigned char load_eeprom(void)
{
- unsigned int p = 0;
- unsigned int sum = 0x0000;
+ unsigned int p[1];
+ unsigned int sum[1];
unsigned char i;
unsigned char *q;
unsigned char j;
unsigned int magic;
+ p[0] = 0;
+ sum[0] = 0;
// Magic word
- magic = readword_eeprom(p, &sum);
+ magic = readword_eeprom(p, sum);
if(magic != 0x1298) return 0x01; // NO MAGICWORD
- p+= 2;
// amfreq
- amfreq = readword_eeprom(p, &sum);
- p+= 2;
+ amfreq = readword_eeprom(p, sum);
// fmfreq
- fmfreq = readword_eeprom(p, &sum);
- p+= 2;
-
- amband = readbyte_eeprom(p, &sum);
- p++;
- fmband = readbyte_eeprom(p, &sum);
- p++;
- fm = readbyte_eeprom(p, &sum);
- p++;
- am_mode3k = readbyte_eeprom(p, &sum);
- p++;
- am_userbandnum = readbyte_eeprom(p, &sum);
- p++;
- fm_userbandnum = readbyte_eeprom(p, &sum);
- p++;
-#if 0
- for(i = 0 ; i < USER_BAND_NUM; i++){
- am_usrbands[i].mode3k = readbyte_eeprom(p, &sum);
- am_usrbands[i].start = readbyte_eeprom(p + 1, &sum);
- am_usrbands[i].stop = readbyte_eeprom(p + 2, &sum);
- am_usrbands[i].freq = readword_eeprom(p + 3, &sum);
- p += 5;
- }
- for(i = 0 ; i < USER_BAND_NUM; i++){
- fm_usrbands[i].mode3k = readbyte_eeprom(p, &sum);
- fm_usrbands[i].start = readbyte_eeprom(p + 1, &sum);
- fm_usrbands[i].stop = readbyte_eeprom(p + 2, &sum);
- fm_usrbands[i].freq = readword_eeprom(p + 3, &sum);
- p += 5;
- }
-#else
+ fmfreq = readword_eeprom(p, sum);
+ amband = readbyte_eeprom(p, sum);
+ fmband = readbyte_eeprom(p, sum);
+ fm = readbyte_eeprom(p, sum);
+ am_mode3k = readbyte_eeprom(p, sum);
+ am_userbandnum = readbyte_eeprom(p, sum);
+ fm_userbandnum = readbyte_eeprom(p, sum);
for(j = 0; j < USER_BAND_NUM; j++){
q = (unsigned char *)&am_usrbands[j];
for(i = 0; i < sizeof(_userband_t); i++){
- *q = readbyte_eeprom(p, &sum);
- p++;
+ *q = readbyte_eeprom(p, sum);
q++;
}
if(am_usrbands[j].mode3k != 0){
for(j = 0; j < USER_BAND_NUM; j++){
q = (unsigned char *)&fm_usrbands[j];
for(i = 0; i < sizeof(_userband_t); i++){
- *q = readbyte_eeprom(p, &sum);
- p++;
+ *q = readbyte_eeprom(p, sum);
q++;
}
fm_userband_freq[j].start = fm_usrbands[j].start * 80 + 3000;
fm_userband_freq[j].end = fm_usrbands[j].stop * 80 + 3000;
}
-#endif
amfreq = amfreq_bank[amband];
fmfreq = fmfreq_bank[fmband];
for(i = 0; i < 19; i++){
- amfreq_bank[i] = readword_eeprom(p , &sum);
- p += 2;
+ amfreq_bank[i] = readword_eeprom(p , sum);
}
for(i = 0; i < 8; i++){
- fmfreq_bank[i] = readword_eeprom(p , &sum);
- p += 2;
+ fmfreq_bank[i] = readword_eeprom(p , sum);
}
- threshold_amcnr = readbyte_eeprom(p, &sum);
- p++;
- threshold_fmcnr = readbyte_eeprom(p, &sum);
- p++;
- threshold_width = readbyte_eeprom(p, &sum);
- p++;
- threshold_fmstereo = readbyte_eeprom(p, &sum);
- p++;
- lowboost = readbyte_eeprom(p , &sum);
- p++;
- stereo = readbyte_eeprom(p , &sum);
- p++;
- volume = readbyte_eeprom(p, &sum);
- p++;
- prevolume = readbyte_eeprom(p, &sum);
- p++;
- fmbandwidth = readbyte_eeprom(p, &sum);
- p++;
- backlight_long = readword_eeprom(p, &sum);
- p += 2;
- ui_idlecount = readword_eeprom(p, &sum);
- p += 2;
- backlight_level = readbyte_eeprom(p, &sum);
- p += 1;
+ threshold_amcnr = readbyte_eeprom(p, sum);
+ threshold_fmcnr = readbyte_eeprom(p, sum);
+ threshold_width = readbyte_eeprom(p, sum);
+ threshold_fmstereo = readbyte_eeprom(p, sum);
+ lowboost = readbyte_eeprom(p , sum);
+ stereo = readbyte_eeprom(p , sum);
+ volume = readbyte_eeprom(p, sum);
+ prevolume = readbyte_eeprom(p, sum);
+ fmbandwidth = readbyte_eeprom(p, sum);
+ backlight_long = readword_eeprom(p, sum);
+ ui_idlecount = readword_eeprom(p, sum);
+ backlight_level = readbyte_eeprom(p, sum);
// Write checksum
- magic = (eeprom_readbyte(p) << 8) + eeprom_readbyte(p+1);
+ magic = (eeprom_readbyte(p[0]) << 8) + eeprom_readbyte(p[0] + 1);
- if(sum != magic) return 0x00;
+ if(sum[0] != magic) return 0x00;
return 0xff;
}
void idle(unsigned int initial)
{
-// unsigned char osccon;
- unsigned char contword;
- unsigned int i;
-
WDTCONbits.SWDTEN = 0; // Lame WDT OFF.
/* Enable IDLE */
INTCONbits.TMR0IF = 0;
INTCONbits.TMR0IE = 1; // Enable tmr0 as interrupt and clear interrupt flags.
/* Set TMR0 for interrupt*/
- /* Pre-scaler: 1/16, PSA=0(ON), TOSE=0, T0CS=0(INTERNAL), T08BIT=0(16bit), TMR0ON=1(START) */
- T0CONbits.T0PS0 = 1;
- T0CONbits.T0PS1 = 1;
- T0CONbits.T0PS2 = 1;
-#if defined(__SDCC)
-// contword = _T0PS0 | _T0PS1 | _T0PS2 | _TMR0ON; // Prescaler = 1:256.
-#else
- contword = _T0CON_T0PS0_MASK | _T0CON_T0PS1_MASK | _T0CON_T0PS2_MASK | _T0CON_TMR0ON_MASK; // Prescaler = 1:256.
-#endif //contword = _T0PS2 | _TMR0ON; // Pre-scakler is 1:32.
- //TMR0H = initial >> 8;
- i = initial;
+ /* Pre-scaler: 1/2, PSA=1(ON), TOSE=0, T0CS=0(INTERNAL), T08BIT=0(16bit), TMR0ON=1(START) */
+ /* 1Tick = 1/1000 ms*/
+ T0CON = 0b00001000; // 1/2
+// TMR0H = initial >> 8; // Write order : L->H
TMR0L = initial & 0xff;
TMR0H = initial >> 8; // Write order : L->H
T0CONbits.TMR0ON = 1; // Start
void idle_time_ms(unsigned int ms)
{
unsigned int tim;
- unsigned char upper;
+ unsigned int upper;
if(ms == 0) return;
- upper = (ms & 0xe000) >> 13;
-// unsigned int upper;
- tim = ms << 3 - ms >> 4 - ms >>3;
- tim = 65535 - tim + 1; // tim = 65536 - tim;
+ upper = (ms & 0xffc0) >> 10;
+// tim = ms * 8 - ms / 16 - ms / 8;
+ tim = (ms & 0x3f) * 1000; //
+ tim = (65535 - tim) + 1; // tim = 65536 - tim;
while(upper > 0) {
- idle(0x0000); // Upper is 65536 tick.
+ idle(65535 - 64000 + 1); // Upper is 512ms
+ upper--;
}
idle(tim);
}
// Tim = 1ms * 64 - 1ms - 0.5ms
// Tim = 0.128ms * (488 + 2.2)
// =
- idle(65535 - 488 + 4);
+ idle_time_ms(62); // 62ms
+ idle(500); // 500us
}
void idle_time_35ms(void)
{
// Tim = 35 / 0.128 = 273.44
- idle(65535 - 274 + 1);
+ idle_time_ms(35);
}
{
if(f == 0x00) {
_PORT_MUTE = 1; // 20130709 Not Mute
- idle_time_ms(200);
} else {
_PORT_MUTE = 0;
- idle_time_ms(200);
}
+ idle_time_ms(200);
}
void set_radiopower(unsigned char f)
LATC = 0x00;
ANSELC = AN_C_VAL;
TRISC = TRIS_C_VAL_O;
- lcd_backlightinit();
+ // lcd_backlightinit();
io_intcountinit();
}
#endif
PORTC = 0x00;
LATC = 0x00;
TRISC = TRIS_C_VAL_O;
- lcd_backlightinit();
+// lcd_backlightinit();
io_intcountinit();
}
#endif
INTCON3bits.INT1IE = 0;
INTCON3bits.INT2IE = 0;
- lcd_backlightinit();
+// lcd_backlightinit();
io_intcountinit();
}
#else
PORTC = 0x00;
LATC = 0x00;
TRISC = TRIS_C_VAL_O;
- lcd_backlightinit();
+// lcd_backlightinit();
io_intcountinit();
}
#endif
#endif
}
-#if 0
-unsigned char acm1602_getchar(unsigned char addr)
-{
- unsigned char b, d;
-#ifdef _LCD_IF_4BIT
- unsigned char h, l;
-
- lcd_waitbusy(addr, 0);
- d = _LCDPORT_TRIS_CONT;
- d |= _LCDPORT_READMASK; // Set mask for Tristate, direction = read.
- _LCDPORT_TRIS_CONT = d;
-
- // Recv high nibble
- b = _LCDPORT_CONT_LATCH;
- b &= ~(0xf0 | _LCDPORT_CONT_EN); // DATA=blank
- b |= (_LCDPORT_CONT_RS | _LCDPORT_CONT_RW); // RS='1", RW='1'
- _LCDPORT_CONT_LATCH = b;
- _ACM1602_TC_WAIT(); // Wait 2.5?us
-
- b |= _LCDPORT_CONT_EN;
- _LCDPORT_CONT_LATCH = b;
- _ACM1602_TC_WAIT(); // Wait 2.5?us
-
- h = _LCDPORT_DATA & 0xf0;
- _ACM1602_TC_WAIT(); // Wait 2.5?us
-
- b &= ~_LCDPORT_CONT_EN; // Disable EN
- _LCDPORT_CONT_LATCH = b;
- _ACM1602_TC_WAIT();
-
- lcd_waitbusy(addr, 0);
- // Recv Low nibble.
- d = _LCDPORT_TRIS_CONT;
- d |= _LCDPORT_READMASK; // Set mask for Tristate, direction = read.
- _LCDPORT_TRIS_CONT = d;
-
- b = _LCDPORT_CONT_LATCH;
- b &= ~(0xf0 | _LCDPORT_CONT_EN); // DATA=blank
- b |= (_LCDPORT_CONT_RS | _LCDPORT_CONT_RW); // RS='1", RW='1'
- _LCDPORT_CONT_LATCH = b;
- _ACM1602_TC_WAIT(); // Wait 2.5?us
-
- b |= _LCDPORT_CONT_EN;
- _LCDPORT_CONT_LATCH = b;
- _ACM1602_TC_WAIT(); // Wait 2.5?us
-
- l = _LCDPORT_DATA & 0xf0;
- _ACM1602_TC_WAIT(); // Wait 2.5?us
-
- b &= ~_LCDPORT_CONT_EN; // Disable EN
- _LCDPORT_CONT_LATCH = b;
- _ACM1602_TC_WAIT(); // Wait 2.5?us
-
- d = _LCDPORT_TRIS_CONT;
- d &= ~_LCDPORT_READMASK; // Set mask for Tristate, direction = write.
- _LCDPORT_TRIS_CONT = d;
-
- _ACM1602_SHORT_WAIT();
-
- d = h | (l >> 4);
- return d;
-#else
- unsigned char e;
- lcd_waitbusy(addr, 0);
- d = _LCDPORT_TRIS_DATA;
- d |= _LCDPORT_READMASK; // Set mask for Tristate, direction = read.
- _LCDPORT_TRIS_DATA = d;
-
- b = _LCDPORT_CONT_LATCH;
- b |= (_LCDPORT_CONT_RS | _LCDPORT_CONT_RW); // RW=1, RS=1
- b &= ~_LCDPORT_CONT_EN; // Clear Enable
- _LCDPORT_CONT_LATCH = b;
- _ACM1602_TC_WAIT();
-
- b |= _LCDPORT_CONT_EN; // Send character
- _LCDPORT_CONT_LATCH = b;
- _ACM1602_TC_WAIT(); // Wait 2.5?us
-
- e = _LCDPORT_DATA; // Read BYTE
- _ACM1602_TC_WAIT();
-
- b &= ~_LCDPORT_CONT_EN; // Disable EN
- _LCDPORT_CONT_LATCH = b;
-
- d = _LCDPORT_TRIS_DATA;
- d &= ~_LCDPORT_READMASK; // Clear mask for Tristate, direction = read.
- _LCDPORT_TRIS_DATA = d;
-
- _ACM1602_SHORT_WAIT(); // Wait 0.1ms
- return e;
-#endif
-}
-#endif
#endif
void acm1602_cls(unsigned char addr)
#define _ACM1602_SHORT_WAIT() delay100tcy(4)
// Wait 5ms
#define _ACM1602_LONG_WAIT() delay10ktcy(40)
-// Wait 125ms
-#define _ACM1602_LONG_LONG_WAIT() delay1mtcy(1)
+// Wait 200ms
+#define _ACM1602_LONG_LONG_WAIT() delay100ktcy(10)
+//#define _ACM1602_LONG_LONG_WAIT() idle_time_ms(125)
// Wait 5.5ms
#define _ACM1602_I2C_WAIT() delay1ktcy(44)
#else
#pragma stack 0x200 256
#pragma config FOSC=HS,FCMEN=ON,PWRT=ON,BOREN=NOSLP,BORV=27, \
- WDTEN=ON,WDTPS=32768,PBADEN=OFF,HFOFST=ON,LPT1OSC=OFF, \
+ WDTEN=ON,WDTPS=32768,PBADEN=OFF,HFOFST=OFF,LPT1OSC=OFF, \
MCLRE=ON,STVREN=ON,DEBUG=ON, \
XINST=OFF
//#pragma config CP0=OFF,CP1=OFF,CP2=OFF,CP3=OFF
#ifdef __SDCC
OSCCON = (0x80 & 0b11111100) | 0b00111000;
+// OSCCON = (0x80 & 0b11111100) | 0b00110010; // 8MHz
#else
OSCCON = (_OSCCON_IDLEN_MASK & 0b11111100 ) | 0b00111000;
#endif
power_off(0); // Save and halt on BOR.
break;
case RESET_SOFTWARE: //
- do {
- pbutton = chk_powerbutton();
- ClrWdt();
- if(pbutton == 0) power_off(0); // Button not pressed.
- } while(pbutton == 0);
+// do {
+// pbutton = chk_powerbutton();
+// ClrWdt();
+ // if(pbutton == 0) power_off(0); // Button not pressed.
+// } while(pbutton == 0);
break;
default:
break;
// printstr("OK");
lcd_setbacklight(0xff, 255);
do {
-// if(battlevel <= 408) { // 4.80*0.85
- // lowbatt();
- // }
+// set_powerlamp(0);
+ if(battlevel <= 340) { // 3.4V
+ lowbatt();
+ }
/* Main routine*/
-#if 1
- c = pollkeys(pollkeybuf, 60, 1);
+ c = pollkeys(pollkeybuf, 10, 1); // 23*10=230ms
p = 0;
while(c > 0) {
ClrWdt();
c--;
p++;
}
-#else
- c = pollkey_single();
- setfreq_updown(c);
-#endif
+// set_powerlamp(1);
// idle_time_ms(ui_idlecount);
// Putstring to LCD.
_LOCATE(0,0);
lcd_setbacklight(0x00, 0); // Turn OFF
}
update_status();
- ClrWdt();
+// ClrWdt();
update_display();
ClrWdt();
} while(1);
}
-void set_thresh_fmstereo(unsigned char a)
-{
- unsigned char b;
- a = a & 0x03;
- threshold_fmstereo = a;
- b = akc6955_readcmd(AKC6955_THRESH) & 0xfc;
- akc6955_writecmd(AKC6955_THRESH, a | b);
-}
-
-void set_thresh_width(unsigned char a)
-{
- unsigned char b;
- a = a & 0x03;
- threshold_width = a;
- a = a << 2; // << 2
- b = akc6955_readcmd(AKC6955_THRESH) & 0xf3;;
- akc6955_writecmd(AKC6955_THRESH, a | b);
-}
-
-void set_thresh_amcnr(unsigned char a)
-{
- unsigned char b;
- a = a & 0x03;
- threshold_amcnr = a;
- a = a << 4; // << 4
- b = akc6955_readcmd(AKC6955_THRESH) & 0xcf;
- akc6955_writecmd(AKC6955_THRESH, a | b);
-}
-
-void set_thresh_fmcnr(unsigned char a)
-{
- unsigned char b;
- a = a & 0x03;
- threshold_fmcnr = a;
- a = a << 6; // << 4
- b = akc6955_readcmd(AKC6955_THRESH) & 0x3f;
- akc6955_writecmd(AKC6955_THRESH, a | b);
-}
void set_stereomode(void)
{
{
unsigned char c;
_CLS();
- _LOCATE(0,0);
- printstr("Scan F/A/4/6");
+ _PUTCHAR(' ');
do {
- update_status();
- print_freq(1);
- c = pollkey_single();
- // New Scan
- if(c == charcode_6){
+ do {
+ update_status();
+ _HOME();
+// _LOCATE(0,0);
+ printstr("Scan F/A/4/6");
+ print_freq(1);
+ c = pollkeys(pollkeybuf, 20, 0); // 23*20 = 460ms
+// idle_time_ms(2000);
+ } while(c == 0);
+ // New Scan
+ if(pollkeybuf[0] == charcode_6){
scanflag = 0xff;
akc6955_do_scan(0xff);
- } else if(c == charcode_4){
+ } else if(pollkeybuf[0] == charcode_4){
scanflag = 0xff;
akc6955_do_scan(0);
- } else if(c == charcode_a){
+ } else if(pollkeybuf[0] == charcode_a){
scanflag = 0;
akc6955_abort_scan();
break;
- } else if(c == charcode_f){
+ } else if(pollkeybuf[0] == charcode_f){
break;
- } else {
- if((scanflag != 0) && (akc6955_chk_donescan() != 0)) {
- scanflag = 0;
- _HOME();
- printstr("Scan F/A/4/6");
- update_status();
- print_freq(1);
- }
- }
- _HOME();
+ }// else {
+// if((scanflag != 0) && (akc6955_chk_donescan() != 0)) {
+// scanflag = 0;
+ // }
+// }
} while(1);
_CLS();
}
}// Dummy, TBS (954KHz)
akc6955_set_power(0xff); // Power ON
akc6955_setvolume(36); // Temporally
- set_thresh_fmcnr(threshold_fmcnr);
- set_thresh_amcnr(threshold_amcnr);
- set_thresh_width(threshold_width);
- set_thresh_fmstereo(threshold_fmstereo);
+ akc6955_set_thresh_fmcnr(threshold_fmcnr);
+ akc6955_set_thresh_amcnr(threshold_amcnr);
+ akc6955_set_thresh_width(threshold_width);
+ akc6955_set_thresh_fmstereo(threshold_fmstereo);
akc6955_setvolumemode(0);
akc6955_set_lowboost(lowboost);
set_stereomode();
printstr("FM-CNR threshold:");
val = threshold_fmcnr;
val = read_numeric(val, 1, 0, 1);
- set_thresh_fmcnr((unsigned char)val);
+ akc6955_set_thresh_fmcnr((unsigned char)val);
break;
case charcode_8:
_CLS();
printstr("AM-CNR threshold:");
val = threshold_amcnr;
val = read_numeric(val, 1, 0, 1);
- set_thresh_amcnr((unsigned char)val);
+ akc6955_set_thresh_amcnr((unsigned char)val);
break;
case charcode_9:
_CLS();
printstr("Stereo threshold:");
val = threshold_fmstereo;
val = read_numeric(val, 1, 0, 1);
- set_thresh_fmstereo((unsigned char)val);
- break;
- case charcode_f:
- setup_help();
+ akc6955_set_thresh_fmstereo((unsigned char)val);
break;
case charcode_0:
menu_poweroff();
if(val > 999) val = 999;
backlight_long = val;
break;
+ case charcode_f:
+ setup_help();
+ break;
default:
break;
}
printstr("Sig width:");
val = threshold_width;
val = read_numeric(val, 1, 0, 1);
- set_thresh_width((unsigned char)val);
+ akc6955_set_thresh_width((unsigned char)val);
// Set NF
} else if(c == charcode_0){
// Setup Menu
extern void setband_direct(void);
extern void setfreq_direct(void);
extern void set_stereo(void);
- extern void set_thresh_fmstereo(unsigned char a);
- extern void set_thresh_fmcnr(unsigned char a);
- extern void set_thresh_amcnr(unsigned char a);
- extern void set_thresh_width(unsigned char a);
extern void scan_start(void);
extern void set_volume(void);
${OBJECTDIR}/ui.o: ui.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/ui.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 ui.c -o${OBJECTDIR}/ui.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 ui.c -o${OBJECTDIR}/ui.o
${OBJECTDIR}/i2c_io.o: i2c_io.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/i2c_io.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 i2c_io.c -o${OBJECTDIR}/i2c_io.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 i2c_io.c -o${OBJECTDIR}/i2c_io.o
${OBJECTDIR}/main.o: main.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/main.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 main.c -o${OBJECTDIR}/main.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 main.c -o${OBJECTDIR}/main.o
${OBJECTDIR}/idle.o: idle.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/idle.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 idle.c -o${OBJECTDIR}/idle.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 idle.c -o${OBJECTDIR}/idle.o
${OBJECTDIR}/lcd_acm1602.o: lcd_acm1602.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/lcd_acm1602.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 lcd_acm1602.c -o${OBJECTDIR}/lcd_acm1602.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 lcd_acm1602.c -o${OBJECTDIR}/lcd_acm1602.o
${OBJECTDIR}/akc6955.o: akc6955.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/akc6955.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 akc6955.c -o${OBJECTDIR}/akc6955.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 akc6955.c -o${OBJECTDIR}/akc6955.o
${OBJECTDIR}/eeprom.o: eeprom.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/eeprom.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 eeprom.c -o${OBJECTDIR}/eeprom.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 eeprom.c -o${OBJECTDIR}/eeprom.o
${OBJECTDIR}/ioports.o: ioports.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/ioports.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 ioports.c -o${OBJECTDIR}/ioports.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 ioports.c -o${OBJECTDIR}/ioports.o
${OBJECTDIR}/menu.o: menu.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/menu.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 menu.c -o${OBJECTDIR}/menu.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 menu.c -o${OBJECTDIR}/menu.o
${OBJECTDIR}/power.o: power.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/power.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 power.c -o${OBJECTDIR}/power.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 power.c -o${OBJECTDIR}/power.o
${OBJECTDIR}/adc_int.o: adc_int.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/adc_int.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 adc_int.c -o${OBJECTDIR}/adc_int.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 adc_int.c -o${OBJECTDIR}/adc_int.o
${OBJECTDIR}/menu_defs.o: menu_defs.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/menu_defs.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 menu_defs.c -o${OBJECTDIR}/menu_defs.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 menu_defs.c -o${OBJECTDIR}/menu_defs.o
${OBJECTDIR}/eepromutil.o: eepromutil.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/eepromutil.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 eepromutil.c -o${OBJECTDIR}/eepromutil.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 eepromutil.c -o${OBJECTDIR}/eepromutil.o
${OBJECTDIR}/ui_updown.o: ui_updown.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/ui_updown.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 ui_updown.c -o${OBJECTDIR}/ui_updown.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 ui_updown.c -o${OBJECTDIR}/ui_updown.o
${OBJECTDIR}/ui_display.o: ui_display.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/ui_display.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 ui_display.c -o${OBJECTDIR}/ui_display.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 ui_display.c -o${OBJECTDIR}/ui_display.o
${OBJECTDIR}/radio_getstat.o: radio_getstat.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/radio_getstat.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 radio_getstat.c -o${OBJECTDIR}/radio_getstat.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 radio_getstat.c -o${OBJECTDIR}/radio_getstat.o
${OBJECTDIR}/helps.o: helps.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/helps.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 helps.c -o${OBJECTDIR}/helps.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 helps.c -o${OBJECTDIR}/helps.o
else
${OBJECTDIR}/ui.o: ui.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/ui.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 ui.c -o${OBJECTDIR}/ui.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 ui.c -o${OBJECTDIR}/ui.o
${OBJECTDIR}/i2c_io.o: i2c_io.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/i2c_io.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 i2c_io.c -o${OBJECTDIR}/i2c_io.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 i2c_io.c -o${OBJECTDIR}/i2c_io.o
${OBJECTDIR}/main.o: main.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/main.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 main.c -o${OBJECTDIR}/main.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 main.c -o${OBJECTDIR}/main.o
${OBJECTDIR}/idle.o: idle.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/idle.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 idle.c -o${OBJECTDIR}/idle.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 idle.c -o${OBJECTDIR}/idle.o
${OBJECTDIR}/lcd_acm1602.o: lcd_acm1602.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/lcd_acm1602.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 lcd_acm1602.c -o${OBJECTDIR}/lcd_acm1602.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 lcd_acm1602.c -o${OBJECTDIR}/lcd_acm1602.o
${OBJECTDIR}/akc6955.o: akc6955.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/akc6955.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 akc6955.c -o${OBJECTDIR}/akc6955.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 akc6955.c -o${OBJECTDIR}/akc6955.o
${OBJECTDIR}/eeprom.o: eeprom.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/eeprom.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 eeprom.c -o${OBJECTDIR}/eeprom.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 eeprom.c -o${OBJECTDIR}/eeprom.o
${OBJECTDIR}/ioports.o: ioports.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/ioports.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 ioports.c -o${OBJECTDIR}/ioports.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 ioports.c -o${OBJECTDIR}/ioports.o
${OBJECTDIR}/menu.o: menu.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/menu.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 menu.c -o${OBJECTDIR}/menu.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 menu.c -o${OBJECTDIR}/menu.o
${OBJECTDIR}/power.o: power.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/power.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 power.c -o${OBJECTDIR}/power.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 power.c -o${OBJECTDIR}/power.o
${OBJECTDIR}/adc_int.o: adc_int.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/adc_int.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 adc_int.c -o${OBJECTDIR}/adc_int.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 adc_int.c -o${OBJECTDIR}/adc_int.o
${OBJECTDIR}/menu_defs.o: menu_defs.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/menu_defs.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 menu_defs.c -o${OBJECTDIR}/menu_defs.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 menu_defs.c -o${OBJECTDIR}/menu_defs.o
${OBJECTDIR}/eepromutil.o: eepromutil.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/eepromutil.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 eepromutil.c -o${OBJECTDIR}/eepromutil.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 eepromutil.c -o${OBJECTDIR}/eepromutil.o
${OBJECTDIR}/ui_updown.o: ui_updown.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/ui_updown.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 ui_updown.c -o${OBJECTDIR}/ui_updown.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 ui_updown.c -o${OBJECTDIR}/ui_updown.o
${OBJECTDIR}/ui_display.o: ui_display.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/ui_display.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 ui_display.c -o${OBJECTDIR}/ui_display.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 ui_display.c -o${OBJECTDIR}/ui_display.o
${OBJECTDIR}/radio_getstat.o: radio_getstat.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/radio_getstat.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 radio_getstat.c -o${OBJECTDIR}/radio_getstat.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 radio_getstat.c -o${OBJECTDIR}/radio_getstat.o
${OBJECTDIR}/helps.o: helps.c nbproject/Makefile-${CND_CONF}.mk
${MKDIR} ${OBJECTDIR}
${RM} ${OBJECTDIR}/helps.o
- ${MP_CC} --debug-ralloc --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 helps.c -o${OBJECTDIR}/helps.o
+ ${MP_CC} --debug-ralloc --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -c -mpic16 -p18f45k20 helps.c -o${OBJECTDIR}/helps.o
endif
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
dist/${CND_CONF}/${IMAGE_TYPE}/OPENI2CRADIO_6955.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk
${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE}
- ${MP_CC} --debug-ralloc -Wl-c -Wl-m --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -mpic16 -p18f45k20 ${OBJECTFILES} -odist/${CND_CONF}/${IMAGE_TYPE}/OPENI2CRADIO_6955.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+ ${MP_CC} --debug-ralloc -Wl-c -Wl-m --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -mpic16 -p18f45k20 ${OBJECTFILES} -odist/${CND_CONF}/${IMAGE_TYPE}/OPENI2CRADIO_6955.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
else
dist/${CND_CONF}/${IMAGE_TYPE}/OPENI2CRADIO_6955.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk
${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE}
- ${MP_CC} --debug-ralloc -Wl-c -Wl-m --use-non-free --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df libio18f45k20.lib libc18f.lib -mpic16 -p18f45k20 ${OBJECTFILES} -odist/${CND_CONF}/${IMAGE_TYPE}/OPENI2CRADIO_6955.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}
+ ${MP_CC} --debug-ralloc -Wl-c -Wl-m --use-non-free --verbose -V --pstack-model=small --obanksel=2 --optimize-cmp --optimize-df --opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib -mpic16 -p18f45k20 ${OBJECTFILES} -odist/${CND_CONF}/${IMAGE_TYPE}/OPENI2CRADIO_6955.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}
@echo Normalizing hex file
@"/opt/microchip/mplabx/mplab_ide/mplab_ide/modules/../../bin/hexmate" --edf="/opt/microchip/mplabx/mplab_ide/mplab_ide/modules/../../dat/en_msgs.txt" dist/${CND_CONF}/${IMAGE_TYPE}/OPENI2CRADIO_6955.X.${IMAGE_TYPE}.hex -odist/${CND_CONF}/${IMAGE_TYPE}/OPENI2CRADIO_6955.X.${IMAGE_TYPE}.hex
#
-#Wed Jul 24 18:41:03 JST 2013
+#Wed Jul 24 21:47:50 JST 2013
default.languagetoolchain.dir=/usr/local/bin
default.br-unifei-rmaalmeida-toolchainSDCC-SDCCtoolchain.md5=b67cce1ad75b450308d7806e430931b3
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=1c49f19f6a43b876c317e0d8d41c0854
</logicalFolder>
<sourceRootList>
<Elem>/usr/local/share/sdcc/lib/src/pic16/libc</Elem>
+ <Elem>/usr/local/share/sdcc/non-free/lib/src/pic16</Elem>
+ <Elem>/usr/local/share/sdcc/lib/src/pic16/startup</Elem>
</sourceRootList>
<projectmakefile>Makefile</projectmakefile>
<confs>
<property key="programoptions.preserveprogramrange.end" value="0x7fff"/>
<property key="programoptions.preserveprogramrange.start" value="0x0"/>
<property key="programoptions.preserveuserid" value="false"/>
+ <property key="programoptions.testmodeentrymethod" value="VPPFirst"/>
<property key="programoptions.usehighvoltageonmclr" value="false"/>
<property key="programoptions.uselvpprogramming" value="false"/>
<property key="voltagevalue" value="3.25"/>
</PICkit3PlatformTool>
+ <SDCCToolchain>
+ </SDCCToolchain>
<sdcc>
- <property key="V-show-commands-compiler" value="false"/>
+ <property key="V-show-commands-compiler" value="true"/>
<property key="Werror" value="false"/>
<property key="debug-xtra14" value="false"/>
<property key="debug-xtra16" value="false"/>
<property key="pno-banksel" value="false"/>
<property key="pstack-model" value="small"/>
<property key="use-non-free" value="true"/>
- <property key="verbose" value="false"/>
- <appendMe value="libio18f45k20.lib libc18f.lib"/>
+ <property key="verbose" value="true"/>
+ <appendMe value="--opt-code-size --mplab-comp libio18f45k20.lib libc18f.lib"/>
</sdcc>
</conf>
</confs>
#include "commondef.h"
#include "lcd_acm1602.h"
#include "power.h"
+#include "menu.h"
/*
* Detect reset condition.
if(rcon.b.RI == 0) return RESET_SOFTWARE;
if(rcon.b.TO == 0) return RESET_WDT;
if(rcon.b.PD == 0) return RESET_POWERDOWN;
- if(stkptr.b.STKOVF == 1) return RESET_STACK_FULL;
- if(stkptr.b.STKUNF == 1) return RESET_STACK_UNDER;
+ if(stkptr.b.STKOVF) return RESET_STACK_FULL;
+ if(stkptr.b.STKUNF) return RESET_STACK_UNDER;
return RESET_MCLR;
}
{
unsigned char count = 0;
char i;
- for(i = 0; i < 24; i++) { // 10*32=320ms.
- if(PORTBbits.RB4 == 0) count++;
+ for(i = 0; i < 24; i++) { // 10*24=240ms.
+ if(PORTBbits.RB4) count++;
_POWER_DELAY();
ClrWdt();
}
- if(count > 15) {
+ if(count <= 12) { // 120ms
return 0xff; // Pressed
}
return 0; // Not pressed
unsigned char sts;
if(save != 0) save_eeprom();
WDTCONbits.SWDTEN = 0; // Lame WDT OFF.
-
+ sts = 0;
do {
IOCB = 0x00;
- IOCB |= 0x10; // IOCB4 ONLY.
+ IOCBbits.IOCB4 = 1; // IOCB4 ONLY.
OSCCONbits.IDLEN = 0; // Not Idle.
INTCON2bits.RBIP = 1; // Priority = HIGH;
INTCONbits.RBIF = 0;
power_on(0);
Sleep();
// Wake up
- if(INTCONbits.RBIF == 1) {
- sts = chk_powerbutton();
- } else {
- sts = 0;
+ if(INTCONbits.RBIF) {
+ sts = chk_powerbutton();
}
} while(sts == 0);
+
INTCONbits.RBIF = 0;
INTCONbits.RBIE = 0;
#include "ui.h"
#include "eeprom.h"
#include "ioports.h"
-#include "menu.h"
+//#include "menu.h"
#ifndef POWER_H
#define POWER_H
void print_numeric_nosupress(unsigned int data, unsigned char digit)
{
unsigned int i;
- int ref = 10;
- int div = 1;
if(digit == 0) return;
if(digit >= 5) digit = 5;
* Max = 32bytes;
* 0 = Timeout
* 1~32 = Received.
- * if((limit * 19.6ms) elapsed), break;
+ * if((limit * 23ms) elapsed), break;
*/
unsigned char pollkeys(unsigned char *p, unsigned int limit, unsigned char repeat)
{
unsigned char c;
do {
- idle_time_ms(10); // 0.78*20 = 15.6ms.
+ idle_time_ms(5); // 5ms.
c = readkey(); //
ClrWdt();
if(c != charcode_null) {
penalty = 0;
} else {
penalty++;
- if((limit > 3) && (penalty > limit / 4)){
+ if((limit > 3) && (penalty > (limit >> 2))){
penalty = 0;
cold = charcode_null;
}
unsigned char pollkey_single(void)
{
- unsigned int count = 0;
- unsigned int lifetime = 0;
unsigned int penalty = 0;
unsigned char c;
+ cold = charcode_null;
do {
- idle_time_ms(10); // 0.125 * 4 * 20 = 10ms.
- c = readkey(); // 2 * 9 = 16ms
+ idle_time_ms(5); // 0.125 * 4 * 20 = 10ms.
+ c = readkey(); // 2 * 9 = 18ms
ClrWdt();
if(c != charcode_null) {
if(cold != c){
break;
case charcode_0: // Step
threshold_width++;
- set_thresh_width(threshold_width);
+ akc6955_set_thresh_width(threshold_width);
akc6955_do_tune();
break;
case charcode_a: // Toggle FM