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