?? int.lst
字號:
1 000000 ;************************************************
2 000000 ;Name :InterruptSub
3 000000 ;Function:
4 000000 ;Input :
5 000000 ;Output :
6 000000 ;Register Used:
7 000000 ;*************************************************
8 000000 InterruptSub:
9 000000 XCH A,AccBuf
10 000000 XCH A,PFLAG
11 000000 B0MOV PflagBuf,A
12 000000
13 000000 b0bts0 FTC0IRQ ;//Analyse the Interrupt resourc
14 000000 jmp TC0INTR
15 000000
16 000000 b0bts0 ft0irq
17 000000 jmp t0intr
18 000000
19 000000 b0bts0 FP00IRQ
20 000000 jmp P00INTR
21 000000
22 000000 Interrupt90:
23 000000 XCH A,PflagBuf
24 000000 B0MOV PFLAG,A
25 000000 XCH A,AccBuf ;//For release the Acc And Pflag
26 000000 RETI
27 000000 ;--------------------------------------------------------
28 000000 ;--------------------------------------------------------
29 000000 TC0INTR:
30 000000 ;// notbit ptwing
31 000000 ;// jmp TC0INTR90
32 000000 ;----------------------
33 000000 ;左右翼控制
34 000000 b0bts0 wingstatflag
35 000000 jmp TC0INTR10
36 000000 b0bset ptwing
37 000000 decms wingbuf
38 000000 jmp TC0INTR20
39 000000 b0bclr ptwing
40 000000 b0bset wingstatflag
41 000000 mov_ winglowbuf,#220 ;set low level 10ms
42 000000 mov_ wingbuf,wingloadbuf ;set high level
43 000000 ;-----
44 000000 TC0INTR10:
45 000000 decms winglowbuf
46 000000 jmp TC0INTR20
47 000000 b0bclr wingstatflag
48 000000 ;-----------------------
49 000000 TC0INTR20:
50 000000 ;尾翼控制
51 000000 b0bts0 empennagestatflag
52 000000 jmp TC0INTR30
53 000000 b0bset ptempennage
54 000000 decms empennagebuf
55 000000 jmp TC0INTR40
56 000000 b0bclr ptempennage
57 000000 b0bset empennagestatflag
58 000000 mov_ empennagelowbuf,#230 ;set low level 10ms
59 000000 mov_ empennagebuf,empennageloadbuf ;set high level
60 000000 ;-----
61 000000 TC0INTR30:
62 000000 decms empennagelowbuf
63 000000 jmp TC0INTR40
64 000000 b0bclr empennagestatflag
65 000000 ;-----------------------
66 000000 TC0INTR40:
67 000000 ;螺旋槳控制
68 000000 b0bts0 screwstatflag
69 000000 jmp TC0INTR50
70 000000 b0bset ptscrew
71 000000 decms screwbuf
72 000000 jmp TC0INTR60
73 000000 b0bclr ptscrew
74 000000 b0bset screwstatflag
75 000000 mov_ screwlowbuf,#240 ;set low level 10ms
76 000000 mov_ screwbuf,screwloadbuf ;set high level
77 000000 ;-----
78 000000 TC0INTR50:
79 000000 decms screwlowbuf
80 000000 jmp TC0INTR60
81 000000 b0bclr screwstatflag
82 000000 ;-----------------------
83 000000 TC0INTR60:
84 000000 ;擺尾控制
85 000000 b0bts0 swingstatflag
86 000000 jmp TC0INTR70
87 000000 b0bset ptswing
88 000000 decms swingbuf
89 000000 jmp TC0INTR80
90 000000 b0bclr ptswing
91 000000 b0bset swingstatflag
92 000000 mov_ swinglowbuf,#250 ;set low level 10ms
93 000000 mov_ swingbuf,swingloadbuf ;set high level
94 000000 ;-----
95 000000 TC0INTR70:
96 000000 decms swinglowbuf
97 000000 jmp TC0INTR80
98 000000 b0bclr swingstatflag
99 000000 ;-----
100 000000 TC0INTR80:
101 000000 TC0INTR90:
102 000000 b0bclr FTC0IRQ
103 000000 jmp Interrupt90
104 000000 ;--------------------------------------------------------
105 000000 ;--------------------------------------------------------
106 000000 t0intr:
107 000000 mov a,#6
108 000000 sub a,levecount
109 000000 bts0 fc
110 000000 jmp t0intr10
111 000000 bset errorflag
112 000000 jmp t0intr90
113 000000 t0intr10:
114 000000 incms levecount
115 000000 nop
116 000000 t0intr90:
117 000000 bclr ft0irq
118 000000 jmp interrupt90
119 000000 ;--------------------------------------------------------
120 000000 ;--------------------------------------------------------
121 000000 P00INTR:
122 000000 bclr fp00irq
123 000000 bclr ft0enb
124 000000 mov a,t0c
125 000000 bts1 singleflag
126 000000 jmp disasm100
127 000000 mov level,a ;上升沿進入
128 000000 jmp disasm200
129 000000 disasm100:
130 000000 mov leveh,a ;下降沿進入
131 000000 jmp disasm200
132 000000 disasm200:
133 000000 clr t0c
134 000000 bset ft0enb
135 000000 bts0 singleflag
136 000000 jmp disasm220
137 000000 jmp disasm210
138 000000 disasm210:
139 000000 @p00_edge 1 ;下降沿進入,設為上升沿中斷
140 000000 bts0 firstflag
141 000000 jmp disasm221
142 000000 mov a,levecount
143 000000 bts0 fz
144 000000 jmp disasm80
145 000000 bset firstflag
146 000000 clr levecount
147 000000 clr inputcount
148 000000 jmp disasm90
149 000000 disasm220:
150 000000 @p00_edge 2 ;上升沿進入,設為下降沿中斷
151 000000 mov a,#56 ;448us=8x56
152 000000 sub a,level
153 000000 bts0 fc
154 000000 jmp disasm80 ;小于448us,出錯
155 000000 mov a,#75 ;600us=8x75
156 000000 sub a,level
157 000000 bts0 fc
158 000000 jmp disasm90 ;小于600us,返回
159 000000 jmp disasm80 ;大于600us,出錯
160 000000
161 000000 disasm221:
162 000000
163 000000 incms inputcount
164 000000 nop
165 000000 mov a,inputcount
166 000000 sub a,#5
167 000000 bts1 fc
168 000000 jmp disasm70;chksignaltable
169 000000 jmp disasm80
170 000000 disasm80:
171 000000 @p00_edge 2 ;出錯,設為下降沿中斷
172 000000 clr inputcount
173 000000 clr levecount
174 000000 bclr firstflag
175 000000 jmp disasm90
176 000000 disasm70:
177 000000 bset chksigntableflag
178 000000 disasm90:
179 000000 P00INTR90:
180 000000 jmp Interrupt90
181 000000 ;***********************************************
182 000000 mnint:
183 000000 bts1 chksigntableflag
184 000000 jmp mnint00
185 000000 bclr chksigntableflag
186 000000 clr tablecount
187 000000 chksignaltable: ;查詢控制信號的檔位
188 000000
189 000000 b0mov y,#signaltable$m
190 000000 b0mov z,#signaltable$l
191 000000 mov a,tablecount
192 000000 add z,a
193 000000 mov a,#0
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -