X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=firmware%2Fapps%2Fplugins%2Fps2.c;h=df31503e6c94bef1ec6648c9b9ae0d940bd4bacb;hb=d85d45d823dda71280f4ed9083717ec8e5ce28ae;hp=aa43efc208effde5591cecee3d3b927934ca436b;hpb=a296978bfea3cd0a8b6a1eda8ca5c627d0523e0d;p=goodfet diff --git a/firmware/apps/plugins/ps2.c b/firmware/apps/plugins/ps2.c index aa43efc..df31503 100644 --- a/firmware/apps/plugins/ps2.c +++ b/firmware/apps/plugins/ps2.c @@ -11,8 +11,7 @@ #include "ps2.h" #include "jtag.h" - -u16 mclock=0; +u32 mclock=0; u32 clock=0; // Timer A0 interrupt service routine @@ -38,6 +37,7 @@ u32 oldclock=0; int ps2handle(unsigned char app, unsigned char verb, unsigned int len){ + switch(verb){ case START: WDTCTL = WDTPW + WDTHOLD; // Stop WDT @@ -60,10 +60,13 @@ int ps2handle(unsigned char app, while((P5IN&TDI));// && P5IN&TDO)); //Transmit the data only if it is new. - - if((cmddatalong[0]=clock-oldclock)>0x80) + if((clock-oldclock)>0x100){ + cmddatalong[0]=clock;//-oldclock; + cmddatalong[0]-=oldclock; + oldclock=clock; + txdata(app,verb,4); - oldclock=clock; + } } break; case STOP: