/Designs/Data_loggers/GPSRL04C/SW/PIC/Spectrometer/main.c
0,0 → 1,68
#include "main.h"
 
 
#define LED PIN_D7
 
#define RECORDS 100
 
void main()
{
 
int16 time, time_new;
int16 log[RECORDS];
int16 n;
setup_adc_ports(AN0_TO_AN7|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_EXT_H_TO_L);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_ccp1(CCP_OFF);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
 
output_low(LED);
/*
while(true)
{
output_low(LED);
delay_ms(1);
output_high(LED);
delay_ms(1);
printf("%u\n\r", 0x55);
}
//*/
n=0;
while(true)
{
set_timer0(0);
time = 0;
time_new = 0;
while(time_new == 0)
{
time_new=get_timer0();
}
output_high(LED);
while(time != time_new)
{
time=time_new;
time_new=get_timer0();
delay_us(5);
}
if (time>3){ log[n++]=time;}
if (n==RECORDS)
{
for (n=0; n<RECORDS; n++) printf("%Lu,", log[n]);
printf("\n\r");
n = 0;
}
output_low(LED);
}
}
/Designs/Data_loggers/GPSRL04C/SW/PIC/Spectrometer/main.h
0,0 → 1,35
#include <18F4550.h>
#device adc=8
 
#FUSES NOWDT //No Watch Dog Timer
#FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //No brownout reset
#FUSES BORV20 //Brownout reset at 2.0V
#FUSES NOPUT //No Power Up Timer
#FUSES NOCPD //No EE protection
#FUSES STVREN //Stack full/underflow will cause reset
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOWRT //Program memory not write protected
#FUSES NOWRTD //Data EEPROM not write protected
#FUSES IESO //Internal External Switch Over mode enabled
#FUSES NOFCMEN //Fail-safe clock monitor enabled
#FUSES PBADEN //PORTB pins are configured as analog input channels on RESET
#FUSES NOWRTC //configuration not registers write protected
#FUSES NOWRTB //Boot block not write protected
#FUSES NOEBTR //Memory not protected from table reads
#FUSES NOEBTRB //Boot block not protected from table reads
#FUSES NOCPB //No Boot Block code protection
#FUSES MCLR //Master Clear pin enabled
#FUSES LPT1OSC //Timer1 configured for low-power operation
#FUSES NOXINST //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#FUSES PLL1 //Divide By 12(48MHz oscillator input)
#FUSES CPUDIV1 //System Clock by 4
//#FUSES USBDIV //USB clock source comes from PLL divide by 2
//#FUSES VREGEN //USB voltage regulator enabled
//#FUSES ICPRT //ICPRT enabled
 
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)