OSDN Git Service

ring.c inline化
authorNaoya Takamura <ntaka206@users.sourceforge.net>
Mon, 28 Nov 2011 08:09:31 +0000 (17:09 +0900)
committerNaoya Takamura <ntaka206@users.sourceforge.net>
Mon, 28 Nov 2011 08:09:31 +0000 (17:09 +0900)
GPS 1PPS INT0 handler: ad pps sync.
sts.c add

20 files changed:
build/default/debug/byte2var.o.d [deleted file]
build/default/debug/debug_print.o.d [deleted file]
build/default/debug/main.o.d [deleted file]
build/default/debug/myad.o.d [deleted file]
build/default/debug/myspi.o.d [deleted file]
build/default/debug/myuart.o.d [deleted file]
build/default/debug/ring.o.d [deleted file]
build/default/debug/ublox.o.d [deleted file]
build/default/production/main.o.d
delay.c [deleted file]
main.c
myad.c
myad.h
mysts.c [new file with mode: 0644]
mysts.h [new file with mode: 0644]
nbproject/Makefile-default.mk
nbproject/Makefile-genesis.properties
nbproject/configurations.xml
ring.c
ring.h

diff --git a/build/default/debug/byte2var.o.d b/build/default/debug/byte2var.o.d
deleted file mode 100644 (file)
index bd4c4c5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-build/default/debug/byte2var.o: byte2var.c
diff --git a/build/default/debug/debug_print.o.d b/build/default/debug/debug_print.o.d
deleted file mode 100644 (file)
index 32843de..0000000
+++ /dev/null
@@ -1 +0,0 @@
-build/default/debug/debug_print.o: debug_print.c myuart.h
diff --git a/build/default/debug/main.o.d b/build/default/debug/main.o.d
deleted file mode 100644 (file)
index 77fd474..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-build/default/debug/main.o: main.c myuart.h myspi.h debug_print.h ublox.h \
-  myad.h delay.h ring.h byte2var.h
diff --git a/build/default/debug/myad.o.d b/build/default/debug/myad.o.d
deleted file mode 100644 (file)
index b95bf2b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-build/default/debug/myad.o: myad.c delay.h myspi.h myad.h
diff --git a/build/default/debug/myspi.o.d b/build/default/debug/myspi.o.d
deleted file mode 100644 (file)
index 8a28699..0000000
+++ /dev/null
@@ -1 +0,0 @@
-build/default/debug/myspi.o: myspi.c myspi.h
diff --git a/build/default/debug/myuart.o.d b/build/default/debug/myuart.o.d
deleted file mode 100644 (file)
index 720a522..0000000
+++ /dev/null
@@ -1 +0,0 @@
-build/default/debug/myuart.o: myuart.c myuart.h
diff --git a/build/default/debug/ring.o.d b/build/default/debug/ring.o.d
deleted file mode 100644 (file)
index 420331e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-build/default/debug/ring.o: ring.c ring.h
diff --git a/build/default/debug/ublox.o.d b/build/default/debug/ublox.o.d
deleted file mode 100644 (file)
index 828d19c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-build/default/debug/ublox.o: ublox.c ublox.h myuart.h byte2var.h
index bcecf49..e26dfad 100644 (file)
@@ -1,2 +1,2 @@
 build/default/production/main.o: main.c myuart.h myspi.h debug_print.h \
-  ublox.h myad.h delay.h ring.h byte2var.h myint.h
+  ublox.h myad.h delay.h ring.h byte2var.h myint.h mysts.h
diff --git a/delay.c b/delay.c
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/main.c b/main.c
index 2d54e34..6224f17 100644 (file)
--- a/main.c
+++ b/main.c
@@ -22,6 +22,7 @@
 #include "ring.h"
 #include "byte2var.h"
 #include "myint.h"
+#include "mysts.h"
 
 _CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & COE_OFF & FWDTEN_OFF & ICS_PGx2 )
 //_CONFIG2( FCKSM_CSDCMD & OSCIOFNC_ON & POSCMOD_OFF & FNOSC_FRC)
@@ -36,14 +37,41 @@ _CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & COE_OFF & FWDTEN_OFF & ICS_PGx2 )
 // UART1 GPS
 #define BAUDRATE1         9600L
 
-/*** ADBUF **************************************************/
-#define ADBUF_BYTE  3   // AD 1dataのbyte数
+/*** ADバッファ *************************************************
+ * 50Hzデータ
+ * 1秒平均データ
+ * タイムスタンプ
+ */
+#define ADBUF_BYTE  3   // AD 1CH 1sample dataのbyte数
 
 // SPI外部送信用バッファ AD_SAMPLE[Hz]
 static char adbuf[RING_NUM][AD_CHNUM][ADBUF_BYTE*AD_SAMPLE];
 // 1sec平均値
 static long adbuf_1sec[RING_NUM][AD_CHNUM];
+// timestamp
+static UbloxNavTimeUtc adbuf_t[RING_NUM];
+
+inline void my_memcpy(void *dest0, void *src0, int len)
+{
+    int i;
+    char *dest, *src;
 
+    dest = (char*)dest0;
+    src = (char*)src0;
+    for(i = 0; i < len; i++) {
+        *dest++ = *src++;
+    }
+}
+inline void my_memset(void *dest0, unsigned char data, int len)
+{
+    int i;
+    char *dest;
+
+    dest = (char*)dest0;
+    for(i = 0; i < len; i++) {
+        *dest++ = data;
+    }
+}
 inline void adbuf_write(unsigned char buf_no, unsigned char ch, int cnt, long *data)
 {
     unsigned char    *ptr = (unsigned char*)data;
@@ -52,16 +80,21 @@ inline void adbuf_write(unsigned char buf_no, unsigned char ch, int cnt, long *d
         adbuf[buf_no][ch][ADBUF_BYTE*cnt + i] = *(ptr++);
     }
 }
+// 1
 inline void adbuf_1sec_write(char buf_no, long *data)
 {
-    memcpy(adbuf_1sec[buf_no], data, sizeof(long) * AD_CHNUM);
+    my_memcpy(adbuf_1sec[buf_no], data, sizeof(long) * AD_CHNUM);
 /*    char ch;
     for(ch = 0; ch < AD_CHNUM; ch++)
         adbuf_1sec[buf_no][ch] = data[ch];
 */
 }
+inline void adbuf_time_write(char buf_no, UbloxNavTimeUtc *t)
+{
+    my_memcpy(&adbuf_t[buf_no], t, sizeof(UbloxNavTimeUtc));
+}
 
-/*****************************************************/
+/**** ublox *************************************************/
 
 void test_ublox_rcv_mon(void)
 {
@@ -146,7 +179,7 @@ int main(int argc, char** argv) {
     char    sz[128];
     UbloxNavTimeUtc *gps = &gpsNow;
 
-    // 割り込み禁止
+    /**** 割り込み禁止 ****/
     SET_CPU_IPL( 7 );
     __builtin_write_OSCCONL(OSCCON & 0xbf); //clear the bit 6 of OSCCONL to unlock Pin Re-map
 
@@ -186,6 +219,7 @@ int main(int argc, char** argv) {
 
     adint_cnt = 0;
     ad_cs_dis();
+    sts_set(STS_NOSYNC);
     pps_intf_clear();
     
     // GPS UART1初期設定 BRGH=Standard mode
@@ -268,8 +302,15 @@ int main(int argc, char** argv) {
     int0_int_enable();    // Int enable
 
     while(1) {
+        // GPSから受信してデコード
         ublox_rcv();
+        if (gpsNow.valid == 0x07 && sts_get() == STS_NOSYNC) {
+            // 時刻有効
+            sts_set(STS_SYNCNOW0);
+        }
         if (ring_read_get() != ring_write_get()) {
+            // タイムスタンプget
+            gps = &adbuf_t[ring_read_get()];
             sprintf(sz, "%04u/%02d/%02d %02d:%02d:%02d.%09ld %6lums %6luns %02X\r\n",
                 gps->year, gps->month, gps->day, gps->hour, gps->min, gps->sec, gps->nano,
                 gps->tow, gps->tacc, gps->valid
@@ -277,7 +318,7 @@ int main(int argc, char** argv) {
             PDEBUG(sz);
 
 #if 1
-            //
+            // AD data get
             char ch;
             for(ch=0; ch<AD_CHNUM; ch++) {
                 sprintf(sz, "%+7ld,", adbuf_1sec[ring_read_get()][ch]);
@@ -317,17 +358,30 @@ int main(int argc, char** argv) {
  */
 void __attribute__((interrupt, no_auto_psv)) _INT0Interrupt(void)
 {
+    // AD STARTピン=H
+    ad_start_ena();
+
     int0_intf_clear();
     pps_intf_set();
-/****AD同期!!!!!!!!!!!!!!!
- * とりあえず 要修正
- */
-// カウンタの同期
-    adint_cnt = 0;
-
-// AD START信号による同期
-
-
+    /****AD同期!!!!!!!!!!!!!!!*/
+    // AD個数カウンタ=SAMP_FREQ-1
+    adint_cnt = AD_SAMPLE - 1;
+
+    // ADバッファにタイムスタンプ付ける
+    adbuf_time_write(ring_read_get(), &gpsNow);
+
+    // AD START信号による同期
+    if (sts_get() == STS_SYNCNOW0) {
+        // AD STARTピン=L
+        ad_start_dis();
+        sts_set(STS_SYNCNOW1);
+    } else if (sts_get() == STS_SYNCNOW1) {
+        // AD STARTピン=H
+//        ad_start_ena();
+        sts_set(STS_SYNCWAIT);
+    } else if (sts_get() == STS_SYNCWAIT) {
+        sts_set(STS_SYNCED);
+    }
 }
 
 /*
@@ -343,12 +397,11 @@ void __attribute__((interrupt, no_auto_psv)) _INT1Interrupt(void)
     if (!ad_is_drdy0_enable()) {
         return;
     }
-//    ad_drdy0_intf_set();
 
     adint_ch = 0;
     adint_sts = ADSTS_H;
     if (adint_cnt == 0) {
-        memset(adint_add, 0, sizeof(adint_add));
+        my_memset(adint_add, 0, sizeof(adint_add));
     }
 
     ad_cs(adint_ch);    // CSx=L
@@ -399,7 +452,7 @@ void __attribute__((interrupt, auto_psv)) _SPI1Interrupt(void)
             l = byte3_to_long(in);
             // バッファに書きこみ
             adbuf_write(ring_write_get(), adint_ch, adint_cnt, &l);
-            // 平均用加算
+            // 1秒平均用加算
             adint_add[adint_ch] += l;
             // CH進める
             adint_ch++;
diff --git a/myad.c b/myad.c
index 2775718..59e50d1 100644 (file)
--- a/myad.c
+++ b/myad.c
@@ -1,3 +1,8 @@
+/*
+ * ADS1259
+ * 
+ * ADデータSPIエンディアン MSB first
+ */
 #include <p24FJ64GA004.h>
 #include <libpic30.h>
 
@@ -5,9 +10,6 @@
 #include "myspi.h"
 #include "myad.h"
 
-#define CS_RCLK PORTAbits.RA7
-#define CS_CLK  PORTAbits.RA8
-#define CS_DATA PORTAbits.RA9
 
 #if 0
 // AD DRDY0 INTフラグ 1=INTかかった 0=なし
@@ -39,6 +41,7 @@ void ad_cs_init(void)
     asm("NOP");
     CS_DATA = 0;
 }
+# if 0
 /*
  int cs: 0〜15
  */
@@ -64,6 +67,7 @@ void ad_cs(unsigned char cs)
     asm("NOP");
     CS_RCLK = 0;
 }
+
 void ad_cs_dis(void)
 {
     unsigned char i;
@@ -80,6 +84,7 @@ void ad_cs_dis(void)
     asm("NOP");
     CS_RCLK = 0;
 }
+#endif
 
 void ad_reset(void)
 {
diff --git a/myad.h b/myad.h
index b84ce72..29de4c5 100644 (file)
--- a/myad.h
+++ b/myad.h
@@ -4,6 +4,10 @@
 
 #define __MYAD_H__
 
+#define CS_RCLK PORTAbits.RA7
+#define CS_CLK  PORTAbits.RA8
+#define CS_DATA PORTAbits.RA9
+
 #define AD_CHNUM    6
 #define AD_CH1_CS   0   // AD CH1のCS番号
 #define PGA_CH1_CS  6   // PGA CH1のCS番号
 //char ad_is_drdy0_intf(void);
 
 void ad_cs_init(void);
-void ad_cs(unsigned char adr);
-void ad_cs_dis(void);
+inline extern void ad_cs(unsigned char cs)
+{
+    unsigned char i;
+
+//CS_CLK = 1;
+    for(i = 16; i > 0; i--) {
+        if (i == cs+1) {
+            CS_DATA = 0;
+        } else {
+            CS_DATA = 1;
+        }
+        asm("NOP");
+        CS_CLK = 1;
+        CS_CLK = 0;
+    }
+    asm("NOP");
+    CS_RCLK = 1;
+    asm("NOP");
+    CS_DATA = 0;
+    asm("NOP");
+    CS_RCLK = 0;
+}
+
+inline extern void ad_cs_dis(void){
+    unsigned char i;
+
+    CS_DATA = 1;
+    for(i = 16; i > 0; i--) {
+        CS_CLK = 1;
+        CS_CLK = 0;
+    }
+    asm("NOP");
+    CS_RCLK = 1;
+    asm("NOP");
+    CS_DATA = 0;
+    asm("NOP");
+    CS_RCLK = 0;
+}
+
 
-#define ad_reset_dis()  PORTBbits.RB10 = 1; __delay32(1)
-#define ad_reset_ena()  PORTBbits.RB10 = 0; __delay32(1)
+#define ad_reset_dis()  PORTBbits.RB10 = 1; asm("NOP")
+#define ad_reset_ena()  PORTBbits.RB10 = 0; asm("NOP")
 
-#define ad_start_dis()  PORTBbits.RB11 = 0; __delay32(1)
-#define ad_start_ena()  PORTBbits.RB11 = 1; __delay32(1)
+#define ad_start_dis()  PORTBbits.RB11 = 0; asm("NOP")
+#define ad_start_ena()  PORTBbits.RB11 = 1; asm("NOP")
 
 #define ad_is_drdy0_enable()    (PORTBbits.RB12 == 0)
 
diff --git a/mysts.c b/mysts.c
new file mode 100644 (file)
index 0000000..00d61c1
--- /dev/null
+++ b/mysts.c
@@ -0,0 +1,6 @@
+/*
+ * main status
+ */
+
+char main_sts;
+
diff --git a/mysts.h b/mysts.h
new file mode 100644 (file)
index 0000000..7994f7c
--- /dev/null
+++ b/mysts.h
@@ -0,0 +1,21 @@
+/*
+ * main status
+ */
+#ifndef __MYSTS_H__
+#define __MYSTS_H__
+
+#define STS_NOSYNC      0   // GPS TIME NOT FIXED
+#define STS_SYNCNOW0    1
+#define STS_SYNCNOW1    2
+#define STS_SYNCWAIT    3
+#define STS_SYNCED      4   // GPS TIME FIXED, AD SYNCED
+
+extern char main_sts;
+
+#define sts_set(s)  main_sts = s
+#define sts_get()  main_sts
+
+#endif
+
+
+
index de2a8fe..ef71c1f 100644 (file)
@@ -35,10 +35,10 @@ OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE}
 DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
 
 # Object Files Quoted if spaced
-OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/byte2var.o ${OBJECTDIR}/debug_print.o ${OBJECTDIR}/main.o ${OBJECTDIR}/myad.o ${OBJECTDIR}/myspi.o ${OBJECTDIR}/myuart.o ${OBJECTDIR}/ring.o ${OBJECTDIR}/ublox.o
+OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/byte2var.o ${OBJECTDIR}/debug_print.o ${OBJECTDIR}/main.o ${OBJECTDIR}/myad.o ${OBJECTDIR}/myspi.o ${OBJECTDIR}/mysts.o ${OBJECTDIR}/myuart.o ${OBJECTDIR}/ring.o ${OBJECTDIR}/ublox.o
 
 # Object Files
-OBJECTFILES=${OBJECTDIR}/byte2var.o ${OBJECTDIR}/debug_print.o ${OBJECTDIR}/main.o ${OBJECTDIR}/myad.o ${OBJECTDIR}/myspi.o ${OBJECTDIR}/myuart.o ${OBJECTDIR}/ring.o ${OBJECTDIR}/ublox.o
+OBJECTFILES=${OBJECTDIR}/byte2var.o ${OBJECTDIR}/debug_print.o ${OBJECTDIR}/main.o ${OBJECTDIR}/myad.o ${OBJECTDIR}/myspi.o ${OBJECTDIR}/mysts.o ${OBJECTDIR}/myuart.o ${OBJECTDIR}/ring.o ${OBJECTDIR}/ublox.o
 
 
 CFLAGS=
@@ -93,98 +93,110 @@ ${OBJECTDIR}/byte2var.o: byte2var.c  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} ${OBJECTDIR} 
        @${RM} ${OBJECTDIR}/byte2var.o.d 
        @${RM} ${OBJECTDIR}/byte2var.o.ok ${OBJECTDIR}/byte2var.o.err 
-       @${FIXDEPS} "${OBJECTDIR}/byte2var.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/byte2var.o.d" -o ${OBJECTDIR}/byte2var.o byte2var.c  
+       @${FIXDEPS} "${OBJECTDIR}/byte2var.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/byte2var.o.d" -o ${OBJECTDIR}/byte2var.o byte2var.c   -Winline
+       
+${OBJECTDIR}/myuart.o: myuart.c  nbproject/Makefile-${CND_CONF}.mk
+       @${MKDIR} ${OBJECTDIR} 
+       @${RM} ${OBJECTDIR}/myuart.o.d 
+       @${RM} ${OBJECTDIR}/myuart.o.ok ${OBJECTDIR}/myuart.o.err 
+       @${FIXDEPS} "${OBJECTDIR}/myuart.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/myuart.o.d" -o ${OBJECTDIR}/myuart.o myuart.c   -Winline
        
 ${OBJECTDIR}/debug_print.o: debug_print.c  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} ${OBJECTDIR} 
        @${RM} ${OBJECTDIR}/debug_print.o.d 
        @${RM} ${OBJECTDIR}/debug_print.o.ok ${OBJECTDIR}/debug_print.o.err 
-       @${FIXDEPS} "${OBJECTDIR}/debug_print.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/debug_print.o.d" -o ${OBJECTDIR}/debug_print.o debug_print.c  
+       @${FIXDEPS} "${OBJECTDIR}/debug_print.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/debug_print.o.d" -o ${OBJECTDIR}/debug_print.o debug_print.c   -Winline
        
-${OBJECTDIR}/myuart.o: myuart.c  nbproject/Makefile-${CND_CONF}.mk
+${OBJECTDIR}/mysts.o: mysts.c  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} ${OBJECTDIR} 
-       @${RM} ${OBJECTDIR}/myuart.o.d 
-       @${RM} ${OBJECTDIR}/myuart.o.ok ${OBJECTDIR}/myuart.o.err 
-       @${FIXDEPS} "${OBJECTDIR}/myuart.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/myuart.o.d" -o ${OBJECTDIR}/myuart.o myuart.c  
+       @${RM} ${OBJECTDIR}/mysts.o.d 
+       @${RM} ${OBJECTDIR}/mysts.o.ok ${OBJECTDIR}/mysts.o.err 
+       @${FIXDEPS} "${OBJECTDIR}/mysts.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/mysts.o.d" -o ${OBJECTDIR}/mysts.o mysts.c   -Winline
        
 ${OBJECTDIR}/ublox.o: ublox.c  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} ${OBJECTDIR} 
        @${RM} ${OBJECTDIR}/ublox.o.d 
        @${RM} ${OBJECTDIR}/ublox.o.ok ${OBJECTDIR}/ublox.o.err 
-       @${FIXDEPS} "${OBJECTDIR}/ublox.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/ublox.o.d" -o ${OBJECTDIR}/ublox.o ublox.c  
+       @${FIXDEPS} "${OBJECTDIR}/ublox.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/ublox.o.d" -o ${OBJECTDIR}/ublox.o ublox.c   -Winline
        
 ${OBJECTDIR}/myad.o: myad.c  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} ${OBJECTDIR} 
        @${RM} ${OBJECTDIR}/myad.o.d 
        @${RM} ${OBJECTDIR}/myad.o.ok ${OBJECTDIR}/myad.o.err 
-       @${FIXDEPS} "${OBJECTDIR}/myad.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/myad.o.d" -o ${OBJECTDIR}/myad.o myad.c  
+       @${FIXDEPS} "${OBJECTDIR}/myad.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/myad.o.d" -o ${OBJECTDIR}/myad.o myad.c   -Winline
        
 ${OBJECTDIR}/main.o: main.c  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} ${OBJECTDIR} 
        @${RM} ${OBJECTDIR}/main.o.d 
        @${RM} ${OBJECTDIR}/main.o.ok ${OBJECTDIR}/main.o.err 
-       @${FIXDEPS} "${OBJECTDIR}/main.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/main.o.d" -o ${OBJECTDIR}/main.o main.c  
-       
-${OBJECTDIR}/myspi.o: myspi.c  nbproject/Makefile-${CND_CONF}.mk
-       @${MKDIR} ${OBJECTDIR} 
-       @${RM} ${OBJECTDIR}/myspi.o.d 
-       @${RM} ${OBJECTDIR}/myspi.o.ok ${OBJECTDIR}/myspi.o.err 
-       @${FIXDEPS} "${OBJECTDIR}/myspi.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/myspi.o.d" -o ${OBJECTDIR}/myspi.o myspi.c  
+       @${FIXDEPS} "${OBJECTDIR}/main.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/main.o.d" -o ${OBJECTDIR}/main.o main.c   -Winline
        
 ${OBJECTDIR}/ring.o: ring.c  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} ${OBJECTDIR} 
        @${RM} ${OBJECTDIR}/ring.o.d 
        @${RM} ${OBJECTDIR}/ring.o.ok ${OBJECTDIR}/ring.o.err 
-       @${FIXDEPS} "${OBJECTDIR}/ring.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/ring.o.d" -o ${OBJECTDIR}/ring.o ring.c  
+       @${FIXDEPS} "${OBJECTDIR}/ring.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/ring.o.d" -o ${OBJECTDIR}/ring.o ring.c   -Winline
+       
+${OBJECTDIR}/myspi.o: myspi.c  nbproject/Makefile-${CND_CONF}.mk
+       @${MKDIR} ${OBJECTDIR} 
+       @${RM} ${OBJECTDIR}/myspi.o.d 
+       @${RM} ${OBJECTDIR}/myspi.o.ok ${OBJECTDIR}/myspi.o.err 
+       @${FIXDEPS} "${OBJECTDIR}/myspi.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/myspi.o.d" -o ${OBJECTDIR}/myspi.o myspi.c   -Winline
        
 else
 ${OBJECTDIR}/byte2var.o: byte2var.c  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} ${OBJECTDIR} 
        @${RM} ${OBJECTDIR}/byte2var.o.d 
        @${RM} ${OBJECTDIR}/byte2var.o.ok ${OBJECTDIR}/byte2var.o.err 
