.
.
.
//finish up bit stream configuration... g_PID1Message |= ((unsigned int)(FW_REVISION & 0x07)); g_TCH0BitMask = 0x8000; //send 16 bits MSB first g_TCH0NextDelay = KTCH0MSG_FRMNOM; //so ISR knows how long to hold this state DisableInterrupts; //disable system interrupts //configure TSC0 for output compare, rising edge to occur with interrupt. //bit 7 0 CH0F //bit 6 1 CH0IE --enable interrupts //bit 5 0 MS0B --B:A == 01 means output compare //bit 4 1 MS0A //bit 3 1 ELS0B --B:A == 11 means set pin next compare //bit 2 1 ELS0A //bit 1 0 TV0 //bit 0 0 CH0MAX TCH0 = TCNT + KTCH0INITDLY; //compute time of message start TSC0_CH0F = 0; //clear any pending OC interrupt TSC0 = 0x5C; //enable the OC interrupt EnableInterrupts; //re-enable system interrupts //ISR will handle remaining bit transmission and will shut itself off when done.}//ProcessOutgoingDSPMessagePID0
.
.
.
Think I found it...
Has to do with the setting of the mode select 0 A (MS0A) bit in TSC0. In the datasheet, if ELS0B:A == 00, it's described as "pin under port control; initial output level high" if MS0A is '0' and "pin under port control; initial output level low" if MS0A is high. I was initializing this register to 0x00 and so, I presume, when I turned on the OC by writing 0x5C to the TSC0 register, it attained a "high" initial level.
Ensuring that MS0A is '1' seems to have fixed my problem.