Doug, Thanks for your replay. Next time when I go to book store I will definitely get the book you are recommending. Now I have more question about same routine since "cases" Do not work I changed them to "if" that is what you Guys are recommended now I have another problem that I do not Get it. In if statement when I change "adj" to 0 or any Value ADC and timer1 start working and when I put If(count==(28+adj)) adc and timer1 do not work at all. I checked count variable with break points and watch Window looks ok this is strange when I do this on count 28 And count 30 it works but when I continue doing it on all of them Adc and timer1 do not work any idea? Any help will appreciate. Andre Here is the updated code: void interrupt HI_ISR(void) { if((TMR0IF)&&(TMR0IE)) { CLRWDT(); // clear WDT TMR0IF=0; // TMR0L=119; // if(count==0){ // topgd=0;bottomgd=1;topga=0;bottomga=1;} // if(count==(28+adj)){ // bottomga=0;} // if(count==(30+adj)){ // topgd=0;bottomgd=1;topga=1;} // if(count==(152-adj)){ // bottomgd=0;} // if(count==(154-adj)){ // topgd=1;topga=1;bottomga=0;} // if(count==(206+adj)){ // topga=0;} // if(count==(208+adj)){ // topgd=1;bottomgd=0;bottomga=1;} // if(count==(330-adj)){ // topgd=0;} // if(count==(332-adj)){ // bottomgd=1;bottomga=1;topga=0;} // if(count==360){ // topgd=0;bottomgd=1;topga=0;bottomga=1;count=0;} // count++; // } // } void interrupt low_priority LOW_ISR(void) //static void interrupt isr(void) { if((ADIF)&&(ADIE)) { while(GODONE)continue; // ADIF=0; // clear A/D flag adj=(ADRESH*50/255); // GODONE=1; // start new conversion DelayUs(10); // adtest^=0x01; // togle led on/off } -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.