Repeater ID and controller


Results 1 to 13 of 13

Threaded View

  1. #4
    Join Date
    Mar 2003
    Location
    Commerce Michigan USA
    Posts
    1,166


    Did you find this post helpful? Yes | No

    Default Re: Repeater ID and controller

    Macgmam2000, Attached is a piece of code I wrote for a 6 pin PIC 10F222. It was designed to be placed inside of an 1/8 inch phone plug and used with a hand held radio for fox hunting. you can use it but please mention the writer...

    Code:
    '	STATION_ID3.BAS
    '	WRITTEN FOR PIC10F222
    '	WRITTEN BY DAVID PUROLA, N8NTA
    '	PROGRAM TO SEND STATION ID DATA AT A PREDITERMINED TIME INTERVAL or TRIGGERED
    '	BY PRESSING BUTTON FOR APPROX 2.3 SECONDS. CAN BE USED FOR REPEATER ID or FOR
    '	TRANSMITTER FOX HUNTING. TXENAB IS KEYED 250 Ms. BEFORE CW TRANSMISSION FOR
    '	KEYING OF THE RADIO PTT CIRCUIT.(07/18/2006)
    '
    asm
    	__CONFIG	_MCLRE_OFF & _CP_OFF & _WDT_ON & _IOFSCS_8MHZ
    	movwf   OSCCAL      ; load factory osccal value at start-up
    	bcf     OSCCAL,0    ; Set GP2 as I/O pin
    ENDASM
    
    DEFINE OSC 8
    '
    ' ********************************************************************
    '                  Define Port Variables
    ' ********************************************************************
    DATA_OUT    VAR	GPIO.0	'0-MODULATED DATA TO RADIO AUDIO CIRCUIT (THRU RESISTIVE DIVIDER AND CAP)
    TXENAB		VAR	GPIO.1	'0-TRANSMIT ENABLE OUTPUT (THRU FET TO DIODE AND RESISTOR TO GROUND FOR PTT)
    SPARE2		VAR	GPIO.2	'0-NOT USED
    TRIGGER		VAR	GPIO.3	'1-EXTERNAL ID TRIGGER (PUSH BUTTON TO GROUND W/100K PULLUP)
    
    ' ********************************************************************
    '		       Declare Constants
    ' ********************************************************************
    FREQ		CON	110		'CHANGE THIS CONSTANT TO VARY THE TONE FREQUENCY (APPROX 565 Hz.)
    DIT			CON	4		'CHANGE THIS CONSTANT TO VARY THE WPM RATE (DOT)
    TIMEOUT		CON	60		'ID TIMEOUT IN APPROX. .1 MINUTE INCREMENTS
    PTTDELAY	CON	250		'PTT PRE CW DELAY TIMING FOR RF GENERATION
    
    '------------- DON'T CHANGE THESE VARIABLES AS THEY ARE DYNAMIC --------------
    DAH			CON	DIT * 3 'DASH TIMING IS EQUAL TO 3 DOT'S
    INTERDITDAH	CON	DIT * 12	'INTER DOT/DASH TIMING IS EQUAL TO 1 DOT
    CHARTIME	CON	DIT * 3 * 12	'INTER CHARACTER TIME IS EQUAL TO 3 DOT'S
    WRDTIME		CON	DIT * 7 * 12	'INTER WORD TIMING IS EQUAL TO 7 DOT'S
    	
    ' ********************************************************************
    '		       Declare Variables
    ' ********************************************************************
    IDCHAR		VAR	BYTE
    SCRATCH		VAR	BYTE
    POINTER		VAR	BYTE
    
    ' ********************************************************************
    '                  Define MORSE CHARACTERS
    ' ********************************************************************
    ' A   B   C   D   E   F   G   H   I   J   K   L   M   N   0   P   Q   R   S   T   U   V   W   X   Y   Z
    '$42,$84,$A4,$83,$01,$24,$C3,$04,$02,$74,$A3,$44,$C2,$82,$E3,$64,$D4,$43,$03,$81,$23,$14,$63,$94,$B4,$C4
    ' 0   1   2   3   4   5   6   7   8   9   /
    '$FD,$7D,$3D,$1D,$0D,$05,$85,$C5,$E5,$F5,$95
    
    '*********************************************************************
    STATIONID:	'SEND STATION ID TO TRANSMITTER
    '*********************************************************************
    
    ' ********************************************************************
    '   			DO NOT CHANGE THESE LINES
    ' *******************************************************************
    	TRISIO = %11111000		'SET PORT DIRECTION REGISTER			*
    	OPTION_REG = %11001000	'DISABLE PULL-UPS,PSA to WDT			*
    	ADCON0 = %00000000		'Channel 0,A/D Off						*                         
    '********************************************************************
    
    	TXENAB = 1		'ENABLE TRANSMITTER
    	PAUSE PTTDELAY	'ALLOW TIME FOR RF TO BEGIN
    	IDCHAR = $FF	'DEFAULT FOR FIRST PASS
    	POINTER = 0
    	WHILE IDCHAR <> 0	'CYCLE THRU ALL CHARACTERS IN MESAGE UNTIL $00 IS REACHED (255 TOTAL CHARACTERS MAXIMUM)
    '						 N   8   N   T   A   _   T   H   I   S   _   I   S   _   T   H   E   _  F   O   X
    		LOOKUP POINTER,[$82,$E5,$82,$81,$42,$FF,$81,$04,$02,$03,$FF,$02,$03,$FF,$81,$04,$01,$FF,$24,$E3,$94,$00],IDCHAR
    		IF IDCHAR <> $FF THEN	'IF NOT INTER CHARACTER SPACE THEN
    			SCRATCH = IDCHAR & 7    'HOW MANY DITS & DAHS
    			WHILE SCRATCH > 0	'LOOP FOR NUMBER OF DIT'S AND DAH'S
    				IF IDCHAR.7 = 1 THEN	'IF IT'S A DAH THEN
    			        SOUND DATA_OUT,[FREQ,DAH]	'~565 Hz
    				ELSE					'IF IT'S A DIT THEN
    			        SOUND DATA_OUT,[FREQ,DIT]	'~565 Hz
    				ENDIF			
    				DATA_OUT = 0	'MAKE SURE OUTPUT IS AT 0
    				PAUSE INTERDITDAH	'PAUSE INTER DIT/DAH TIME
    		        IDCHAR = IDCHAR << 1	'SHIFT FOR NEXT DIT or DAH
    				SCRATCH = SCRATCH - 1	'INCREMENT	DIT/DAH POINTER 
    		    WEND
    	        PAUSE CHARTIME		'PAUSE BETWEEN CHARACTERS
    		ELSE
    			PAUSE WRDTIME		'PAUSE BETWEEN WORDS
    		ENDIF		
    		POINTER = POINTER + 1	'INCREMENT TO NEXT CHARACTER
    	WEND
    	GPIO = %00001000		'DISABLE TRANSMITTER & AUDIO OUTPUT
    	TRISIO = %11111001		'SET PORT DIRECTION REGISTER
    	IDCHAR = TIMEOUT		'SET FOR (TIMEOUT/10) MINUTES BEFORE NEXT TIMED ID
    	WHILE IDCHAR > 0	'MINUTES COUNTER
    		POINTER = 3		'SET FOR 6 SECONDS	
    		WHILE POINTER > 0	'.05 SECOND COUNTER
    			SLEEP 1		'LOW POWER MODE FOR APPROX. 2.3 SECONDS
    	   		IF TRIGGER = 0 THEN STATIONID	'CHECK FOR EARLY ID
    			POINTER = POINTER - 1
     		WEND
    		IDCHAR = IDCHAR - 1
    	WEND
    	GOTO STATIONID	'SEND STATION ID TO TRANSMITTER
    	STOP
    Attached Files Attached Files
    Last edited by ScaleRobotics; - 28th March 2012 at 14:54. Reason: added code into code tags
    Dave Purola,
    N8NTA
    EN82fn

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts