OSDN Git Service

[Device] ADD AKC6955(Initial), ADD ACM1602 LCD Controller.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Tue, 11 Jun 2013 02:52:33 +0000 (11:52 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Tue, 11 Jun 2013 02:52:33 +0000 (11:52 +0900)
akc6955.c [new file with mode: 0644]
akc6955.h [new file with mode: 0644]
i2c_io.c
i2c_io.h [new file with mode: 0644]
lcd_acm1602.c [new file with mode: 0644]
nbproject/Makefile-default.mk
nbproject/Makefile-genesis.properties
nbproject/configurations.xml

diff --git a/akc6955.c b/akc6955.c
new file mode 100644 (file)
index 0000000..0a43c40
--- /dev/null
+++ b/akc6955.c
@@ -0,0 +1,285 @@
+/*
+ * OpenI2CRADIO
+ * RADIO CHIP AKC6955 Handler
+ * (C) 2013-06-10 K.Ohta <whatisthis.sowhat ai gmail.com>
+ * License: GPL2
+ */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <delay.h>
+#include <string.h>
+#include "akc6955.h"
+#include "i2c_io.h"
+
+
+
+void akc6955_writecmd(unsigned char reg, unsigned char data)
+{
+    i2c_idle();
+    OPENASMASTER();
+    i2c_writechar(AKC6955_ADDRESS);
+    i2c_writechar(reg);
+    i2c_writechar(data);
+    CLOSEASMASTER();
+}
+
+unsigned char akc6955_readcmd(unsigned char reg)
+{
+    unsigned char c;
+    i2c_idle();
+    OPENASMASTER();
+    i2c_writechar(AKC6955_ADDRESS);
+    i2c_writechar(reg);
+    c = i2c_readchar();
+    CLOSEASMASTER();
+    return c;
+}
+
+
+void akc6955_set_amband(unsigned char band)
+{
+    unsigned char b;
+    b = akc6955_readcmd(AKC6955_BAND);
+    b &= 0x07; // extract FM
+    b = b | ((band & 0x1f) << 3);
+    akc6955_writecmd(AKC6955_BAND, b);
+}
+
+void akc6955_set_fmband(unsigned char band)
+{
+    unsigned char b;
+    b = akc6955_readcmd(AKC6955_BAND);
+    b &= 0xf8; // extract AM
+    b = b | (band & 0x07);
+    akc6955_writecmd(AKC6955_BAND, b);
+}
+
+unsigned char akc6955_get_amband(void)
+{
+    unsigned char b;
+    b = akc6955_readcmd(AKC6955_BAND);
+    b = (b & 0xf8) >> 3;
+    return b;
+}
+
+unsigned char akc6955_get_fmband(void)
+{
+    unsigned char b;
+    b = akc6955_readcmd(AKC6955_BAND);
+    b = b & 0x07;
+    return b;
+}
+
+void akc6955_set_power(unsigned char on)
+{
+    unsigned char b;
+    b = akc6955_readcmd(AKC6955_POWER);
+    if(on != 0){
+        b |= 0x80;
+    } else {
+        b &= 0x7f;
+    }
+    akc6955_writecmd(AKC6955_POWER, b);
+}
+
+void akc6955_do_tune(void)
+{
+    unsigned char b;
+    b = akc6955_readcmd(AKC6955_POWER);
+    b &= 0xdf; // Tun = '0'
+    akc6955_writecmd(AKC6955_POWER, b);
+    // Need sleep?
+    b |= 0x20; // Tun = '1'
+    akc6955_writecmd(AKC6955_POWER, b);
+}
+
+unsigned int akc6955_set_tune(unsigned char mode_3k, unsigned int ch)
+{
+    unsigned char band;
+    unsigned char fm;
+    unsigned char b;
+    unsigned int i;
+
+    i = ch & 0x1fff;
+    fm = akc6955_readcmd(AKC6955_POWER) & 0x40;
+    if(fm == 0){
+        // AM
+        band = akc6955_get_amband();
+    } else {
+        band = 0;
+    }
+    if(band == 2){
+        // BAND=AM && MW2
+        i = (i / 3) * 3;
+    }
+    if(mode_3k == 0){
+        b = ((i >> 8) & 0x1f) | 0x40; // 32.768KHz clock
+    } else {
+        b = ((i >> 8) & 0x1f) | 0x60;
+    }
+    akc6955_writecmd(AKC6955_CH_HI, b);
+    b = i & 0xff;
+    akc6955_writecmd(AKC6955_CH_LO, b);
+    akc6955_do_tune();
+}
+
+void akc6955_do_scan(unsigned char up)
+{
+    unsigned char b;
+    unsigned char m;
+    akc6955_do_tune();
+    b = akc6955_readcmd(AKC6955_POWER);
+    b &= 0xe3;
+    if(up != 0) {
+        b |= 0x08;
+    }
+    akc6955_writecmd(AKC6955_POWER, b); // Falldown seek bit to '0'.
+    b |= 0x10;
+    akc6955_writecmd(AKC6955_POWER, b); // Raise seek bit to '1'.
+}
+
+void akc6955_abort_scan(void)
+{
+    unsigned char b;
+    b = akc6955_readcmd(AKC6955_POWER);
+    b &= 0xef;
+    akc6955_writecmd(AKC6955_POWER, b); // Falldown seek bit to '0'.
+}
+
+unsigned char akc6955_chk_donescan(void)
+{
+    unsigned char b;
+    b = akc6955_readcmd(AKC6955_RCH_HI) & 0x40;
+    if(b == 0) return 0;
+    return 0xff;
+}
+
+
+/*
+ * Get AM/FM Frequency: ret = KHz at AM, 10KHz @FM.
+ */
+unsigned int akc6955_get_freq(void)
+{
+    unsigned char b, h, l;
+    unsigned char fm;
+    unsigned int i;
+    b = akc6955_readcmd(AKC6955_CNR_AM) & 0x80;
+    l = akc6955_readcmd(AKC6955_RCH_LO) ;
+    h = akc6955_readcmd(AKC6955_RCH_HI) & 0x1f;
+    fm = akc6955_readcmd(AKC6955_POWER) & 0x40;
+    i = l + h * 256;
+    if(fm != 0){ // 25KHz
+        i = i * 10; // 25 / 10 = 10/4
+        i = i / 4;
+        i += 3000; // 30MHz
+    } else if(b == 0){ // 5K
+        i = i * 5;
+    } else { // 3K
+        i = i * 3;
+    }
+    return i;
+}
+
+void akc6955_set_freq(unsigned int freq)
+{
+    unsigned int ch;
+    unsigned char b;
+    unsigned char fm;
+    unsigned char mode3k;
+
+    fm = akc6955_readcmd(AKC6955_POWER) & 0x40;
+    if(fm != 0) { // FM
+      ch = freq - 3000;
+      ch = ch * 4;
+      ch = ch / 10; // 10/25 = 0.4
+    } else {
+        mode3k = akc6955_readcmd(AKC6955_CNR_AM) & 0x80;
+        if(mode3k == 0){
+            ch = freq / 5;
+        } else {
+            ch = freq / 3;
+        }
+    }
+    akc6955_set_tune(mode3k, ch);
+}
+
+unsigned char akc6955_tune(void)
+{
+    unsigned char b;
+    b = akc6955_readcmd(AKC6955_RCH_HI) & 0x20;
+    if(b == 0x00) {
+        return 0;
+    } else {
+        return 0xff;
+    }
+}
+
+unsigned char akc6955_get_cnr(void)
+{
+    unsigned char fm;
+    unsigned char b;
+    fm = akc6955_readcmd(AKC6955_POWER) & 0x40;
+    if(fm != 0) { // FM
+        b = akc6955_readcmd(AKC6955_CNR_FM);
+    } else { // AM
+        b = akc6955_readcmd(AKC6955_CNR_AM);
+    }
+    b &= 0x7f;
+    return b;
+}
+
+int akc6955_read_level(void)
+{
+    unsigned char fm;
+    unsigned char rflevel, iflevel;
+    unsigned char b;
+    unsigned int rssi;
+    unsigned int freq;
+    int level;
+
+    fm = akc6955_readcmd(AKC6955_POWER) & 0x40;
+    b =  akc6955_readcmd(AKC6955_PGALEVEL);
+    rflevel = (b & 0xe0) >> 5;
+    iflevel = (b & 0x1c) >> 2;
+    rssi = (unsigned int)(akc6955_readcmd(AKC6955_RSSI) & 0x7f);
+    if(fm != 0){
+        level = 103 - (rssi + 6 * (rflevel + iflevel));
+    } else {
+        freq = akc6955_get_freq();
+        if(freq > 2560) { // ASSUME SW
+            level = 103 - (rssi + 6 * (rflevel + iflevel));
+        } else { // ASSUME MW,LW
+            level = 123 - (rssi + 6 * (rflevel + iflevel));
+        }
+    }
+    return level;
+}
+
+unsigned int akc6955_up_freq(unsigned int step)
+{
+    unsigned int freq;
+    freq = akc6955_get_freq();
+    freq += step;
+    akc6955_set_freq(freq);
+    do{
+        // Use software-delay, but recommands hardware-delay ;-(
+        delay1ktcy(100); // Wait 100000 cycles = 12.5ms
+    } while(akc6955_tune() == 0);
+    return akc6955_get_freq();
+}
+
+
+unsigned int akc6955_down_freq(unsigned int step)
+{
+    unsigned int freq;
+    freq = akc6955_get_freq();
+    if(freq <= step) return freq;
+    freq -= step;
+    akc6955_set_freq(freq);
+    do{
+        // Use software-delay, but recommands hardware-delay ;-(
+        delay1ktcy(100); // Wait 100000 cycles = 12.5ms
+    } while(akc6955_tune() == 0);
+    return akc6955_get_freq();
+}
diff --git a/akc6955.h b/akc6955.h
new file mode 100644 (file)
index 0000000..a8b68a6
--- /dev/null
+++ b/akc6955.h
@@ -0,0 +1,68 @@
+/* 
+ * File:   akc6955.h
+ * Author: whatisthis
+ *
+ * Created on 2013/06/11, 10:24
+ */
+
+#ifndef AKC6955_H
+#define        AKC6955_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define AKC6955_ADDRESS 0x20
+
+/*
+ * Register definisions.
+ */
+#define AKC6955_POWER  0
+#define AKC6955_BAND   1
+#define AKC6955_CH_HI  2
+#define AKC6955_CH_LO  3
+#define AKC6955_UCH_ST 4
+#define AKC6955_UCS_EN 5
+#define AKC6955_VOLUME 6
+#define AKC6955_STEREO 7
+#define AKC6955_THRESH 8
+#define AKC6955_ENABLE 9
+// 10 = RESERVE
+#define AKC6955_SPACE  11
+// 12 = RESERVE
+#define AKC6955_PRE 13
+// 14-19 = RESERVE
+
+// Read only registers
+#define AKC6955_RCH_HI   20
+#define AKC6955_RCH_LO   21
+#define AKC6955_CNR_AM   22
+#define AKC6955_CNR_FM   23
+#define AKC6955_PGALEVEL 24
+#define AKC6955_VBAT     25
+#define AKC6955_FDNUM    26
+#define AKC6955_RSSI     27
+
+/*
+ * Resister definitions
+ */
+    typedef union{
+        unsigned char byte;
+        struct {
+            unsigned power_on :1;
+            unsigned fm_en :1;
+            unsigned tune :1;
+            unsigned seek :1;
+            unsigned seekdir :1;
+            unsigned mute :1;
+            unsigned reserve :2;
+        };
+     } AKC6955_Reg0;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* AKC6955_H */
+
index ecb0767..b48d02c 100644 (file)
--- a/i2c_io.c
+++ b/i2c_io.c
@@ -5,6 +5,8 @@
  * License: GPL2
  */
 
-#include <sdcc-lib.h>
-#include <pic18fregs.h> /* ONLY FOR PIC18x */
+#include <stdarg.h>
+#include <stdio.h>
+
+#include "i2c_io.h"
 
diff --git a/i2c_io.h b/i2c_io.h
new file mode 100644 (file)
index 0000000..586dcf6
--- /dev/null
+++ b/i2c_io.h
@@ -0,0 +1,34 @@
+/*
+ * OpenI2CRADIO
+ * I2C Header
+ * (C) 2013-06-10 K.Ohta <whatisthis.sowhat ai gmail.com>
+ * License: GPL2
+ */
+#include <sdcc-lib.h>
+#include <pic18fregs.h> /* ONLY FOR PIC18x */
+
+#include <i2c.h>
+
+#ifndef I2C_IO_H
+#define        I2C_IO_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * #1
+ */
+#define I2C_CLOCK_PARAM 19 // 8MHz/(4*(1+I2C_CLOCK_PARAM)) -> 100KHz
+#define I2C_DEFAULT_MODE I2C_MASTER
+#define I2C_SLEW_DEFAULT I2C_SLEW_ON
+
+#define OPENASMASTER() i2c_open(I2C_DEFAULT_MODE, I2C_SLEW_DEFAULT, I2C_CLOCK_PARAM)
+#define CLOSEASMASTER() i2c_close()
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* I2C_IO_H */
+
diff --git a/lcd_acm1602.c b/lcd_acm1602.c
new file mode 100644 (file)
index 0000000..f28d0eb
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * OpenI2CRADIO
+ * I2C-LCD ACM1602 Handler
+ * (C) 2013-06-10 K.Ohta <whatisthis.sowhat ai gmail.com>
+ * License: GPL2
+ */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <delay.h>
+#include <string.h>
+
+#include "i2c_io.h"
+
+
+static void sendcmd(unsigned char addr, unsigned char cmd)
+{
+    i2c_idle();
+    OPENASMASTER();
+    i2c_writechar(addr);
+    i2c_writechar(0x00);
+    i2c_writechar(cmd);
+    CLOSEASMASTER();
+    delay1ktcy(1); // 0.1ms
+}
+
+static void delay_lcd(void)
+{
+    delay1ktcy(40); // (1000cycle * (8*5) = 5ms
+}
+
+void acm1602_cls(unsigned char addr)
+{
+    i2c_idle();
+    OPENASMASTER();
+    i2c_writechar(addr);
+    i2c_writechar(0x00); // CMD
+    i2c_writechar(0x01); // CLS
+    CLOSEASMASTER();
+    delay_lcd();
+}
+
+void acm1602_putchar(unsigned char addr, unsigned char c)
+{
+    i2c_idle();
+    OPENASMASTER();
+    i2c_writechar(addr);
+    i2c_writechar(0x80); //Data
+    i2c_writechar(c); // Putchar
+    CLOSEASMASTER();
+    delay1ktcy(1); //0.1ms
+}
+
+void acm1602_locate(unsigned char addr, char x, char y)
+{
+    unsigned char ramaddr;
+    if((x < 0) || (x > 15)) return;
+    if((y < 0) || (y > 1)) return;
+    if(y == 0){
+        ramaddr = 0x80 | (x & 0x0f);
+    } else {
+        ramaddr = 0xc0 | (x & 0x0f);
+    }
+    sendcmd(addr, ramaddr);
+}
+
+void acm1602_home(unsigned char addr)
+{
+    i2c_idle();
+    OPENASMASTER();
+    i2c_writechar(addr);
+    i2c_writechar(0x00); // CMD
+    i2c_writechar(0x02); // HOME
+    CLOSEASMASTER();
+    delay_lcd();
+}
+
+void acm1602_printf(unsigned char addr, const char *fmt, ...)
+{
+    char strbuf[32]; // Max 32 bytes.
+    va_list args;
+    int i;
+    int l;
+
+    strbuf[0] = '\0';
+    va_start(args, fmt );
+    sprintf(strbuf, args);
+    l = strlen(strbuf);
+    if((l >= 32) || (l <= 0))return;
+    for(i = 0; i < l; i++) {
+        acm1602_putchar(addr, strbuf[i]);
+    }
+}
+
+void acm1602_cursordir(unsigned char addr, unsigned char right)
+{
+    unsigned char cmd;
+    if(right == 0) {
+        cmd = 0x18;
+    } else {
+        cmd=0x1c;
+    }
+    sendcmd(addr, cmd);
+}
+
+void acm1602_init(unsigned char addr, unsigned char cls)
+{
+    sendcmd(addr, 0x38); // 2lines, 8x10dot fonts.
+    sendcmd(addr, 0x0f); // Display ON.
+    if(cls == 0){
+        acm1602_home(addr);
+    } else {
+        acm1602_cls(addr);
+    }
+}
\ No newline at end of file
index 609a830..e864f5a 100644 (file)
@@ -45,11 +45,11 @@ OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE}
 DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
 
 # Object Files Quoted if spaced
-OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/ui.o ${OBJECTDIR}/i2c_io.o ${OBJECTDIR}/main.o ${OBJECTDIR}/idle.o
-POSSIBLE_DEPFILES=${OBJECTDIR}/ui.o.d ${OBJECTDIR}/i2c_io.o.d ${OBJECTDIR}/main.o.d ${OBJECTDIR}/idle.o.d
+OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/ui.o ${OBJECTDIR}/i2c_io.o ${OBJECTDIR}/main.o ${OBJECTDIR}/idle.o ${OBJECTDIR}/lcd_acm1602.o ${OBJECTDIR}/akc6955.o
+POSSIBLE_DEPFILES=${OBJECTDIR}/ui.o.d ${OBJECTDIR}/i2c_io.o.d ${OBJECTDIR}/main.o.d ${OBJECTDIR}/idle.o.d ${OBJECTDIR}/lcd_acm1602.o.d ${OBJECTDIR}/akc6955.o.d
 
 # Object Files
-OBJECTFILES=${OBJECTDIR}/ui.o ${OBJECTDIR}/i2c_io.o ${OBJECTDIR}/main.o ${OBJECTDIR}/idle.o
+OBJECTFILES=${OBJECTDIR}/ui.o ${OBJECTDIR}/i2c_io.o ${OBJECTDIR}/main.o ${OBJECTDIR}/idle.o ${OBJECTDIR}/lcd_acm1602.o ${OBJECTDIR}/akc6955.o
 
 
 CFLAGS=
