CHAPTER 4 PROGRAM LIST
Application Note U17209EJ1V0AN
134
wk2 = run_cw_data[ (P0>>1) & 0x07 ][1] ;
}
TQ0CCR1 = pwm_value ;
TQ0CCR2 = pwm_value ;
TQ0CCR3 = pwm_value ;
TQ0IOC0 = wk ;
TQ0IOC3 = wk2 ;
}
int_co++ ;
}
/****************************************************************************** /
/* W zero-cross point interrupt */
/****************************************************************************** /
_ _interrupt
void int_W(void)
{
unsigned char wk, wk2 ;
/* */
if ( ( ( init_flag == 0 ) && ( stop_flag == OFF) ) ) {
sa_time = TP2CNT ;
TP2CTL0 &= ~0x80;
TP2CTL0 |= 0x80; /* Restart timer */
if ( ~P0 & 0x08 ) { /* Check V phase */
base_position = RAD*2/3/P ;
} else {
base_position = RAD/6/P ;
}
if ( object_speed < 0 ) {
wk = run_ccw_data[ (P0>>1) & 0x07 ][0] ;
wk2 = run_ccw_data[ (P0>>1) & 0x07 ][1] ;
} else {
wk = run_cw_data[ (P0>>1) & 0x07 ][0] ;
wk2 = run_cw_data[ (P0>>1) & 0x07 ][1] ;
}
TQ0CCR1 = pwm_value ;
TQ0CCR2 = pwm_value ;
TQ0CCR3 = pwm_value ;
TQ0IOC0 = wk ;
TQ0IOC3 = wk2 ;
}
int_co++ ;
}