28,10 → 28,10 |
#int_TIMER1 |
void TIMER1_isr(void) |
{ |
output_toggle(PIN_D1); |
anemo = ((timer0_overflow_count * 0xFF) + get_timer0())/(32768.0/0xFFFF); |
timer0_overflow_count=0; |
set_timer0(0); |
output_toggle(PIN_E0); |
// anemo = ((timer0_overflow_count * 0xFF) + get_timer0())/(32768.0/0xFFFF); |
// timer0_overflow_count=0; |
// set_timer0(0); |
} |
|
#int_TIMER0 |
40,8 → 40,14 |
timer0_overflow_count++; |
} |
|
#int_default |
default_isr() |
{ |
|
printf("Unexplained interrupt\r\n"); |
|
} |
|
void welcome(void) // Welcome message |
{ |
char REV[50]=ID; // Buffer for concatenate of a version string |
48,8 → 54,10 |
|
if (REV[strlen(REV)-1]=='$') REV[strlen(REV)-1]=0; |
printf("\r\n\r\n# AWS01A %s (C) 2013 www.mlab.cz \r\n",VER); // Welcome message |
restart_wdt(); //---WDT |
printf("#%s\r\n",&REV[4]); |
printf("# ver seq temp[mK] hum_temp[mK] hum[%%] "); |
restart_wdt(); //---WDT |
printf("bar_temp[mK] pressure[hPa] Anemo[pls/s]check\r\n\r\n"); |
|
restart_wdt(); //---WDT |
59,35 → 67,52 |
{ |
unsigned int16 seq=0; |
|
restart_wdt(); //---WDT |
setup_adc_ports(NO_ANALOGS|VSS_VDD); |
setup_adc(ADC_CLOCK_DIV_2); |
setup_timer_0(RTCC_EXT_L_TO_H|RTCC_DIV_1); |
setup_timer_1(T1_EXTERNAL|T1_DIV_BY_1|T1_CLK_OUT); |
//!!! setup_timer_0(RTCC_EXT_L_TO_H|RTCC_DIV_1); |
// setup_timer_1(T1_INTERNAL|T1_DIV_BY_1|T1_CLK_OUT); |
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); |
setup_timer_2(T2_DISABLED,0,1); |
setup_ccp1(CCP_OFF); |
setup_comparator(NC_NC_NC_NC); // This device COMP currently not supported by the PICWizard |
// setup_oscillator(OSC_8MHZ); // pri prouziti bootloaderu neni treba nastavovat |
// setup_wdt(WDT_1152MS|WDT_DIV_16); |
// setup_wdt(WDT_2304MS); |
setup_spi(SPI_MASTER | SPI_MODE_0 | SPI_CLK_DIV_64); |
output_high(CSN_SPI); |
|
delay_ms(100); |
// delay_ms(100); |
|
welcome(); // welcome print and device indentification |
output_low(PIN_E1); |
// delay_ms(100); |
restart_wdt(); //---WDT |
|
sht_init(); |
MPL_init(); // get correction coefficients from the sensor |
// sht_init(); |
// MPL_init(); // get correction coefficients from the sensor |
|
enable_interrupts(INT_TIMER1); // interrupts used for anemometer readings |
// enable_interrupts(INT_TIMER0); |
enable_interrupts(GLOBAL); |
//enable_interrupts(INT_TIMER0); |
// disable_interrupts(INT_RDA); |
enable_interrupts(GLOBAL); |
|
output_high(PIN_E1); |
// delay_ms(200); |
restart_wdt(); //---WDT |
while (TRUE) |
{ |
// output_toggle(PIN_E0); |
delay_ms(200); |
restart_wdt(); //---WDT |
|
} |
|
while (TRUE) |
{ |
char output[8]; // Output buffer |
int8 j; // String pointer |
int8 check=0; // Checksum is calculated between '$' and '*' |
float SHT_temp,SHT_hum; |
float SHT_temp=0,SHT_hum=0; |
float local_temp; |
float barometer_temperature, barometer_pressure; |
|
123,7 → 148,7 |
j=0; while(output[j]!=0) { delay_us(SEND_DELAY); putc(output[j++]); } |
delay_us(SEND_DELAY); |
} |
|
// output_toggle(PIN_E0); |
//---WDT |
restart_wdt(); |
seq++; // Increment the number of measurement |