-       @${FIXDEPS} "${OBJECTDIR}/byte2var.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/byte2var.o.d" -o ${OBJECTDIR}/byte2var.o byte2var.c  
+       @${FIXDEPS} "${OBJECTDIR}/byte2var.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/byte2var.o.d" -o ${OBJECTDIR}/byte2var.o byte2var.c   -Winline
+       
+${OBJECTDIR}/myuart.o: myuart.c  nbproject/Makefile-${CND_CONF}.mk
+       @${MKDIR} ${OBJECTDIR} 
+       @${RM} ${OBJECTDIR}/myuart.o.d 
+       @${RM} ${OBJECTDIR}/myuart.o.ok ${OBJECTDIR}/myuart.o.err 
+       @${FIXDEPS} "${OBJECTDIR}/myuart.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/myuart.o.d" -o ${OBJECTDIR}/myuart.o myuart.c   -Winline
        
 ${OBJECTDIR}/debug_print.o: debug_print.c  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} ${OBJECTDIR} 
        @${RM} ${OBJECTDIR}/debug_print.o.d 
        @${RM} ${OBJECTDIR}/debug_print.o.ok ${OBJECTDIR}/debug_print.o.err 
-       @${FIXDEPS} "${OBJECTDIR}/debug_print.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/debug_print.o.d" -o ${OBJECTDIR}/debug_print.o debug_print.c  
+       @${FIXDEPS} "${OBJECTDIR}/debug_print.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/debug_print.o.d" -o ${OBJECTDIR}/debug_print.o debug_print.c   -Winline
        
