DSO203 GCC APP - Community Edition (2.51+SmTech1.8+Fixes)

Here are the code modifications necessary to fix the trigger (they’re all on Process.c):

At the start of the file, declare:
</s>u8 HoldOnNext=0;<e>

In Synchro() change
[code] if((_Status == RUN)&&(__Get(FIFO_FULL)!=0))
{ // FIFO is full
__Set(FIFO_CLR, W_PTR); // FIFO write pointer reset
Wait_Cnt = Wait[_T_base];
JumpCnt =0;

if(_Mode == SGL)

{
_Status = HOLD; // one finished, enter the pause
_State.Flag |= UPDAT;
}
}[/code]
to
[code] if(HoldOnNext==1) {
_State.Value = HOLD; // one finished, enter the pause
_State.Flag |= UPDAT;
HoldOnNext=0;
return;
}

if((_Status == RUN)&&(__Get(FIFO_FULL)!=0)){ // FIFO is full
if((_Mode != SGL)) {
__Set(FIFO_CLR, W_PTR); // FIFO write pointer reset
}
Wait_Cnt = Wait[_T_base];
JumpCnt =0;
if(_Mode == SGL){
HoldOnNext=1;
}
}
[/code]
That should be all :smiley: