RSSI на Lawmate
Давайте, мы все ждем.
А то ставим на приемнике 7 канал, а он совсем не 1240 , как на передатчике, вот и не можем улететь дальше 1 км.
Нашел на рцгрупс еще и микропрограмму чипа приемника Lawmate, думаю пригодится и здесь для тех кому охота перестроить его под свои частоты
Кстати Антон, обещали обмерить передатчик частотомером, что нибудь получилось?
; -------------------------------------------------------------------
; | |
; | PLL synth setup (Lawmate receiver) |
; | |
; -------------------------------------------------------------------
;
;
list p=16f636
#include p16f636.inc
__CONFIG _MCLRE_OFF&_CP_OFF&_WDT_OFF&_INTRC_OSC_NOCLKOUT
; Bit definitions for the GPIO register and the TRIS register
#DEFINE ifreq d'479500' ; IF of the receiver in kHz
#DEFINE freq_1 d'1080' ; ch1 in MHz
#DEFINE freq_2 d'1120' ; ch2 in MHz
#DEFINE freq_3 d'1160' ; ch3 in MHz
#DEFINE freq_4 d'1200' ; ch4 in MHz
#DEFINE freq_5 d'1240' ; ch5 in MHz
#DEFINE freq_6 d'1280' ; ch6 in MHz
#DEFINE freq_7 d'1320' ; ch7 in MHz
#DEFINE freq_8 d'1360' ; ch8 in MHz
#DEFINE byte_1 b'11000010' ; the 1st byte in the i2c message
#DEFINE byte_4 b'10001110' ; the 4th byte in the i2c message
#DEFINE byte_5 b'11110000' ; the 5th byte in the i2c message
#DEFINE scl PORTA,1 ; pin 12 i2c clock output
#DEFINE sda PORTA,0 ; pin 13 i2c data output
#DEFINE sw1 PORTC,0 ; pin 10 switch 1 input
#DEFINE sw2 PORTC,1 ; pin 9 switch 2 input
#DEFINE sw3 PORTC,2 ; pin 8 switch 3 input
#DEFINE sw4 PORTC,3 ; pin 7 switch 4 input
#DEFINE sw5 PORTC,4 ; pin 6 switch 5 input
#DEFINE sw6 PORTC,5 ; pin 5 switch 6 input
#DEFINE sw7 PORTA,4 ; pin 3 switch 7 input
#DEFINE sw8 PORTA,5 ; pin 2 switch 8 input
;===========================================================================
; Macro to create offsets for variables in RAM
;
ByteAddr SET 40h ; user RAM starts here
BYTE MACRO ByteName
ByteName EQU ByteAddr
ByteAddr SET ByteAddr+1
ENDM
; ==========================================================================
; RAM Variable Definitions
;
BYTE shift_out ; byte for shifting out on i2c
BYTE counter ; counter for cycles
BYTE byte_2 ; the 2nd byte in the i2c message, freq control
BYTE byte_3 ; the 3rd byte in the i2c message, freq control
BYTE w_puffer ; temporary save for w
; -------------------------------------------------------------------
; | |
; | Code start |
; | |
; -------------------------------------------------------------------
org 0x000
Eleje
goto Start ; Start application beyond vector area
org 04h
; -------------------------------------------------------------------
; | |
; | Main program start |
; | |
; -------------------------------------------------------------------
Start
bcf STATUS,RP0 ; Bank 0
bcf STATUS,RP1
movlw 0ffh ; set scl and sda as 1
movwf PORTA
movlw 07h ; set port A and C as digital i/o
movwf CMCON0
bsf STATUS,RP0 ; Bank 1
bsf STATUS,RP1
movlw b'11111100' ; port A outputs: 0,1 inputs: all the rest
movwf TRISA
movlw 0ffh ; port C all inputs
movwf TRISC
movlw 0ffh ; set weak pull-up on port A inputs
movwf WDA
movlw 0ffh ; enable pull-up-down on port A inputs
movwf WPUDA
bcf OPTION_REG,7 ; enable pull-up-down on port A inputs
bcf OSCCON,IRCF1
bsf OSCCON,IRCF0
bcf OSCCON,IRCF1 ; set clock to 125kHz
bcf STATUS,RP0 ; Bank 0
bcf STATUS,RP1
test_switches
s1
btfsc sw1
goto s2
movlw 0
call sendi2c
s1a
btfss sw1
goto s1a
s2
btfsc sw2
goto s3
movlw 2
call sendi2c
s2a
btfss sw2
goto s2a
s3
btfsc sw3
goto s4
movlw 4
call sendi2c
s3a
btfss sw3
goto s3a
s4
btfsc sw4
goto s5
movlw 6
call sendi2c
s4a
btfss sw4
goto s4a
s5
btfsc sw5
goto s6
movlw 8
call sendi2c
s5a
btfss sw5
goto s5a
s6
btfsc sw6
goto s7
movlw 0ah
call sendi2c
s6a
btfss sw6
goto s6a
s7
btfsc sw7
goto s8
movlw 0ch
call sendi2c
s7a
btfss sw7
goto s7a
s8
btfsc sw8
goto s1
movlw 0eh
call sendi2c
s8a
btfss sw8
goto s8a
goto s1
get_freq
addwf PCL,f
retlw high (freq_1*8 + ifreq/d'125')
retlw low (freq_1*8 + ifreq/d'125')
retlw high (freq_2*8 + ifreq/d'125')
retlw low (freq_2*8 + ifreq/d'125')
retlw high (freq_3*8 + ifreq/d'125')
retlw low (freq_3*8 + ifreq/d'125')
retlw high (freq_4*8 + ifreq/d'125')
retlw low (freq_4*8 + ifreq/d'125')
retlw high (freq_5*8 + ifreq/d'125')
retlw low (freq_5*8 + ifreq/d'125')
retlw high (freq_6*8 + ifreq/d'125')
retlw low (freq_6*8 + ifreq/d'125')
retlw high (freq_7*8 + ifreq/d'125')
retlw low (freq_7*8 + ifreq/d'125')
retlw high (freq_8*8 + ifreq/d'125')
retlw low (freq_8*8 + ifreq/d'125')
sendi2c
bsf STATUS,RP0 ; Bank 1
bsf STATUS,RP1
bsf OSCCON,IRCF2 ; set clock to 2MHz
bcf STATUS,RP0 ; Bank 0
bcf STATUS,RP1
movwf w_puffer
call get_freq
movwf byte_2
incf w_puffer,w
call get_freq
movwf byte_3
bcf sda
nop
bcf scl
movlw byte_1
movwf shift_out
call byte_out
movf byte_2,w
movwf shift_out
call byte_out
movf byte_3,w
movwf shift_out
call byte_out
movlw byte_4
movwf shift_out
call byte_out
movlw byte_5
movwf shift_out
call byte_out
bsf sda
nop
bsf scl
bsf STATUS,RP0 ; Bank 1
bsf STATUS,RP1
bcf OSCCON,IRCF2 ; set clock to 125kHz
bcf STATUS,RP0 ; Bank 0
bcf STATUS,RP1
return
byte_out
movlw 8
movwf counter
bo1
rlf shift_out,f
btfsc STATUS,C
goto bo3
bcf sda
nop
bo2
bsf scl
nop
bcf scl
decfsz counter,f
goto bo1
bcf sda
nop
bsf scl
nop
bcf scl
return
bo3
bsf sda
goto bo2
end
Нашел на рцгрупс еще и микропрограмму чипа приемника Lawmate, думаю пригодится и здесь для тех кому охота перестроить его под свои частоты Кстати Антон, обещали обмерить передатчик частотомером, что нибудь получилось?
Я для Атмеги 168 написал-сделал - можно выставить любую частоту от 900 до 1400 ( сколько позволяет имеющееся напряжение для варикапа) , индикация частоты и уровня принимаемого сигнала - на двухстрочном 16-ти символном индикаторе.
И как индикатор поля использовать хорошо, особенно с аттенюатором на входе.
Приемник у меня другой - он по умолчанию 4-х канальный, но тюнер входной имеет тот же.
подскажите оптимальную частоту для штырков в комплекте ЛМ 1.2 чтобы меньше грелсия передатчик . просто под рукой нету не лампочки , не мультиметра чтобы сам проверить .
спасибо
подскажите оптимальную частоту для штырков в комплекте ЛМ 1.2
Без измерений - невозможно. Там антеннки лапоть влево/ лапоть вправо.
добрый день. Кто подскажет как считать программу. А потом обратно залить ее? в этот приемник