-${OBJECTDIR}/myuart.o: myuart.c  nbproject/Makefile-${CND_CONF}.mk
+${OBJECTDIR}/mysts.o: mysts.c  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} ${OBJECTDIR} 
-       @${RM} ${OBJECTDIR}/myuart.o.d 
-       @${RM} ${OBJECTDIR}/myuart.o.ok ${OBJECTDIR}/myuart.o.err 
-       @${FIXDEPS} "${OBJECTDIR}/myuart.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/myuart.o.d" -o ${OBJECTDIR}/myuart.o myuart.c  
+       @${RM} ${OBJECTDIR}/mysts.o.d 
+       @${RM} ${OBJECTDIR}/mysts.o.ok ${OBJECTDIR}/mysts.o.err 
+       @${FIXDEPS} "${OBJECTDIR}/mysts.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/mysts.o.d" -o ${OBJECTDIR}/mysts.o mysts.c   -Winline
        
 ${OBJECTDIR}/ublox.o: ublox.c  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} ${OBJECTDIR} 
        @${RM} ${OBJECTDIR}/ublox.o.d 
        @${RM} ${OBJECTDIR}/ublox.o.ok ${OBJECTDIR}/ublox.o.err 
-       @${FIXDEPS} "${OBJECTDIR}/ublox.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/ublox.o.d" -o ${OBJECTDIR}/ublox.o ublox.c  
+       @${FIXDEPS} "${OBJECTDIR}/ublox.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/ublox.o.d" -o ${OBJECTDIR}/ublox.o ublox.c   -Winline
        
 ${OBJECTDIR}/myad.o: myad.c  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} ${OBJECTDIR} 
        @${RM} ${OBJECTDIR}/myad.o.d 
        @${RM} ${OBJECTDIR}/myad.o.ok ${OBJECTDIR}/myad.o.err 