@@ -74,56 +74,76 @@ ifeq ($(TYPE_IMAGE), DEBUG_RUN)
 ${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 -c -mpic16 -p18f25k22 ui.c  -o${OBJECTDIR}/ui.o
+       ${MP_CC} --debug-ralloc --use-non-free -V --pstack-model=small libc18f.lib libio18f25k22.lib -c -mpic16 -p18f25k22 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 -c -mpic16 -p18f25k22 i2c_io.c  -o${OBJECTDIR}/i2c_io.o
+       ${MP_CC} --debug-ralloc --use-non-free -V --pstack-model=small libc18f.lib libio18f25k22.lib -c -mpic16 -p18f25k22 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 -c -mpic16 -p18f25k22 main.c  -o${OBJECTDIR}/main.o
+       ${MP_CC} --debug-ralloc --use-non-free -V --pstack-model=small libc18f.lib libio18f25k22.lib -c -mpic16 -p18f25k22 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 -c -mpic16 -p18f25k22 idle.c  -o${OBJECTDIR}/idle.o
+       ${MP_CC} --debug-ralloc --use-non-free -V --pstack-model=small libc18f.lib libio18f25k22.lib -c -mpic16 -p18f25k22 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 -V --pstack-model=small libc18f.lib libio18f25k22.lib -c -mpic16 -p18f25k22 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 -V --pstack-model=small libc18f.lib libio18f25k22.lib -c -mpic16 -p18f25k22 akc6955.c  -o${OBJECTDIR}/akc6955.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 -c -mpic16 -p18f25k22 ui.c  -o${OBJECTDIR}/ui.o
+       ${MP_CC} --debug-ralloc --use-non-free -V --pstack-model=small libc18f.lib libio18f25k22.lib -c -mpic16 -p18f25k22 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 -c -mpic16 -p18f25k22 i2c_io.c  -o${OBJECTDIR}/i2c_io.o
+       ${MP_CC} --debug-ralloc --use-non-free -V --pstack-model=small libc18f.lib libio18f25k22.lib -c -mpic16 -p18f25k22 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 -c -mpic16 -p18f25k22 main.c  -o${OBJECTDIR}/main.o
+       ${MP_CC} --debug-ralloc --use-non-free -V --pstack-model=small libc18f.lib libio18f25k22.lib -c -mpic16 -p18f25k22 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 -c -mpic16 -p18f25k22 idle.c  -o${OBJECTDIR}/idle.o
+       ${MP_CC} --debug-ralloc --use-non-free -V --pstack-model=small libc18f.lib libio18f25k22.lib -c -mpic16 -p18f25k22 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 -V --pstack-model=small libc18f.lib libio18f25k22.lib -c -mpic16 -p18f25k22 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 -V --pstack-model=small libc18f.lib libio18f25k22.lib -c -mpic16 -p18f25k22 akc6955.c  -o${OBJECTDIR}/akc6955.o
        
 endif
 
 # ------------------------------------------------------------------------------------
 # Rules for buildStep: link
 ifeq ($(TYPE_IMAGE), DEBUG_RUN)
-dist/${CND_CONF}/${IMAGE_TYPE}/OPENI2CRADIO_6955.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES}  nbproject/Makefile-${CND_CONF}.mk    
+dist/${CND_CONF}/${IMAGE_TYPE}/OPENI2CRADIO_6955.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES}  nbproject/Makefile-${CND_CONF}.mk  /usr/local/share/sdcc/lib/pic16/libc18f.lib  
        ${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE} 
