📄 ccu6.lst
字号:
204 1 // for channel 1
205 1
206 1 /// -----------------------------------------------------------------------
207 1 /// Configuration of CCU6 Channel 2:
208 1 /// -----------------------------------------------------------------------
209 1 /// - compare mode 3 is selected
210 1 /// - T12 modulation for output CC62 is enabled
211 1 /// - T13 modulation for output CC62 is disabled
212 1 /// - the trap functionality of the pin CC62 is disabled
213 1 /// - the compare output CC62 drives passive level while CC62ST is '0'
214 1 /// - the passive level of the output CC62 is '0'
215 1 /// - T12 modulation for output COUT62 is enabled
216 1 /// - T13 modulation for output COUT62 is disabled
217 1 /// - the trap functionality of the pin COUT62 is disabled
218 1 /// - the compare output COUT62 drives passive level while CC62ST is '1'
219 1 /// - the passive level of the output COUT62 is '0'
220 1 /// - dead time generation is enabled
221 1
222 1 /// - generation interrupt on flag ICC62R is disabled
223 1 /// - generation interrupt on flag ICC62F is disabled
224 1
225 1 CCU6_CC62SR = 0x03E8; // load CCU6 capture/compare shadow register
226 1 // for channel 2
227 1
228 1 /// -----------------------------------------------------------------------
229 1 /// Configuration of CCU6 Channel 3:
230 1 /// -----------------------------------------------------------------------
231 1 /// - T13 output is not inverted
232 1
233 1
234 1 CCU6_CC63SR = 0x0000; // load CCU6 capture/compare shadow register
235 1 // for channel 3
236 1
237 1
238 1 CCU6_T12DTC = 0x0728; // load CCU6 dead time control register for
239 1 // timer T12
240 1
241 1 CCU6_T12MSEL = 0x0333; // load CCU6 T12 campture/compare mode
C166 COMPILER V6.02, CCU6 08/08/2006 15:48:05 PAGE 5
242 1 // select register
243 1
244 1 CCU6_CMPSTAT = 0x2A00; // load CCU6 compare status register
245 1
246 1 CCU6_PSLR = 0x0000; // load CCU6 passive state level register
247 1
248 1 CCU6_MODCTR = 0x003F; // load CCU6 modulation control register
249 1
250 1 CCU6_MCMOUTS = 0x0000; // load CCU6 multi channel mode output
251 1 // control register
252 1
253 1 CCU6_MCMCTR = 0x0000; // load CCU6 multi channel mode control
254 1 // register
255 1
256 1 /// - enable shadow transfer to T12 and T13
257 1 CCU6_TCTR4 = 0x4040; // load CCU6 timer control register 4
258 1
259 1 /// -----------------------------------------------------------------------
260 1 /// Configuration of CCU6 trap control:
261 1 /// -----------------------------------------------------------------------
262 1 /// - a trap can only be generated by SW by setting the bit TRPF
263 1 /// - the trap state is left when a zero-match of T12 (while counting up)
264 1 /// is detected (synchronization to T12)
265 1 /// - bit TRPF is automatically cleared by HW (according to TRPPEN, TRPM0
266 1 /// and TRPM1)
267 1 /// - trap interrupt is disabled
268 1
269 1
270 1 CCU6_TRPCTR = 0x0000; // load CCU6 trap control register
271 1
272 1 /// -----------------------------------------------------------------------
273 1 /// Configuration of CCU6 interrupt control:
274 1 /// -----------------------------------------------------------------------
275 1 /// - for channel 0 interrupts is node I2 selected
276 1 /// - for channel 1 interrupts is node I2 selected
277 1 /// - for channel 2 interrupts is node I2 selected
278 1 /// - for correct hall event interrupt is node I2 selected
279 1 /// - for error interrupts is node I2 selected
280 1 /// - for T12 interrupts is node I2 selected
281 1 /// - for T13 interrupts is node I2 selected
282 1
283 1
284 1 CCU6_INP = 0x2AAA; // load CCU6 capture/compare interrupt node
285 1 // pointer register
286 1
287 1 CCU6_IEN = 0x0280; // load CCU6 capture/compare interrupt
288 1 // enable register
289 1
290 1
291 1 /// -----------------------------------------------------------------------
292 1 /// Configuration of the used CCU6 Channel Port Pins:
293 1 /// -----------------------------------------------------------------------
294 1 /// - P1L.0 is used for CAPCOM6 output (CC60)
295 1 /// - P1L.2 is used for CAPCOM6 output (CC61)
296 1 /// - P1L.4 is used for CAPCOM6 output (CC62)
297 1 /// - P1L.1 is used for CAPCOM6 output (COUT60)
298 1 /// - P1L.3 is used for CAPCOM6 output (COUT61)
299 1 /// - P1L.5 is used for CAPCOM6 output (COUT62)
300 1
301 1 ALTSEL0P1L |= 0x003F; // select alternate output function
302 1 P1L = (P1L & ~(uword)0x003F) | 0x003F; //set data register
303 1 DP1L = (DP1L & ~(uword)0x003F) | 0x003F; //set direction register
C166 COMPILER V6.02, CCU6 08/08/2006 15:48:05 PAGE 6
304 1
305 1 /// -----------------------------------------------------------------------
306 1 /// Configuration of the used CCU6 Channels Interrupts:
307 1 /// -----------------------------------------------------------------------
308 1 /// NodeI2 service request node configuration:
309 1 /// - NodeI2 interrupt priority level (ILVL) = 13
310 1 /// - NodeI2 interrupt group level (GLVL) = 1
311 1 /// - NodeI2 group priority extension (GPX) = 0
312 1
313 1 CCU6_T12IC = 0x0075;
314 1
315 1
316 1
317 1
318 1 CCU6_TCTR4 = 0x0002; // load CCU6 timer control register 4
319 1
320 1 // USER CODE BEGIN (Init,3)
321 1
322 1 // USER CODE END
323 1
324 1 } // End of function CCU6_vInit
325
326
327 //****************************************************************************
328 // @Function void CCU6_viNodeI2(void)
329 //
330 //----------------------------------------------------------------------------
331 // @Description This is the interrupt service routine for the CCU6 node I2.
332 // If the content of the corresponding compare timer
333 // (configurable) equals the content of the capture/compare
334 // register or if a capture event occurs at the associated
335 // port pin, the interrupt request flag is set and an
336 // interrupt is triggered (only if enabled).
337 // Please note that you have to add application specific code
338 // to this function.
339 //
340 //----------------------------------------------------------------------------
341 // @Returnvalue None
342 //
343 //----------------------------------------------------------------------------
344 // @Parameters None
345 //
346 //----------------------------------------------------------------------------
347 // @Date 2006-7-8
348 //
349 //****************************************************************************
350
351 // USER CODE BEGIN (NodeI2,1)
352
353 // USER CODE END
354
355 void CCU6_viNodeI2(void) interrupt CCU6_NodeI2_INT
356 {
357 1 // USER CODE BEGIN (NodeI2,2)
358 1
359 1 // USER CODE END
360 1
361 1 if(CCU6_IS & 0x0080) // if CCU6_IS_T12PM
362 1 {
363 2 // timer T12 period match detection
364 2
365 2 // USER CODE BEGIN (NodeI2,19)
C166 COMPILER V6.02, CCU6 08/08/2006 15:48:05 PAGE 7
366 2
367 2 // USER CODE END
368 2
369 2 CCU6_ISR = 0x0080; // clear flag CCU6_IS_T12PM
370 2 }
371 1
372 1 if(CCU6_IS & 0x0200) // if CCU6_IS_T13PM
373 1 {
374 2 // timer T13 period match detection
375 2
376 2 // USER CODE BEGIN (NodeI2,21)
377 2
378 2 // USER CODE END
379 2
380 2 CCU6_ISR = 0x0200; // clear flag CCU6_IS_T13PM
381 2 }
382 1
383 1
384 1 } // End of function CCU6_viNodeI2
385
386
387
388
389 // USER CODE BEGIN (CCU6_General,10)
390
391 // USER CODE END
392
MODULE INFORMATION: INITIALIZED UNINITIALIZED
CODE SIZE = 220 --------
NEAR-CONST SIZE = -------- --------
FAR-CONST SIZE = -------- --------
HUGE-CONST SIZE = -------- --------
XHUGE-CONST SIZE = -------- --------
NEAR-DATA SIZE = -------- --------
FAR-DATA SIZE = -------- --------
XHUGE-DATA SIZE = -------- --------
IDATA-DATA SIZE = -------- --------
SDATA-DATA SIZE = -------- --------
BDATA-DATA SIZE = -------- --------
HUGE-DATA SIZE = -------- --------
BIT SIZE = -------- --------
INIT'L SIZE = -------- --------
END OF MODULE INFORMATION.
C166 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -