Rev Author Line No. Line
1744 kakl 1 #include "main.h"
2012 kaklik 2 #include <math.h>
1744 kakl 3  
2012 kaklik 4 #use fast_io (D)
5  
1886 kakl 6 #define VERSION 0.2
1757 kakl 7  
1759 kakl 8 #define START PIN_D4
9 #define STOP1 PIN_D5
2012 kaklik 10 #define STOP2 PIN_D7
1886 kakl 11  
1774 kaklik 12 #include "GP2.h"
1759 kakl 13  
1774 kaklik 14 #define ONE_WIRE_PIN PIN_E2
15 #include "ds1820.c"
16  
1744 kakl 17 void main()
18 {
2012 kaklik 19 /* setup_adc_ports(NO_ANALOGS|VSS_VDD);
1744 kakl 20 setup_adc(ADC_CLOCK_DIV_2);
21 setup_psp(PSP_DISABLED);
22 setup_spi(SPI_SS_DISABLED);
23 setup_wdt(WDT_OFF);
24 setup_timer_0(RTCC_INTERNAL);
25 setup_timer_1(T1_DISABLED);
26 setup_timer_2(T2_DISABLED,0,1);
27 setup_ccp1(CCP_OFF);
28 setup_comparator(NC_NC_NC_NC);
29 setup_vref(FALSE);
2012 kaklik 30 */
31 setup_adc_ports(NO_ANALOGS|VSS_VDD);
32 setup_adc(ADC_CLOCK_DIV_2);
33 setup_spi(SPI_SS_DISABLED);
34 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
35 setup_timer_1(T1_DISABLED);
36 setup_timer_2(T2_DISABLED,0,1);
37 setup_ccp1(CCP_OFF);
38 setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
1744 kakl 39  
2012 kaklik 40 set_tris_d(0x00);
41  
1745 kakl 42 TDC_reset();
1886 kakl 43  
1759 kakl 44 output_low(START);
45 output_low(STOP1);
46 output_low(STOP2);
1815 kaklik 47  
48 delay_ms(50);
49  
1886 kakl 50 int16 ret16;
51 int8 ret8;
1815 kaklik 52  
1967 kaklik 53 TDC_reset();
54 delay_ms(100);
1886 kakl 55  
1980 kaklik 56 while(TRUE)
57 {
2015 kaklik 58  
1886 kakl 59 //----------------------------------------------- Nastaveni registru
1980 kaklik 60  
61 MRange=TDC_MRANGE2; // sets measurement mode
1965 kaklik 62 hit1=TDC_MRANGE2_HIT1_START;
1980 kaklik 63 hitin1=TDC_HITIN1_4; // set nomber of hits on channel 1
64 hitin2=TDC_HITIN2_0; // disable channel 2 (normal state for this mode)
65 en_int= TDC_INT_ALU | TDC_INT_ENDHIT | TDC_INT_TIMEOUT; // eneble all possible interrupt flags
66 en_err_val=TDC_ERRVAL_EN; // enable of error value output
67 clkhsdiv=TDC_CLKHSDIV_4; // divide clkHS by 4
68  
69 delval1=0x0; // windowing disabled
1965 kaklik 70 delval2=0x0;
71 delval3=0x0;
72  
73 TDC_update_registers();
1931 kaklik 74  
1967 kaklik 75 delay_ms(100);
1980 kaklik 76  
77 //----------------------------------------------- Mereni 2
1886 kakl 78  
79 TDC_init();
80  
1759 kakl 81 delay_ms(50);
1886 kakl 82  
83 TDC_start_cycle();
84  
85 delay_ms(200);
86  
2014 kaklik 87 output_high(STOP2); // Merime jenom jednim kanalem (druhy zrejme byt v H)
1886 kakl 88  
1759 kakl 89 output_high(START);
1886 kakl 90 output_low(START);
1967 kaklik 91 delay_us(150);
1798 kaklik 92  
1886 kakl 93 output_high(STOP1);
94 output_low(STOP1);
95 delay_us(1);
1759 kakl 96  
1815 kaklik 97 output_high(STOP1);
1886 kakl 98 output_low(STOP1);
1966 kaklik 99 delay_us(10);
1886 kakl 100  
101 output_high(STOP1);
102 output_low(STOP1);
1967 kaklik 103 delay_us(1);
1886 kakl 104  
105 //----------------------------------------------- Pocitani
1964 kaklik 106  
2013 kaklik 107 // printf("Time2: %LX %LX %LX %LX ", TDC_get_measurement(1), TDC_get_measurement(2), TDC_get_measurement(3), TDC_get_measurement(4));
2012 kaklik 108  
1886 kakl 109  
1964 kaklik 110 output_low(TDC_ENABLE); //status register
1886 kakl 111 ret8=0;
112 ret8=(0b1011<<4)|4;
113 spi_xfer(TDC_stream,ret8,8);
114 ret16=spi_xfer(TDC_stream,0,16);
115 output_high(TDC_ENABLE);
1967 kaklik 116 printf("[%Lu %Lu %Lu %Lu %Lu %Lu %Lu]\r\n", (1&(ret16)>>12), (1&(ret16)>>11), (1&(ret16)>>10), 1&(ret16)>>9, 7&(ret16)>>6, 7&(ret16)>>3, 7&TDC_get_status());
117  
2012 kaklik 118 printf("Time2: %3.7f %3.7f %3.7f \r\n", TDC_mrange2_get_time(1), TDC_mrange2_get_time(2), TDC_mrange2_get_time(3));
119  
120  
1980 kaklik 121 //----------------------------------------------- Nastaveni registru
122  
123 MRange=TDC_MRANGE1;
124 hit1=TDC_MRANGE1_HIT1_NOAC;
125 hit2=TDC_MRANGE1_HIT2_NOAC;
126 hitin1=TDC_HITIN1_1;
127 hitin2=TDC_HITIN2_1;
128 en_int= TDC_INT_ALU | TDC_INT_ENDHIT | TDC_INT_TIMEOUT;
129 en_err_val=TDC_ERRVAL_EN;
130 clkhsdiv=TDC_CLKHSDIV_4;
131 delval1=0x0;
132 delval2=0x0;
133 delval3=0x0;
134  
135 TDC_update_registers();
136  
137 delay_ms(100);
138  
139  
140 //----------------------------------------------- Mereni 1
141  
142 TDC_init();
143  
144 delay_ms(50);
145 output_low(START);
146 output_low(STOP1);
147 output_low(STOP2);
148  
149 output_high(START); // start of time measurement
150  
151 output_high(STOP2);
2013 kaklik 152 output_high(STOP1);
2012 kaklik 153  
154 output_low(STOP1);
155 output_low(STOP2);
156 output_low(START);
1980 kaklik 157  
2012 kaklik 158  
159  
1980 kaklik 160 //----------------------------------------------- Pocitani
161  
2013 kaklik 162 // printf("Time1: %LX %LX %LX %LX ", TDC_get_measurement(1), TDC_get_measurement(2), TDC_get_measurement(3), TDC_get_measurement(4));
2012 kaklik 163  
1980 kaklik 164 output_low(TDC_ENABLE); //status register
165 ret8=0;
166 ret8=(0b1011<<4)|4;
167 spi_xfer(TDC_stream,ret8,8);
168 ret16=spi_xfer(TDC_stream,0,16);
169 output_high(TDC_ENABLE);
2012 kaklik 170  
1980 kaklik 171 printf("[%Lu %Lu %Lu %Lu %Lu %Lu %Lu]\r\n", (1&(ret16)>>12), (1&(ret16)>>11), (1&(ret16)>>10), 1&(ret16)>>9, 7&(ret16)>>6, 7&(ret16)>>3, 7&TDC_get_status());
172  
2012 kaklik 173 printf("Time1: %3.7f %3.7f %3.7f \r\n", TDC_mrange1_get_time(1,0,1,1), TDC_mrange1_get_time(2,0,2,1), TDC_mrange1_get_time(1,1,2,1));
1980 kaklik 174  
175 /// ----------------------------------------------- Temperature masurement
176  
2013 kaklik 177  
178 TDC_reset();
179 portnum=TDC_TPORTNUM_4;
180 Tcycle=TDC_TCYCLE_SHORT;
181 fakenum=TDC_TFAKENUM_2;
182 selclkT=TDC_TSELCLK_128HS;
183  
184 TDC_update_registers();
185  
186 TDC_init();
1967 kaklik 187 TDC_start_temp();
2013 kaklik 188  
189  
1967 kaklik 190 output_low(TDC_ENABLE); //status register
191 ret8=0;
192 ret8=(0b1011<<4)|4;
193 spi_xfer(TDC_stream,ret8,8);
194 ret16=spi_xfer(TDC_stream,0,16);
195 output_high(TDC_ENABLE);
2011 kaklik 196 printf("Temp: %LX %LX %LX %LX ", TDC_get_measurement(1), TDC_get_measurement(2), TDC_get_measurement(3), TDC_get_measurement(4));
197 printf(" [%Lu %Lu %Lu %Lu %Lu %Lu %Lu] \r\n", (1&(ret16)>>12), (1&(ret16)>>11), (1&(ret16)>>10), 1&(ret16)>>9, 7&(ret16)>>6, 7&(ret16)>>3, 7&TDC_get_status());
1886 kakl 198 }
1744 kakl 199 }