-       ${MP_CC}  --debug-ralloc -Wl-c -Wl-m --use-non-free --pstack-model=small -mpic16 -p18f25k22 ${OBJECTFILES}  -odist/${CND_CONF}/${IMAGE_TYPE}/OPENI2CRADIO_6955.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} 
+       ${MP_CC}  --debug-ralloc -Wl-c -Wl-m --use-non-free -V --pstack-model=small libc18f.lib libio18f25k22.lib -mpic16 -p18f25k22 ${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   
+dist/${CND_CONF}/${IMAGE_TYPE}/OPENI2CRADIO_6955.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES}  nbproject/Makefile-${CND_CONF}.mk  /usr/local/share/sdcc/lib/pic16/libc18f.lib 
        ${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE} 
-       ${MP_CC}  --debug-ralloc -Wl-c -Wl-m --use-non-free --pstack-model=small -mpic16 -p18f25k22 ${OBJECTFILES}  -odist/${CND_CONF}/${IMAGE_TYPE}/OPENI2CRADIO_6955.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} 
+       ${MP_CC}  --debug-ralloc -Wl-c -Wl-m --use-non-free -V --pstack-model=small libc18f.lib libio18f25k22.lib -mpic16 -p18f25k22 ${OBJECTFILES}  -odist/${CND_CONF}/${IMAGE_TYPE}/OPENI2CRADIO_6955.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} 
 endif
 
 
