📄 cc6.cod
字号:
194: /// - is used as general purpose output
195: /// - open drain output is selected
196: /// - the pin status is low level
197: /// - pull-up device is assigned
198: /// P3.2:
199: /// - is used as general purpose output
200: /// - open drain output is selected
201: /// - the pin status is low level
202: /// - pull-up device is assigned
203: /// P3.3:
204: /// - is used as general purpose output
205: /// - open drain output is selected
206: /// - the pin status is low level
207: /// - pull-up device is assigned
208: /// P3.4:
209: /// - is used as general purpose output
210: /// - open drain output is selected
211: /// - the pin status is low level
212: /// - pull-up device is assigned
213: /// P3.5:
214: /// - is used as general purpose output
215: /// - open drain output is selected
216: /// - the pin status is low level
217: /// - pull-up device is assigned
218: /// P3.6:
219: /// - is used as general purpose output
220: /// - open drain output is selected
221: /// - the pin status is low level
222: /// - pull-up device is assigned
223: /// P3.7:
224: /// - is used as alternate output for the Output of Capture/Compare
225: /// channel 3
226: /// - push/pull output is selected
227: /// - pull-up device is assigned
228:
229: // SFR_PAGE(_pp3, SST2); // switch to page 3
230: // P3_OD = 0x7F; // load open-drain register
231:
232: SFR_PAGE(_pp1, SST2); // switch to page 1
0000D4 75B2A1 MOV PORT_PAGE,#0A1H
233: P3_PUDSEL = 0xFF; // load pullup/pulldown select register
0000D7 75B0FF MOV P3_PUDSEL,#0FFH
234: P3_PUDEN = 0xFF; // load pullup/pulldown enable register
0000DA 75B1FF MOV P3_PUDEN,#0FFH
235:
236: // SFR_PAGE(_pp2, SST2); // switch to page 2
237: // P3_ALTSEL0 = 0x80; // load alternate output function select
238: // register 0
239: // P3_ALTSEL1 = 0x00; // load alternate output function select
240: // register 1
241: // USER CODE BEGIN (IO_Init,2)
242: // P3_ALTSEL0 = 0x10; // P37 to ALT1-COUT63
243:
244: // USER CODE END
245:
246:
247:
248: SFR_PAGE(_pp0, SST2); // switch to page 0
0000DD 75B2A0 MOV PORT_PAGE,#0A0H
249: P3_DATA = 0x00; // load data output register
0000E0 F5B0 MOV P3_DATA,A
LX51 LINKER/LOCATER V4.00 BETA 08/31/2005 15:19:27 PAGE 7
250: P3_DIR = 0xFF; // load direction register
0000E2 75B1FF MOV P3_DIR,#0FFH
251:
252:
253: // USER CODE BEGIN (IO_Init,3)
254:
255: // USER CODE END
256:
257: } // End of function IO_vInit
0000E5 22 RET
----- FUNCTION IO_vInit (END) -------
----- FUNCTION T01_viTmr0 (BEGIN) -----
FILE: 'T01.C'
202: void T01_viTmr0(void) interrupt T0INT
0000E6 C0E0 PUSH ACC
0000E8 C0D0 PUSH PSW
0000EA 75D000 MOV PSW,#00H
0000ED C006 PUSH AR6
203: {
204:
205: // USER CODE BEGIN (T01_IsrTmr0,2)
206: if (T0count++ > 0x100) P3_DATA ^= 0x02; // toggle every 256 T0
0000EF 050E INC T0count+01H
0000F1 E50E MOV A,T0count+01H
0000F3 AE0D MOV R6,T0count
0000F5 7002 JNZ ?C0007?T01
0000F7 050D INC T0count
0000F9 ?C0007?T01:
0000F9 14 DEC A
0000FA D3 SETB C
0000FB 9400 SUBB A,#00H
0000FD EE MOV A,R6
0000FE 9401 SUBB A,#01H
000100 4003 JC ?C0002?T01
000102 63B002 XRL P3_DATA,#02H
000105 ?C0002?T01:
207: if (T0count > 0x200) T0count = 0;
000105 D3 SETB C
000106 E50E MOV A,T0count+01H
000108 9400 SUBB A,#00H
00010A E50D MOV A,T0count
00010C 9402 SUBB A,#02H
00010E 4006 JC ?C0004?T01
000110 750D00 MOV T0count,#00H
000113 750E00 MOV T0count+01H,#00H
208:
209: // USER CODE END
210:
211: } // End of function T01_viTmr0
000116 ?C0004?T01:
000116 D006 POP AR6
000118 D0D0 POP PSW
00011A D0E0 POP ACC
00011C 32 RETI
----- FUNCTION T01_viTmr0 (END) -------
----- FUNCTION T01_viTmr1 (BEGIN) -----
FILE: 'T01.C'
243: void T01_viTmr1(void) interrupt T1INT
00011D C0E0 PUSH ACC
00011F C0D0 PUSH PSW
000121 75D000 MOV PSW,#00H
LX51 LINKER/LOCATER V4.00 BETA 08/31/2005 15:19:27 PAGE 8
000124 C007 PUSH AR7
244: {
245:
246: // USER CODE BEGIN (T01_IsrTmr1,2)
247: if (T1count++ > 0x80) P3_DATA ^= 0x02; // toggle for 128 T1count
000126 AF0F MOV R7,T1count
000128 050F INC T1count
00012A EF MOV A,R7
00012B D3 SETB C
00012C 9480 SUBB A,#080H
00012E 4003 JC ?C0006?T01
000130 63B002 XRL P3_DATA,#02H
248:
249: // USER CODE END
250:
251: } // End of function T01_viTmr1
000133 ?C0006?T01:
000133 D007 POP AR7
000135 D0D0 POP PSW
000137 D0E0 POP ACC
000139 32 RETI
----- FUNCTION T01_viTmr1 (END) -------
----- FUNCTION T2_viTmr (BEGIN) -----
FILE: 'T2.C'
192: void T2_viTmr(void) interrupt T2INT
00013A C0E0 PUSH ACC
00013C C0D0 PUSH PSW
00013E 75D000 MOV PSW,#00H
000141 C007 PUSH AR7
193: {
194: // USER CODE BEGIN (T2_IsrTmr,2)
195: ubyte T2count;
196: // USER CODE END
197:
198: if (TF2)
000143 30C719 JNB TF2,?C0005?T2
199: {
200: // a timer 2 overflow has occured
201: // USER CODE BEGIN (T2_IsrTmr,3)
202: if (T2count++ > 0x02) P3_DATA ^= 0x04; // toggle every 2nd T2OF
000146 AF10 MOV R7,T2count
000148 0510 INC T2count
00014A EF MOV A,R7
00014B D3 SETB C
00014C 9402 SUBB A,#02H
00014E 4003 JC ?C0003?T2
000150 63B004 XRL P3_DATA,#04H
000153 ?C0003?T2:
203: if (T2count > 0x04) T2count = 0;
000153 E510 MOV A,T2count
000155 D3 SETB C
000156 9404 SUBB A,#04H
000158 4003 JC ?C0004?T2
00015A 751000 MOV T2count,#00H
00015D ?C0004?T2:
204:
205: // SFR_PAGE(_cc2, SST2); // switch to page 2
206: // CCU6_PAGE = 0x02;
207: // CCU6_ISSH |= 0x02; // set T13PM
208: // SFR_PAGE(_cc2, RST2); // restore the old CCU page
209:
210: // USER CODE END
211:
LX51 LINKER/LOCATER V4.00 BETA 08/31/2005 15:19:27 PAGE 9
212: TF2 = 0;
00015D C2C7 CLR TF2
213: }
214:
215: // USER CODE BEGIN (T2_IsrTmr,5)
216:
217: // USER CODE END
218:
219: } // End of function T2_viTmr
00015F ?C0005?T2:
00015F D007 POP AR7
000161 D0D0 POP PSW
000163 D0E0 POP ACC
000165 32 RETI
----- FUNCTION T2_viTmr (END) -------
----- FUNCTION CC6_vInit (BEGIN) -----
FILE: 'CC6.C'
122: void CC6_vInit(void)
123: {
124: // USER CODE BEGIN (CCU6_General,9)
125:
126: // USER CODE END
127:
128:
129: SFR_PAGE(_cc1, SST2); // switch to page 1
000166 75A3A1 MOV CCU6_PAGE,#0A1H
130:
131: //T12 period
132: CCU6_T12PRL = 0x00; // load CCU6 T12 period register low
000169 E4 CLR A
00016A F59C MOV CCU6_T12PRL,A
133: CCU6_T12PRH = 0xF0; // load CCU6 T12 period register lhigh
00016C 759DF0 MOV CCU6_T12PRH,#0F0H
134: //T13 period
135: CCU6_T13PRL = 0xFF; // load CCU6 T13 period register low
00016F 759EFF MOV CCU6_T13PRL,#0FFH
136: CCU6_T13PRH = 0xFF; // load CCU6 T13 period register high
000172 759FFF MOV CCU6_T13PRH,#0FFH
137: // T12 prescaler and center aligned
138: CCU6_TCTR0L = 0x84; // load CCU6 timer control register 0 low
000175 75A684 MOV CCU6_TCTR0L,#084H
139: // T13 prescaler
140: CCU6_TCTR0H = 0x03; // load CCU6 timer control register 0 high
000178 75A703 MOV CCU6_TCTR0H,#03H
141: //// SFR_PAGE(_cc1, SST2); // switch to page 1
142: // T12 dead time DTM
143: CCU6_T12DTCL = 0x10; // load CCU6 dead time control register low
00017B 75A410 MOV CCU6_T12DTCL,#010H
144: // T12 dead time channel select
145: CCU6_T12DTCH = 0x04; // load CCU6 dead time control register high
00017E 75A504 MOV CCU6_T12DTCH,#04H
146:
147: SFR_PAGE(_cc2, SST2); // switch to page 2
000181 75A3A2 MOV CCU6_PAGE,#0A2H
148: // T12/T12 modes and external trigger
149: CCU6_TCTR2L = 0x00; // load CCU6 timer control register 2 low
000184 F5FA MOV CCU6_TCTR2L,A
150: CCU6_TCTR2H = 0x00; // load CCU6 timer control register 2 high
000186 F5FB MOV CCU6_TCTR2H,A
151: // T12 Modulation Enable & MCMEN
152: CCU6_MODCTRL = 0x30; // load CCU6 modulation control register low
000188 75FC30 MOV CCU6_MODCTRL,#030H
153: // T13 Modulation Enable
LX51 LINKER/LOCATER V4.00 BETA 08/31/2005 15:19:27 PAGE 10
154: CCU6_MODCTRH = 0x80; // load CCU6 modulation control register high
00018B 75FD80 MOV CCU6_MODCTRH,#080H
155: /// SFR_PAGE(_cc2, SST2); // switch to page 2
156: // MultiChannel Synch & Sel
157: CCU6_MCMCTR = 0x00; // load CCU6 multi channel mode control
00018E F5A7 MOV CCU6_MCMCTR,A
158: // register
159: /// SFR_PAGE(_cc2, SST2); // switch to page 2
160: // T12 capcom mode ch0 / ch1
161: CCU6_T12MSELL = 0x00; // load CCU6 T12 campture/compare mode
000190 F59A MOV CCU6_T12MSELL,A
162: // T12 capcom mode ch2 / hallsynch
163: CCU6_T12MSELH = 0x03; // load CCU6 T12 campture/compare mode
000192 759B03 MOV CCU6_T12MSELH,#03H
164: ///SFR_PAGE(_cc2, SST2); // switch to page 2
165: // Passive state level
166: CCU6_PSLR = 0x00; // load CCU6 passive state level register low
000195 F5A6 MOV CCU6_PSLR,A
167:
168:
169: SFR_PAGE(_cc0, SST2); // switch to page 0
000197 75A3A0 MOV CCU6_PAGE,#0A0H
170: // T12 shadow
171: CCU6_CC62SRL = 0x00; // load CCU6 capture/compare shadow register
00019A F5FE MOV CCU6_CC62SRL,A
172: CCU6_CC62SRH = 0x78; // load CCU6 capture/compare shadow register
00019C 75FF78 MOV CCU6_CC62SRH,#078H
173: // T13 shadow
174: CCU6_CC63SRL = 0x00; // load CCU6 capture/compare shadow register
00019F F59A MOV CCU6_CC63SRL,A
175: CCU6_CC63SRH = 0x19; // load CCU6 capture/compare shadow register
0001A1 759B19 MOV CCU6_CC63SRH,#019H
176: /// SFR_PAGE(_cc0, SST2); // switch to page 0
177: // MultiChannel PWM Pattern
178: CCU6_MCMOUTSL = 0x00; // load CCU6 multi channel mode output
0001A4 F59E MOV CCU6_MCMOUTSL,A
179: // MultiChannel Hall Pattern
180: CCU6_MCMOUTSH = 0x00; // load CCU6 multi channel mode output
0001A6 F59F MOV CCU6_MCMOUTSH,A
181: // control register high
182:
183: SFR_PAGE(_cc2, SST2); // switch to page 2
0001A8 75A3A2 MOV CCU6_PAGE,#0A2H
184: // Trap Control Leave
185: CCU6_TRPCTRL = 0x00; // load CCU6 trap control register low
0001AB F5FE MOV CCU6_TRPCTRL,A
186: // Trap Control Enable
187: CCU6_TRPCTRH = 0x00; // load CCU6 trap control register high
0001AD F5FF MOV CCU6_TRPCTRH,A
188:
189: // Interrupt node pointer
190: CCU6_INPL = 0x00; // load CCU6 capture/compare interrupt node
0001AF F59E MOV CCU6_INPL,A
191: CCU6_INPH = 0x00; // load CCU6 capture/compare interrupt node
0001B1 F59F MOV CCU6_INPH,A
192:
193: // T12 interrupts enable
194: CCU6_IENL = 0x80; // load CCU6 capture/compare interrupt
0001B3 759C80 MOV CCU6_IENL,#080H
195: // T13 & others interrupts enable
196: CCU6_IENH = 0x02; // load CCU6 capture/compare interrupt
0001B6 759D02 MOV CCU6_IENH,#02H
197: // enable register high
198:
199: SFR_PAGE(_cc3, SST2); // switch to page 3
LX51 LINKER/LOCATER V4.00 BETA 08/31/2005 15:19:27 PAGE 11
0001B9 75A3A3 MOV CCU6_PAGE,#0A3H
200: // Compare Passive State Select
201: CCU6_CMPSTATH = 0x20; // load CCU6 compare status register high
0001BC 75FF20 MOV CCU6_CMPSTATH,#020H
202:
203: // input capture and trap input
204: CCU6_PISEL0L = 0x00; // load CCU6 Port Input Select Register 0 Low
0001BF F59E MOV CCU6_PISEL0L,A
205: // input CCPOS and T12HR
206: CCU6_PISEL0H = 0x00; // load CCU6 Port Input Select Register 0
0001C1 F59F MOV CCU6_PISEL0H,A
207: // input T13HR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -