Помогите подправить прошивку для pic контроллера 12f629
- Войдите на сайт для отправки комментариев
Пт, 06/10/2017 - 19:13
Здравствуйте ищу человека для редактирования прошивки, а в случае невозможности отредатктировать - написать новую. Готовое устройство на чём тестировать уже есть. Прибор считывает входящую частоту ШИМ сигнала, и если эта частота превышает 60 Гц, замыкается реле. Принципиальную схему прилагаю.
Сейчас по какой то причине реле срабатывает только при достижении частоты в 67 Гц.
Основная проблема заключается в том что в наличии имеется только .hex файл.
Диасемблировав получил вот это:
; original File = C:\Users\gosha\Downloads\ref1\ref1.hex processor 12F629 #include <P12F629.INC> __config 0x31C4 ; _CPD_OFF & _CP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF ; & _INTRC_OSC_NOCLKOUT ; RAM-Variable LRAM_0x20 equ 0x20 LRAM_0x21 equ 0x21 LRAM_0x22 equ 0x22 LRAM_0x23 equ 0x23 LRAM_0x24 equ 0x24 LRAM_0x25 equ 0x25 LRAM_0x26 equ 0x26 LRAM_0x27 equ 0x27 LRAM_0x28 equ 0x28 ; Program Org 0x0000 ; Reset-Vector BCF PCLATH,4 ; !!Bank Program-Page-Select BCF PCLATH,3 ; !!Bank Program-Page-Select GOTO LADR_0x0005 NOP ; Interrupt-Vector RETFIE LADR_0x0005 MOVLW 0x07 MOVWF CMCON ; !!Bank!! CMCON - VRCON MOVLW 0xFB BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select MOVWF GPIO ; !!Bank!! GPIO - TRISIO BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select CLRF GPIO ; !!Bank!! GPIO - TRISIO LADR_0x000C BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select BSF GPIO,4 ; !!Bank!! GPIO - TRISIO BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select BCF STATUS,IRP MOVLW 0x05 MOVWF FSR MOVLW 0x10 MOVWF LRAM_0x24 MOVLW 0xE7 MOVWF LRAM_0x22 MOVLW 0x03 MOVWF LRAM_0x23 CALL LADR_0x0047 MOVF LRAM_0x20,W MOVWF LRAM_0x26 MOVF LRAM_0x21,W MOVWF LRAM_0x27 MOVF LRAM_0x26,W MOVWF LRAM_0x20 MOVF LRAM_0x27,W MOVWF LRAM_0x21 MOVLW 0x3A MOVWF LRAM_0x22 CLRF LRAM_0x23 CALL LADR_0x0030 BTFSS STATUS,Z GOTO LADR_0x0029 BSF GPIO,2 ; !!Bank!! GPIO - TRISIO GOTO LADR_0x002A LADR_0x0029 BCF GPIO,2 ; !!Bank!! GPIO - TRISIO LADR_0x002A GOTO LADR_0x000C LADR_0x002B GOTO LADR_0x002B MOVLW 0x05 GOTO LADR_0x0037 MOVLW 0x02 GOTO LADR_0x0037 LADR_0x0030 MOVLW 0x06 GOTO LADR_0x0037 MOVLW 0x03 GOTO LADR_0x0037 MOVLW 0x04 GOTO LADR_0x0037 MOVLW 0x01 LADR_0x0037 MOVWF LRAM_0x28 MOVF LRAM_0x23,W SUBWF LRAM_0x21,W BTFSS STATUS,Z GOTO LADR_0x003E MOVF LRAM_0x22,W SUBWF LRAM_0x20,W LADR_0x003E MOVLW 0x04 BTFSC STATUS,C MOVLW 0x01 BTFSC STATUS,Z MOVLW 0x02 ANDWF LRAM_0x28,W BTFSS STATUS,Z MOVLW 0xFF RETURN LADR_0x0047 CLRF LRAM_0x20 CLRF LRAM_0x21 BCF LRAM_0x25,0 BCF INTCON,T0IE BCF INTCON,T0IF BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select MOVLW 0xC0 ANDWF TMR0,F ; !!Bank!! TMR0 - OPTION_REG BSF TMR0,0 ; !!Bank!! TMR0 - OPTION_REG BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select MOVLW 0x07 MOVWF TMR0 ; !!Bank!! TMR0 - OPTION_REG LADR_0x0053 BTFSC INTCON,T0IF GOTO LADR_0x0065 BTFSC LRAM_0x25,0 GOTO LADR_0x0060 MOVF INDF,W ANDWF LRAM_0x24,W BTFSC STATUS,Z GOTO LADR_0x0053 BSF LRAM_0x25,0 INCF LRAM_0x20,F BTFSC STATUS,Z INCF LRAM_0x21,F GOTO LADR_0x0053 LADR_0x0060 MOVF INDF,W ANDWF LRAM_0x24,W BTFSC STATUS,Z BCF LRAM_0x25,0 GOTO LADR_0x0053 LADR_0x0065 MOVLW 0x07 MOVWF TMR0 ; !!Bank!! TMR0 - OPTION_REG BCF INTCON,T0IF MOVF LRAM_0x22,F BTFSC STATUS,Z GOTO LADR_0x006D DECF LRAM_0x22,F GOTO LADR_0x0053 LADR_0x006D MOVF LRAM_0x23,F BTFSC STATUS,Z GOTO LADR_0x0073 DECF LRAM_0x23,F DECF LRAM_0x22,F GOTO LADR_0x0053 LADR_0x0073 BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select MOVLW 0x3F IORWF TMR0,F ; !!Bank!! TMR0 - OPTION_REG BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select RETURN End
Я в програмировании pic'ов ничего не понимаю. Вообщем жду предложений кто займется. .hex файл вышлю на почту. О цене договримся с реальным исполнителем. Спасибо за внимание.
Пишите htpicc@gmail.com.
pcbadm на малру.
На Тиньку переделать нельзя?
В пиках есть регул константа. Может быть просто ее попробовать менять. Почитайте калибровка пиков