index 2c6e951..a17508f 100644 (file)
@@ -1,5 +1,5 @@
 #
-#Tue Jun 11 05:10:14 JST 2013
+#Tue Jun 11 10:35:42 JST 2013
 default.languagetoolchain.dir=/usr/local/bin
 default.br-unifei-rmaalmeida-toolchainSDCC-SDCCtoolchain.md5=b67cce1ad75b450308d7806e430931b3
 com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=8fe1589514540343a5279c082104bce0
index e3b47a0..6a2babd 100644 (file)
     <itemPath>main.c</itemPath>
     <itemPath>idle.c</itemPath>
     <itemPath>idle.h</itemPath>
+    <itemPath>i2c_io.h</itemPath>
+    <itemPath>lcd_acm1602.c</itemPath>
+    <itemPath>akc6955.c</itemPath>
+    <itemPath>akc6955.h</itemPath>
   </logicalFolder>
+  <sourceRootList>
+    <Elem>/usr/local/share/sdcc/lib/src/pic16/libc</Elem>
+  </sourceRootList>
   <projectmakefile>Makefile</projectmakefile>
   <confs>
     <conf name="default" type="2">
@@ -49,6 +56,7 @@
       <compileType>
         <linkerTool>
           <linkerLibItems>
+            <linkerLibFileItem>/usr/local/share/sdcc/lib/pic16/libc18f.lib</linkerLibFileItem>
           </linkerLibItems>
         </linkerTool>
         <loading>
         <makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>
       </makeCustomizationType>
       <PICkit2PlatformTool>
+        <property key="pk2settings.3state" value="false"/>
+        <property key="pk2settings.preserveee" value="false"/>
+        <property key="pk2settings.setvddvoltage" value=""/>
+        <property key="pk2settings.userpgmexec" value="true"/>
+        <property key="pk2settings.usetargetpower" value="false"/>
       </PICkit2PlatformTool>
+      <SDCCToolchain>
+      </SDCCToolchain>
       <sdcc>
+        <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="extended" value="false"/>
+        <property key="no-c-code-in-asm" value="false"/>
+        <property key="no-optimize-goto" value="false"/>
+        <property key="no-pcode-opt" value="false"/>
+        <property key="obanksel" value="0"/>
+        <property key="optimize-cmp" value="false"/>
+        <property key="optimize-df" value="false"/>
+        <property key="pcode-verbose" 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="libc18f.lib libio18f25k22.lib"/>
       </sdcc>
     </conf>
   </confs>