-       @${FIXDEPS} "${OBJECTDIR}/myad.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/myad.o.d" -o ${OBJECTDIR}/myad.o myad.c  
+       @${FIXDEPS} "${OBJECTDIR}/myad.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/myad.o.d" -o ${OBJECTDIR}/myad.o myad.c   -Winline
        
 ${OBJECTDIR}/main.o: main.c  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} ${OBJECTDIR} 
        @${RM} ${OBJECTDIR}/main.o.d 
        @${RM} ${OBJECTDIR}/main.o.ok ${OBJECTDIR}/main.o.err 
-       @${FIXDEPS} "${OBJECTDIR}/main.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/main.o.d" -o ${OBJECTDIR}/main.o main.c  
-       
-${OBJECTDIR}/myspi.o: myspi.c  nbproject/Makefile-${CND_CONF}.mk
-       @${MKDIR} ${OBJECTDIR} 
-       @${RM} ${OBJECTDIR}/myspi.o.d 
-       @${RM} ${OBJECTDIR}/myspi.o.ok ${OBJECTDIR}/myspi.o.err 
-       @${FIXDEPS} "${OBJECTDIR}/myspi.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/myspi.o.d" -o ${OBJECTDIR}/myspi.o myspi.c  
+       @${FIXDEPS} "${OBJECTDIR}/main.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/main.o.d" -o ${OBJECTDIR}/main.o main.c   -Winline
        
 ${OBJECTDIR}/ring.o: ring.c  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} ${OBJECTDIR} 
        @${RM} ${OBJECTDIR}/ring.o.d 
        @${RM} ${OBJECTDIR}/ring.o.ok ${OBJECTDIR}/ring.o.err 
