Hi,
there is a lot of missing info. It is not possible to investigate issue without full setup and loop.
However, look at following code. It generates on pulse after delay.... inspired by your code.
I did it in C+ asm but believe you will understand....
//-----------------------------------------
unsigned int Delay;
//-----------------------------------------
void main(void)
{
//-----------------------------------------
asm
{
MOVW #$0022, Delay
MOVB #$04, TSCR2 // ; prescaler =16, do not reset tim by OC of channel 7
// ; ovf int disable
MOVB #$AA, TCTL1 // ; channels 7,6,5,4 clear on compare
MOVB #$AA, TCTL2 // ; channels 3,2,1,0 clear on compare
BSET TIOS, $F8 // ; 7,6,5,4,3 :OC 2,1,0 :IC
LDAA #$88
STAA OC7M // ; Xnnn ynnn
LDAA #$08
STAA OC7D // ; 0000 1000 … FORCE TC3 TO 1 ON TC7 OC
LDD Delay
ADDD #$0002
ADDD TCNT // ; D = TCNT+DELAY+2
STD TC7 // ; TC7 = D
ADDD #$0032
STD TC3 // ; TC3 = D+32
}
//-----------------------------------------
TSCR1 = 0xE0; // enable timer,stop in wait,stop in freeze, NO fast flag clear
//-----------------------------------------
for(;;)
{
asm nop;
}
//-----------------------------------------
}
//***********************************************************************************
Best regards,
Ladislav