Subversion Repositories svnkaklik

Rev

Rev 482 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 482 Rev 659
1
#define ONE_WIRE_PIN   PIN_A3 // pro pristup k cidlu jsem zvolil
1
#define ONE_WIRE_PIN   PIN_A3 // pro pristup k cidlu jsem zvolil
2
 
2
 
3
void onewire_reset()
3
void onewire_reset()
4
{
4
{
5
output_low(ONE_WIRE_PIN);
5
output_low(ONE_WIRE_PIN);
6
delay_us(240);
6
delay_us(240);
7
output_float(ONE_WIRE_PIN);
7
output_float(ONE_WIRE_PIN);
8
delay_us(150);
8
delay_us(150);
9
output_float(ONE_WIRE_PIN);
9
output_float(ONE_WIRE_PIN);
10
}
10
}
11
 
11
 
12
void onewire_write(int data)
12
void onewire_write(int data)
13
{
13
{
14
int count;
14
int count;
15
 
15
 
16
for (count=0; count<8; ++count)
16
for (count=0; count<8; ++count)
17
{
17
{
18
output_low(ONE_WIRE_PIN);
18
output_low(ONE_WIRE_PIN);
19
delay_us( 2 );
19
delay_us( 2 );
20
output_bit(ONE_WIRE_PIN, shift_right(&data,1,1));
20
output_bit(ONE_WIRE_PIN, shift_right(&data,1,1));
21
 
21
 
22
   delay_us( 40 );
22
   delay_us( 40 );
23
   output_float(ONE_WIRE_PIN);
23
   output_float(ONE_WIRE_PIN);
24
   delay_us( 2 );
24
   delay_us( 2 );
25
}
25
}
26
}
26
}
27
 
27
 
28
int onewire_read()
28
int onewire_read()
29
{
29
{
30
int count, data;
30
int count, data;
31
 
31
 
32
for (count=0; count<8; ++count)
32
for (count=0; count<8; ++count)
33
{
33
{
34
output_low(ONE_WIRE_PIN);
34
output_low(ONE_WIRE_PIN);
35
delay_us( 2 );
35
delay_us( 2 );
36
output_float(ONE_WIRE_PIN);
36
output_float(ONE_WIRE_PIN);
37
delay_us( 8 );
37
delay_us( 8 );
38
shift_right(&data,1,input(ONE_WIRE_PIN));
38
shift_right(&data,1,input(ONE_WIRE_PIN));
39
    delay_us(5);
39
    delay_us(5);
40
}
40
}
41
 
41
 
42
return( data );
42
return( data );
43
}
43
}