-       @${FIXDEPS} "${OBJECTDIR}/ring.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/ring.o.d" -o ${OBJECTDIR}/ring.o ring.c  
+       @${FIXDEPS} "${OBJECTDIR}/ring.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/ring.o.d" -o ${OBJECTDIR}/ring.o ring.c   -Winline
+       
+${OBJECTDIR}/myspi.o: myspi.c  nbproject/Makefile-${CND_CONF}.mk
+       @${MKDIR} ${OBJECTDIR} 
+       @${RM} ${OBJECTDIR}/myspi.o.d 
+       @${RM} ${OBJECTDIR}/myspi.o.ok ${OBJECTDIR}/myspi.o.err 
+       @${FIXDEPS} "${OBJECTDIR}/myspi.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/myspi.o.d" -o ${OBJECTDIR}/myspi.o myspi.c   -Winline
        
 endif
 
index 03b18d0..5542940 100644 (file)
@@ -1,5 +1,5 @@
 #
-#Tue Nov 22 21:08:51 JST 2011
+#Mon Nov 28 11:11:47 JST 2011
 default.languagetoolchain.dir=/opt/microchip/mplabc30/v3.30c/bin
 com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=11bb82e71763925c87fa30f6c65473b1
 default.languagetoolchain.version=3_30
index e520031..20cfb21 100644 (file)
@@ -31,6 +31,8 @@
       <itemPath>myint.h</itemPath>
       <itemPath>myspi.c</itemPath>
       <itemPath>myspi.h</itemPath>
