void WorkTick(void) { TMR0IF = 0; if((Status.State == 'W') && (++Status.HashCount == WorkTicks)) { WorkNow = (WorkNow+1) & WORKMASK; if(--Status.WorkQC > 0) { Status.State = 'P'; // set state to push data and do asap return; } else Status.State = 'R'; } else TMR0 = HashTime; if(++SlowTick == 0) { LED_Off(); Status.Temp = ADRESH; // todo: adjust fan speed for target temperature ADCON0bits.GO_nDONE = 1; CheckFanSpeed(); } //if((SlowTick & 3) == 0) I2CPoll(); }
void WorkTick(void) { TMR0IF = 0; TMR0 = HashTime; if(RCSTAbits.SPEN == 0) { RCSTAbits.SPEN = 1; // renable Rx ResultQC = 0; // resync Rx } if((Status.State == 'W') && (++Status.HashCount == Status.MaxCount)) { if(Status.WorkQC > 0) { Status.State = 'P'; // set state to push data and do asap return; } else Status.State = 'R'; } if(++SlowTick == 0) { LED_Off(); Status.Temp = ADRESH; // todo: adjust fan speed for target temperature ADCON0bits.GO_nDONE = 1; CheckFanSpeed(); } //if((SlowTick & 3) == 0) I2CPoll(); }