Rev Author Line No. Line
1744 kakl 1 #include "main.h"
2  
1886 kakl 3 #define VERSION 0.2
1757 kakl 4  
1759 kakl 5 #define START PIN_D4
6 #define STOP1 PIN_D5
7 #define STOP2 PIN_D6
1886 kakl 8  
1774 kaklik 9 #include "GP2.h"
1759 kakl 10  
1774 kaklik 11 #define ONE_WIRE_PIN PIN_E2
12 #include "ds1820.c"
13  
1744 kakl 14 void main()
15 {
16 setup_adc_ports(NO_ANALOGS|VSS_VDD);
17 setup_adc(ADC_CLOCK_DIV_2);
18 setup_psp(PSP_DISABLED);
19 setup_spi(SPI_SS_DISABLED);
20 setup_wdt(WDT_OFF);
21 setup_timer_0(RTCC_INTERNAL);
22 setup_timer_1(T1_DISABLED);
23 setup_timer_2(T2_DISABLED,0,1);
24 setup_ccp1(CCP_OFF);
25 setup_comparator(NC_NC_NC_NC);
26 setup_vref(FALSE);
27  
1745 kakl 28 TDC_reset();
1886 kakl 29  
1759 kakl 30 output_low(START);
31 output_low(STOP1);
32 output_low(STOP2);
1815 kaklik 33  
34 delay_ms(50);
35  
1886 kakl 36 /*
37 1 0 0 0 0 ADR2 ADR1 ADR0 Write into address ADR
38 1 0 1 1 0 ADR2 ADR1 ADR0 Read from address ADR
39  
40  
41  
42  
43  
44  
45 */
1815 kaklik 46  
1964 kaklik 47 int32 ble;
1886 kakl 48 int16 ret16;
49 int8 ret8;
1815 kaklik 50  
1931 kaklik 51  
1886 kakl 52 while(TRUE)
1744 kakl 53 {
1931 kaklik 54 delay_ms(100);
55  
56  
1886 kakl 57 TDC_reset();
58 delay_ms(100);
59  
60 //----------------------------------------------- Nastaveni registru
1965 kaklik 61 /* output_low(TDC_ENABLE);
1886 kakl 62 ble=0;
1964 kaklik 63 ble=(8<<28)|(0<<24); // write addres
1886 kakl 64 ble|=(0<<20)|(0<<16)|(0<<14)|(3<<12)|(1<<10)|(0<<9)|(0<<8)|(0<<7)|(1<<6)|(1<<5)|(0<<4)|(1<<3)|(0<<2)|(0<<1)|0;
65 spi_xfer(TDC_stream,ble,32);
66 output_high(TDC_ENABLE);
67  
68 output_low(TDC_ENABLE);
69 ble=0;
70 ble=(8<<28)|(1<<24);
71 ble|=(2<<20)|(1<<16)|(0<<15)|(1<<14)|(0<<11)|(4<<8)|0;
72 spi_xfer(TDC_stream,ble,32);
73 output_high(TDC_ENABLE);
1815 kaklik 74  
1886 kakl 75 output_low(TDC_ENABLE);
76 ble=0;
77 ble=(8<<28)|(2<<24);
78 ble|=(1<<21)|(1<<20)|(1<<19)|0;
79 spi_xfer(TDC_stream,ble,32);
80 output_high(TDC_ENABLE);
81  
82 output_low(TDC_ENABLE);
83 ble=0;
84 ble=(8<<28)|(3<<24);
85 ble|=(0<<22)|(1<<21)|(1<<20)|(1<<19)|0;
86 spi_xfer(TDC_stream,ble,32);
87 output_high(TDC_ENABLE);
88  
89 output_low(TDC_ENABLE);
90 ble=0;
91 ble=(8<<28)|(4<<24);
92 ble|=(4<<19)|0;
93 spi_xfer(TDC_stream,ble,32);
94 output_high(TDC_ENABLE);
95  
96 output_low(TDC_ENABLE);
97 ble=0;
98 ble=(8<<28)|(5<<24);
99 ble|=(0<<21)|(0<<20)|(0<<19)|(0<<16)|0;
100 spi_xfer(TDC_stream,ble,32);
101 output_high(TDC_ENABLE);
1965 kaklik 102 */
1931 kaklik 103  
1965 kaklik 104 hit1=TDC_MRANGE2_HIT1_START;
105 // hit2=TDC_MRANGE2_HIT2_2CH1;
106 hitin1=TDC_HITIN1_4;
107 hitin2=TDC_HITIN2_0;
108 en_int= TDC_INT_ALU | TDC_INT_ENDHIT | TDC_INT_TIMEOUT;
109 en_err_val=TDC_ERRVAL_EN;
110 delval1=0x0;
111 delval2=0x0;
112 delval3=0x0;
113  
114 TDC_update_registers();
1931 kaklik 115  
1886 kakl 116 //----------------------------------------------- Vypis registru
1964 kaklik 117  
118 printf("- %LX %LX %LX %LX ", TDC_get_measurement(1), TDC_get_measurement(2), TDC_get_measurement(3), TDC_get_measurement(4));
1886 kakl 119  
120 output_low(TDC_ENABLE);
121 ret8=0;
122 ret8=(0b1011<<4)|4;
123 spi_xfer(TDC_stream,ret8,8);
124 ret16=spi_xfer(TDC_stream,0,16);
125 output_high(TDC_ENABLE);
126 printf("[%Lu %Lu %Lu %Lu %Lu %Lu %Lu] ", (1&(ret16)>>12), (1&(ret16)>>11), (1&(ret16)>>10), 1&(ret16)>>9, 7&(ret16)>>6, 7&(ret16)>>3, 7&ret16);
127  
1964 kaklik 128 printf("%X\r\n",TDC_get_reg1());
1886 kakl 129  
130 //----------------------------------------------- Mereni
131  
132 TDC_init();
133  
1759 kakl 134 delay_ms(50);
1886 kakl 135  
136 TDC_start_cycle();
137  
138 delay_ms(200);
139  
140 output_high(STOP2); // Merime jenom jednim kanalem (druhy zrejme musi byt v H)
141  
1759 kakl 142 output_high(START);
1886 kakl 143 output_low(START);
144 delay_us(1);
1798 kaklik 145  
1886 kakl 146 output_high(STOP1);
147 output_low(STOP1);
148 delay_us(1);
1759 kakl 149  
1886 kakl 150  
1815 kaklik 151 output_high(STOP1);
1886 kakl 152 output_low(STOP1);
153 delay_us(1);
154  
155 output_high(STOP1);
156 output_low(STOP1);
157 delay_us(1);
158  
159  
160  
161 //----------------------------------------------- Pocitani
162 int32 nn;
1965 kaklik 163 for(nn=1;nn<=3;nn++)
1886 kakl 164 {
165 delay_ms(500);
1964 kaklik 166  
167 printf("* %LX %LX %LX %LX ", TDC_get_measurement(1), TDC_get_measurement(2), TDC_get_measurement(3), TDC_get_measurement(4));
1886 kakl 168  
1964 kaklik 169 output_low(TDC_ENABLE); //status register
1886 kakl 170 ret8=0;
171 ret8=(0b1011<<4)|4;
172 spi_xfer(TDC_stream,ret8,8);
173 ret16=spi_xfer(TDC_stream,0,16);
174 output_high(TDC_ENABLE);
175 printf("[%Lu %Lu %Lu %Lu %Lu %Lu %Lu] ", (1&(ret16)>>12), (1&(ret16)>>11), (1&(ret16)>>10), 1&(ret16)>>9, 7&(ret16)>>6, 7&(ret16)>>3, 7&ret16);
1964 kaklik 176  
177 printf("%X\r\n",TDC_get_reg1());
1886 kakl 178  
1965 kaklik 179 switch (nn)
180 {
181 case 1:
182 hit2=TDC_MRANGE2_HIT2_1CH1;
183 break;
184  
185 case 2:
186 hit2=TDC_MRANGE2_HIT2_2CH1;
187 break;
188  
189 case 3:
190 hit2=TDC_MRANGE2_HIT2_3CH1;
191 break;
192 }
193 TDC_update_reg1();
194 }
1886 kakl 195 }
1744 kakl 196 }