![Microchip Technology AN908 Using Manual Download Page 67](http://html1.mh-extra.com/html/microchip-technology/an908/an908_using-manual_1785807067.webp)
2004 Microchip Technology Inc.
DS00908A-page 67
AN908
SVGen.s
;*******************************************************************
; SVGen
;
; Description: Calculate and load SVGen PWM values.
;
; Functional prototype:
;
void CalcSVGen( void )
;
; On Entry:SVGenParm structure must contain qVr1, qVr2, qVr3
; On Exit: PWM registers loaded
;
; Parameters:
;
Input arguments:
;
None
;
Return:
;
Void
;
SFR Settings required:
;
CORCON.SATA = 0
;
CORCON.IF = 0
;
Support routines required:
;
None
;
Local Stack usage:
;
0
; Registers
modified:
;
w0, w2, w3, w4, w5, w6, AccA
; Timing:
;
34 instruction cycles
;*******************************************************************
; C-Version of code
;
; void CalcRefVec( void )
; {
;
if( Vr1 >= 0 )
;
{
;
// (xx1)
;
if( Vr2 >= 0 )
;
{
;
// (x11)
;
// Must be Sector 3 since Sector 7 not allowed
;
// Sector 3: (0,1,1) 0-60 degrees
;
T1 = Vr2
;
T2 = Vr1
;
CalcTimes();
;
dPWM1 = Ta
;
dPWM2 = Tb
;
dPWM3 = Tc
;
}
;
else
;
{
;
// (x01)
;
if( Vr3 >= 0 )
;
{
;
// Sector 5: (1,0,1) 120-180 degrees
;
T1 = Vr1
;
T2 = Vr3
;
CalcTimes();
;
dPWM1 = Tc
;
dPWM2 = Ta
;
dPWM3 = Tb
;
}