+      <itemPath>mysts.c</itemPath>
+      <itemPath>mysts.h</itemPath>
       <itemPath>myuart.c</itemPath>
       <itemPath>myuart.h</itemPath>
       <itemPath>ring.c</itemPath>
         <property key="pre-instruction-scheduling" value="default"/>
         <property key="enable-large-arrays" value="false"/>
         <property key="scalar-model" value="default"/>
+        <appendMe value="-Winline"/>
       </C30>
       <C30-AS>
         <property key="omit-debug-dirs" value="false"/>
         <property key="extra-include-directories-for-assembler" value=""/>
         <property key="preprocessor-macros" value=""/>
         <property key="list-file" value=""/>
-        <property key="list-source" value="false"/>
         <property key="list-assembly" value="false"/>
+        <property key="list-source" value="false"/>
         <property key="relax" value="false"/>
         <property key="extra-include-directories-for-preprocessor" value=""/>
         <property key="warning-level" value="emit-warnings"/>
diff --git a/ring.c b/ring.c
index 0d29ea0..e2eeb6e 100644 (file)
--- a/ring.c
+++ b/ring.c
@@ -5,9 +5,9 @@
        write位置
        read位置
 */
-static unsigned char   r_write;
-static unsigned char   r_read;
-static unsigned char   r_num;
+unsigned char  r_write;
+unsigned char   r_read;
+unsigned char  r_num;
 
 /*
 */
@@ -20,29 +20,16 @@ void ring_init(void)
 /*
     読み出し位置
 */
-unsigned char ring_read_get(void)
-{
-    return r_read;
-}
 void ring_read_set(unsigned char i)
 {
-       r_read = i;
+    r_read = i;
 }
 void ring_read_plus(void)
 {
-       r_read++;
-       if (r_read >= r_num) r_read = 0;
-}
-// 書き込み位置
-unsigned char ring_write_get(void)
-{
-    return r_write;
-}
-void ring_write_plus(void)
-{
-    r_write++;
-    if (r_write >= r_num) r_write = 0;
+    r_read++;
+    if (r_read >= r_num) r_read = 0;
 }
+
 // 読み込んでいないデータ数
 unsigned char ring_num_get()
 {
diff --git a/ring.h b/ring.h
index 6a80ed8..bdcf379 100644 (file)
--- a/ring.h
+++ b/ring.h
@@ -5,17 +5,26 @@
 
 #define RING_NUM    6
 
+extern unsigned char   r_write;
+extern unsigned char    r_read;
+extern unsigned char   r_num;
+
 #define ring_clear()    ring_read_set(ring_write_get(t))
 
 void ring_init(void);
+
 //読み出し位置
-unsigned char ring_read_get(void);
+#define ring_read_get() r_read
 void ring_read_set(unsigned char i);
 void ring_read_plus(void);
 
 // 書き込み位置
-unsigned char ring_write_get(void);
-void ring_write_plus(void);
+#define ring_write_get()    r_write
+inline extern void ring_write_plus(void)
+{
+    r_write++;
+    if (r_write >= r_num) r_write = 0;
+}
 
 unsigned char ring_num_get();
 unsigned char ring_is_full(void);