// Decoder c = rgData.length var pA = 0 // previuos encoder A value var cnt = 0 // initial phase/counter for(var i = 0; i < c; i++){ fA = 1&(rgData[i]<<0) if(fA==1 && pA==0){ // encoder A rising edge cnt++ } rgValue[i] = cnt rgFlag[i] = 1 pA = fA }