//////////////////////////////////////// // Real time interrupt // // Higher priority than ATD interrupt // //////////////////////////////////////// void interrupt 7 RTIhandler() { if (isSetup == 0x00) { setup(); } else { forwardP(); } clear_RTI_flag(); }
void scanFile(FILE *fp, Args *args) { Sequence *seq = NULL; char *oldChr; int start, end; FILE *snp; oldChr = (char *)emalloc(sizeof(char)); oldChr[0] = '\0'; while (tabGetLine(fp) != NULL) { /* read chromosome, start, and end of hotspot from line */ if (tabField(0)[0] == '#') continue; if (strcmp(oldChr, hotSpotGetChr()) != 0) { if (seq) freeSequence(seq); seq = hotSpotSeq(args); free(oldChr); oldChr = estrdup(hotSpotGetChr()); } start = atoi(tabField(START_FIELD)); end = atoi(tabField(END_FIELD)); if (args->r) { /* reverse primers are downstream of hotspot */ start = end; end += args->f; snp = hotSpotSnp(args, start, end); if(args->u) reversePuniv(args, seq, snp, start, end); else reverseP(args, seq, snp); } else { /* forward primers are upstream of hotspot */ end = start; start -= args->f; snp = hotSpotSnp(args, start, end); if(args->u) forwardPuniv(args, seq, snp, start, end); else forwardP(args, seq, snp); } pclose(snp); } freeSequence(seq); free(oldChr); }
void turnStraight(int speed, int tspeed) { while (IR_left < threshold || IR_right < threshold) { forwardP(speed); if(IR_left > threshold && IR_right < threshold) { stop(); onlyRight(tspeed); while (IR_left > threshold && IR_right < threshold) {} stop(); } if (IR_left < threshold && IR_right > threshold) { stop(); onlyLeft(speed); while (IR_left < threshold && IR_right > threshold) {} stop(); } } stop(); }