On Sat, Jul 06, 2013 at 07:08:16PM +0800, Electronic Consultation wrote: > Guys, >=20 > I want to reduce LedTimer after interrupt but it returned to 20 again=20 > after interrupt, > Do you have idea how handle it ? The Equate (EQU) you have below fixes the value of LedTimer to 20. Since you were moving it to COUNT, I figured you wanted a constant 20 counts to count down in COUNT (which I do not see a definition for). Your code uses the RES directive to declare variables. If you want LedTimer to change, then it needs to be a variable too. BAJ > thanks > [CODE]LedTimer EQU .20 ;10 decimal (for content of the counter to get 100= ms) >=20 > led_state_1 > bcf INTCON,T0IF ;clear the interrupt fla= g > bsf PORTB, POWERLED ;Turn on LED > movlw LedTimer > movwf COUNT >=20 >=20 > ;counting >=20 > check_counter > btfss INTCON,T0IF > goto check_counter >=20 >=20 > sublw .1 > btfss STATUS, Z ;Is the result 0, clear COUN= T >=20 >=20 > goto check_counter ;if false check the COUNTER again > goto next_state ;if true go to this statem= ent >=20 >=20 >=20 > next_state > clrf COUNT ;if false go to this=20 > statement > incf LedState,1 ; if 00 increase the=20 > state, for the next state >=20 > return[/CODE] > --=20 > http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive > View/change your membership options at > http://mailman.mit.edu/mailman/listinfo/piclist --=20 Byron A. Jeff Chair: Department of Computer Science and Information Technology College of Information and Mathematical Sciences Clayton State University http://faculty.clayton.edu/bjeff --=20 http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .