-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFirePIC_PiTranslator.cp
126 lines (87 loc) · 1.4 KB
/
FirePIC_PiTranslator.cp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#line 1 "C:/Users/alenn/Desktop/Summer Work 2017/FireflyDiagnosticKit/FirePIC_PiTranslator.c"
#line 18 "C:/Users/alenn/Desktop/Summer Work 2017/FireflyDiagnosticKit/FirePIC_PiTranslator.c"
char receivedByte = 0;
char counter = 0;
#line 27 "C:/Users/alenn/Desktop/Summer Work 2017/FireflyDiagnosticKit/FirePIC_PiTranslator.c"
void interrupt(){
asm{
ISR:
MOVLB 0
BTFSC PIR1, RCIF
GOTO SEND_DATA
RETFIE
RESET_9BIT_COUNTER:
MOVLB 0
MOVLW 2
MOVWF _counter
RETFIE
TURN_ON_BIT_9:
MOVLB 3
BSF TXSTA, TX9D
MOVLB 0
DECF _counter, 1
RETURN
SEND_DATA:
MOVLB 0
BCF PIR1, RCIF
MOVLB 3
MOVF RCREG, 0
MOVLB 0
MOVWF _receivedByte
SUBLW 0xF0;
BTFSC STATUS, Z
GOTO RESET_9BIT_COUNTER
MOVLB 3
BCF TXSTA, TX9D
MOVLB 0
MOVF _counter,0
BTFSS STATUS, Z
CALL TURN_ON_BIT_9
MOVLB 0
MOVF _receivedByte, 0
MOVLB 3
MOVWF TXREG
RETFIE
}
}
#line 98 "C:/Users/alenn/Desktop/Summer Work 2017/FireflyDiagnosticKit/FirePIC_PiTranslator.c"
void main(){
asm{
CONFIG_PIC:
MOVLB 1
MOVLW 0xFC
MOVWF TRISA
MOVLB 0
CLRF PORTA
MOVLB 1
MOVLW 0xF0
MOVWF OSCCON
MOVLB 3
CLRF ANSELA
MOVLB 2
MOVLW 0x84
MOVWF APFCON
MOVLB 3
CLRF SPBRGH
MOVLB 3
MOVLW 1
MOVWF SPBRGL
MOVLB 3
MOVLW 0x04
MOVWF BAUDCON
MOVLB 3
MOVLW 0x64
MOVWF TXSTA
MOVLB 3
MOVLW 0x90
MOVWF RCSTA
MOVLB 0
CLRF _counter
MOVLB 1
BSF PIE1, RCIE
CLRF INTCON
BSF INTCON, PEIE
BSF INTCON, GIE
}
while(1){}
}