Line 2... |
Line 2... |
2 |
|
2 |
|
3 |
// NEPOUZIVAT PINY B6 A B7, JSOU VYHRAZENY PRO SERIOVOU KOMUNIKACI |
3 |
// NEPOUZIVAT PINY B6 A B7, JSOU VYHRAZENY PRO SERIOVOU KOMUNIKACI |
4 |
// BAUD RATE = 9600 |
4 |
// BAUD RATE = 9600 |
5 |
|
5 |
|
6 |
// univerzalni LED diody |
6 |
// univerzalni LED diody |
7 |
#define LED1 PIN_A4 |
7 |
#define LED1 PIN_E0 |
8 |
#define LED2 PIN_A5 |
8 |
#define LED2 PIN_E1 |
9 |
|
9 |
|
10 |
// piezo pipak |
10 |
// piezo pipak |
11 |
#DEFINE SOUND_HI PIN_B4 |
11 |
#DEFINE SOUND_HI PIN_B4 |
12 |
#DEFINE SOUND_LO PIN_B5 |
12 |
#DEFINE SOUND_LO PIN_B5 |
13 |
|
13 |
|
14 |
// radkovy senzor |
14 |
// radkovy senzor |
15 |
#define SDIN PIN_D4 // seriovy vstup |
15 |
#define SDIN PIN_D4 // seriovy vstup |
16 |
#define SDOUT input(PIN_B2) // seriovy vystup |
16 |
#define SDOUT input(PIN_C5) // seriovy vystup |
17 |
#define SCLK PIN_D5 // takt |
17 |
#define SCLK PIN_D5 // takt |
18 |
|
18 |
|
19 |
// pro komunikaci s OLSA, prvni se posila LSB |
19 |
// pro komunikaci s OLSA, prvni se posila LSB |
20 |
int main_reset[8]={1,1,0,1,1,0,0,0}; // hlavni reset 0x1B |
20 |
int main_reset[8]={1,1,0,1,1,0,0,0}; // hlavni reset 0x1B |
21 |
int set_mode_rg[8]={1,1,1,1,1,0,1,0}; // zapis do MODE registru 0x5F |
21 |
int set_mode_rg[8]={1,1,1,1,1,0,1,0}; // zapis do MODE registru 0x5F |
Line 39... |
Line 39... |
39 |
int olsa_lseg[51]={0}; // leva cast radky (pixely 0 - 50) |
39 |
int olsa_lseg[51]={0}; // leva cast radky (pixely 0 - 50) |
40 |
int olsa_rseg[51]={0}; // prava cast radky (pixely 51 - 101) |
40 |
int olsa_rseg[51]={0}; // prava cast radky (pixely 51 - 101) |
41 |
int8 *line_lp=&olsa_lseg; // ukazatel na levou cast radky |
41 |
int8 *line_lp=&olsa_lseg; // ukazatel na levou cast radky |
42 |
int8 *line_rp=&olsa_rseg; // ukazatel na pravou cast radky |
42 |
int8 *line_rp=&olsa_rseg; // ukazatel na pravou cast radky |
43 |
|
43 |
|
44 |
int8 pixel_dec; // dec hodnota jednoho pixelu |
- |
|
45 |
int1 pixel_bin[8]={0}; // bin hodnota jednoho pixelu |
- |
|
46 |
int8 pixel_counter; // pocet prectenych pixelu |
- |
|
47 |
int8 rbit; // pocet prectenych bitu |
- |
|
48 |
int8 cbit; // pocet prevedenych pixelu |
- |
|
49 |
|
- |
|
50 |
//naraznik |
44 |
//naraznik |
51 |
#define BUMPL input(PIN_D6) |
45 |
#define BUMPL input(PIN_D6) |
52 |
#define BUMPR input(PIN_D7) |
46 |
#define BUMPR input(PIN_D7) |
53 |
|
47 |
|
54 |
//nouzove senzory |
48 |
//nouzove senzory |
Line 324... |
Line 318... |
324 |
olsa_reset(); |
318 |
olsa_reset(); |
325 |
olsa_setup(); |
319 |
olsa_setup(); |
326 |
beep(500,200); // pipni pri startu |
320 |
beep(500,200); // pipni pri startu |
327 |
printf("OK! \r\n"); |
321 |
printf("OK! \r\n"); |
328 |
delay_ms(500); |
322 |
delay_ms(500); |
329 |
printf("VYBRAT MOD... \r\n"); |
323 |
printf("VYBRAT MOD... \r\n"); |
- |
|
324 |
olsa_integration(); |
- |
|
325 |
olsa_send(readout); |
330 |
while(true) |
326 |
while(true) |
- |
|
327 |
{ |
- |
|
328 |
int1 rbit; // hodnota cteneho bitu |
- |
|
329 |
int8 cbit; // pocet prectenych |
- |
|
330 |
int pixel_bits[8]={0}; // pixel bitove |
- |
|
331 |
int8 pixel; |
- |
|
332 |
|
- |
|
333 |
if(!SDOUT) // zacatek prenosu |
- |
|
334 |
{ |
- |
|
335 |
pixel=0; |
- |
|
336 |
for(cbit=0;cbit<8;cbit++) // cte jednotlive bity (8 bitu - 0 az 7) |
- |
|
337 |
olsa_pulse(); // impulz pro generovani dalsiho bitu |
- |
|
338 |
{ |
- |
|
339 |
if(SDOUT) // zachycena 1 |
- |
|
340 |
{ |
- |
|
341 |
pixel|1; |
- |
|
342 |
} |
- |
|
343 |
else // zachycena 0 |
- |
|
344 |
{ |
- |
|
345 |
pixel>>1; |
- |
|
346 |
} |
- |
|
347 |
} |
- |
|
348 |
printf("pixel: %u \r\n",pixel); |
- |
|
349 |
} |
- |
|
350 |
else |
331 |
{ |
351 |
{ |
332 |
olsa_integration(); |
352 |
olsa_pulse(); |
- |
|
353 |
} |
333 |
} |
354 |
} |
334 |
} |
355 |
} |