Counter help !

Mike.

Member
HELLO GUYS I AM WORKING ON COUNTER PROJECT..

I AM USING : PICAXE-18M2

THE PROJECT WORK AS FOLLOWS :

THERE WILL BE TOTAL THREE INPUT : 2 Small Black Tactile Switch AND 1 PUSH BUTTON : B0 , B1 AND B2
THERE WILL BE ONE OUTPUT : 1 LED TO COUNT THE COUNTER : B3

WORKING PROCESS :
ONE TACTILE SWITCH INPUT(PINB.0) WILL INCREMENT INC_COUNTER.
SECOND TACTILE SWITCH INPUT(PINB.1) WILL DECREMENT DEC_COUNTER..
THE TOTAL COUNTER LEFT WILL BE DISPLAYED BY OUTPUT LED.


I AM USING PICAXE PROGRAMMING EDITOR SOFTWARE
TO TEST IT FIRST STIMULATE IT , THEN PRESS SET BUTTON ( PINB.2 ).. THEN PRESS RESET BUTTON..
TO INCREMENT THE COUNTER PRESS AND RELEASE ( STIMULATING AS TACTILE SWITCH ) INC_COUNTER BUTTON ( PINB.0 )..

TO DECREMENT THE COUNTER PRESS AND RELEASE DEC_COUNTER BUTTON..
THE COUNTER VALUE WILL BE SAVED IN TEMP_STORAGE ( B0 ) TEMPORARY MEMORY..
TO WATCH THE OUTPUT...
RELEASE SET BUTTON..
THE LED WILL FLASH TILL THE COUNTER VALUE..


CODE :
Code:
;PICAXE - 18M2

SYMBOL SET_BUTTON = PINB.2
SYMBOL INC_COUNTER = PINB.0
SYMBOL DEC_COUNTER = PINB.1
SYMBOL TEMP_STORAGE = B0
SYMBOL LED = PINB.3
MAIN:

IF SET_BUTTON = 1 THEN ; SET BUTTON IS PRESSED

IF INC_COUNTER = 1 THEN ; INC_COUNTER BUTTON IS HIGH
PAUSE 1000 ; PAUSE TO RELEASE IT 
IF INC_COUNTER = 0 THEN ; INC_COUNTER BUTTON IS LOW
TEMP_STORAGE = TEMP_STORAGE + 1; COUNTER VALUE IS INCREMENTED BY 1 TILL INC_COUNTER BUTTON WILL BE PRESSED
END IF
END IF

IF DEC_COUNTER = 1 THEN ; DEC_COUNTER
PAUSE 1000 ;PAUSE TO RELEASE IT 
IF DEC_COUNTER = 0 THEN ; INC_COUNTER BUTTON IS LOW
TEMP_STORAGE = TEMP_STORAGE -1 ;COUNTER VALUE IS DECREMENTED BY 1 TILL DEC_COUNTER BUTTON WILL BE PRESSED
ENDIF
END IF

ELSE IF SET_BUTTON = 0 THEN ; IF SET BUTTON IS RELEASED , LED WILL FLASH 
TEMP_STORAGE = TEMP_STORAGE - 1 
FOR TEMP_STORAGE = 0 TO TEMP_STORAGE
HIGH B.3
PAUSE 100
LOW B.3
NEXT TEMP_STORAGE


END IF

GOTO MAIN
ALL IS WORKING FINE...
THE PROBLEM IS I WANT TO SAVE THE ALL VALUE OF TEMP_STORAGE ( B0 )TO EEPROM OF PICAXE-18M2 DATA MEMORY.. SO THAT AFTER I PRESS THE RESET BUTTON THE COUNTER DOESN'T RESET ... AS IT WILL BE SAVE IN DATA MEMORY.. IT WILL , THEN SHOULD CONTINUE TO INC TO DEC COUNTER FROM THE PRESET VALUE ... AS SAME IN TEMP_STORAGE..


THANKS
 

nick12ab

Senior Member
please explain by example.....
My eyes!!!

Please indent your code properly, and keep comments at least one tab space from the code rather than immediately after each command.

I've stuck in the read and write commands for you, and addressed the issues I complained about above:
Code:
#picaxe 18m2

SYMBOL SET_BUTTON = PINB.2
SYMBOL INC_COUNTER = PINB.0
SYMBOL DEC_COUNTER = PINB.1
SYMBOL TEMP_STORAGE = B0
SYMBOL LED = PINB.3
read 0,temp_storage
MAIN:

	IF SET_BUTTON = 1 THEN						; SET BUTTON IS PRESSED
	
		IF INC_COUNTER = 1 THEN					; INC_COUNTER BUTTON IS HIGH
			PAUSE 1000						; PAUSE TO RELEASE IT 
			IF INC_COUNTER = 0 THEN				; INC_COUNTER BUTTON IS LOW
				TEMP_STORAGE = TEMP_STORAGE + 1		; COUNTER VALUE IS INCREMENTED BY 1 TILL INC_COUNTER BUTTON WILL BE PRESSED
				write 0,temp_storage
			END IF
		END IF
		
		IF DEC_COUNTER = 1 THEN					; DEC_COUNTER
			PAUSE 1000						;PAUSE TO RELEASE IT 
			IF DEC_COUNTER = 0 THEN				; INC_COUNTER BUTTON IS LOW
				TEMP_STORAGE = TEMP_STORAGE -1		;COUNTER VALUE IS DECREMENTED BY 1 TILL DEC_COUNTER BUTTON WILL BE PRESSED
				write 0,temp_storage
			ENDIF
		END IF
	
	ELSE IF SET_BUTTON = 0 THEN					; IF SET BUTTON IS RELEASED , LED WILL FLASH 
		TEMP_STORAGE = TEMP_STORAGE - 1 
		FOR TEMP_STORAGE = 0 TO TEMP_STORAGE
			HIGH B.3
			PAUSE 100
			LOW B.3
		NEXT TEMP_STORAGE
	
	
	END IF
	
	GOTO MAIN
 

Buzby

Senior Member
Hi Nick,

STOP SHOUTING ! YOU NEARLY BLINDED ME !. :)

We need a button on the forum to un-capitalise very loud code !.

Cheers,

Buzby
 

Paix

Senior Member
@Busby, That would be Mike and not Nick that was deafening your eyes with the loud Capital letters . . . :)
 
Top