OpenCores
URL https://opencores.org/ocsvn/395_vgs/395_vgs/trunk

Subversion Repositories 395_vgs

[/] [395_vgs/] [trunk/] [src/] [PIC18/] [input.c] - Blame information for rev 31

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 31 zuofu
#include <system.h>
2
#include "input.h"
3
 
4
 
5
#pragma CLOCK_FREQ 50000000
6
 
7
char getinput()
8
{
9
 
10
        set_bit(portd, 5);
11
        delay_us(12);
12
        clear_bit(portd, 5);
13
        delay_us(6);
14
 
15
        set_bit(rcsta, SREN);           //Single reception
16
 
17
        if(pir1 & 0b00100000)
18
        {
19
                return rcreg;
20
        }
21
 
22
}
23
 
24
void setupinput(void)
25
{
26
        set_bit(trisc, 7);
27
        spbrg = 255;
28
 
29
        set_bit(txsta,SYNC);
30
        set_bit(rcsta,SPEN);
31
        set_bit(txsta,CSRC);
32
        clear_bit(rcsta, SREN);
33
        clear_bit(rcsta, CREN);
34
 
35
        clear_bit(portd, 5);
36
}
37
 
38
char getlonginput(void)
39
{
40
        char Output = 00000000b;
41
 
42
        set_bit(portd, 5);
43
        delay_us(12);
44
        clear_bit(portd, 5);
45
        delay_us(6);
46
 
47
        if(portd | 01111111b)
48
        {
49
                Output = 00000001b;
50
        }
51
 
52
        set_bit(portd, 1);
53
        if(portd | 01111111b)
54
        {
55
                Output = 00000010b | Output;
56
        }
57
 
58
        clear_bit(portd, 1);
59
        delay_us(6);
60
        set_bit(portd, 1);
61
 
62
        if(portd | 01111111b)
63
        {
64
                Output = 00000100b | Output;
65
        }
66
 
67
        clear_bit(portd, 1);
68
        delay_us(6);
69
        set_bit(portd, 1);
70
 
71
        if(portd | 01111111b)
72
        {
73
                Output = 00001000b | Output;
74
        }
75
 
76
        clear_bit(portd, 1);
77
        delay_us(6);
78
        set_bit(portd, 1);
79
 
80
        if(portd | 01111111b)
81
        {
82
                Output = 00010000b | Output;
83
        }
84
 
85
        clear_bit(portd, 1);
86
        delay_us(6);
87
        set_bit(portd, 1);
88
 
89
        if(portd | 01111111b)
90
        {
91
                Output = 00100000b | Output;
92
        }
93
 
94
        clear_bit(portd, 1);
95
        delay_us(6);
96
        set_bit(portd, 1);
97
 
98
        if(portd | 01111111b)
99
        {
100
                Output = 01000000b | Output;
101
        }
102
 
103
        clear_bit(portd, 1);
104
        delay_us(6);
105
        set_bit(portd, 1);
106
 
107
        if(portd | 01111111b)
108
        {
109
                Output = 10000000b | Output;
110
        }
111
        clear_bit(portd, 1);
112
        delay_us(6);
113
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.