GPS 1PPS INT0 handler: ad pps sync.
sts.c add
+++ /dev/null
-build/default/debug/byte2var.o: byte2var.c
+++ /dev/null
-build/default/debug/debug_print.o: debug_print.c myuart.h
+++ /dev/null
-build/default/debug/main.o: main.c myuart.h myspi.h debug_print.h ublox.h \
- myad.h delay.h ring.h byte2var.h
+++ /dev/null
-build/default/debug/myad.o: myad.c delay.h myspi.h myad.h
+++ /dev/null
-build/default/debug/myspi.o: myspi.c myspi.h
+++ /dev/null
-build/default/debug/myuart.o: myuart.c myuart.h
+++ /dev/null
-build/default/debug/ring.o: ring.c ring.h
+++ /dev/null
-build/default/debug/ublox.o: ublox.c ublox.h myuart.h byte2var.h
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
#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)
// 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;
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)
{
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
adint_cnt = 0;
ad_cs_dis();
+ sts_set(STS_NOSYNC);
pps_intf_clear();
// GPS UART1初期設定 BRGH=Standard mode
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
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]);
*/
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);
+ }
}
/*
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
l = byte3_to_long(in);
// バッファに書きこみ
adbuf_write(ring_write_get(), adint_ch, adint_cnt, &l);
- // 平均用加算
+ // 1秒平均用加算
adint_add[adint_ch] += l;
// CH進める
adint_ch++;
+/*
+ * ADS1259
+ *
+ * ADデータSPIエンディアン MSB first
+ */
#include <p24FJ64GA004.h>
#include <libpic30.h>
#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=なし
asm("NOP");
CS_DATA = 0;
}
+# if 0
/*
int cs: 0〜15
*/
asm("NOP");
CS_RCLK = 0;
}
+
void ad_cs_dis(void)
{
unsigned char i;
asm("NOP");
CS_RCLK = 0;
}
+#endif
void ad_reset(void)
{
#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)
--- /dev/null
+/*
+ * main status
+ */
+
+char main_sts;
+
--- /dev/null
+/*
+ * 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
+
+
+
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=
@${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
#
-#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
<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"/>
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;
/*
*/
/*
読み出し位置
*/
-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()
{
#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);