Trosku zmena
Funguje to skvele ked zapojim osobitne jeden, alebo druhy kanal. Ked som ich vsak dnes zapojil obe, tak sa navzajom ovplyvnuju, teda ze dviham prvy a s urcitym odstupom sa zacne dvihat aj druhy s naopak, nechapem kde je problem,…
[code]LIST P=16F88
#include <p16f88.inc>
__CONFIG _CONFIG1, _WDT_OFF & _CP_OFF & _DEBUG_OFF & _CCP1_RB3 &_DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _PWRTE_ON & _INTRC_IO
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
C1 EQU 21h
C2 EQU 22h
C3 EQU 23h
F2 EQU 24h
S2 EQU 25h
P2 EQU 26h
W2 EQU 27h
DIMM1 EQU 28h
DIMM2 EQU 29h
STAT EQU 2Ch
#DEFINE GATE1 PORTB,1
#DEFINE GATE2 PORTB,2
ORG 00h
GOTO START
ORG 04h
BCF GATE1
BCF GATE2
BCF PORTA,2
MOVF W2
movf STATUS,W
clrf STATUS ; Banka 0
movwf S2 ; STATUS
movf PCLATH,W
movwf P2 ; PCLATH
movf FSR,W
movwf F2 ; FSR
BCF INTCON,1
;PROGRAM----------------------
CALL CAKAJ200us
MOVLW 0
MOVWF STAT
RIADENIE
MOVLW 0
SUBWF DIMM1
BTFSC STATUS,2
GOTO $+5
DECFSZ DIMM1
GOTO $+4
INCF DIMM1
BSF GATE1
BSF STAT,0
SUBWF DIMM2
BTFSC STATUS,2
GOTO $+5
DECFSZ DIMM2
GOTO $+4
INCF DIMM2
BSF GATE2
BSF STAT,1
MOVLW .20
MOVWF C1
DECFSZ C1
GOTO $-1
BTFSS STAT,0
GOTO RIADENIE
BTFSS STAT,1
GOTO RIADENIE
;PROGRAM----------------------
MOVLW B’10010000’ ; povoleni zpet pozadovanych preruseni
MOVWF INTCON
MOVFW W2
movf F2,W ; FSR
movwf FSR
movf P2,W ; PCLATH
movwf PCLATH
movf S2,W ; Status
movwf STATUS
RETFIE
START
BANKSEL OSCCON ;PRVA BANKA
MOVLW B’01110010’ ; 8MHz, takt stabilny, takt - FOSC
MOVWF OSCCON
MOVLW B’00000011’ ;Digitalne porty - A
MOVWF ANSEL
MOVLW B’00000000’ ;PULL-UP enable, nabezna hrana prerusenia na RB0, hodinovy signal pre TMR0-INT, x, preddelicka na TMR0, 1:2
MOVWF OPTION_REG
MOVLW B’01000000’ ;radenie sprava, casovanie AD /2 od takt.fr. uC , AVdd-AVss
MOVWF ADCON1
MOVLW B’00000001’
MOVWF TRISB ;B-port ako vystupny
MOVLW B’10100011’
MOVWF TRISA
MOVLW B’10010000’ ;Globalne prerusenia - ON, periferie - ON, TMR0 - OFF, RB0 - ON, RB4-7 - OFF
MOVWF INTCON
CLRF STATUS ;NULTA BANKA
CLRF PORTB
CLRF PORTA
PROGRAM ;//////////////////////////////////////////////
BSF PORTA,2
MOVLW B’11000001’ ; zapnuti AD
MOVWF ADCON0
BSF ADCON0,2
BTFSC ADCON0,2 ;cakanie na ukoncenie prevodu
GOTO $-1
MOVFW ADRESH ;Adresl do pracovneho reg.
MOVWF DIMM1
;-----------------------------------------
MOVLW B’11001001’ ; zapnuti AD
MOVWF ADCON0
BSF ADCON0,2
BTFSC ADCON0,2 ;cakanie na ukoncenie prevodu
GOTO $-1
MOVFW ADRESH ;Adresl do pracovneho reg.
MOVWF DIMM2
GOTO PROGRAM
;///////////////////////////////////////////////////////////
CAKAJ200us
MOVLW .130
MOVWF C1
DECFSZ C1
GOTO $-1
RETURN
END[/code]
Tam bude niekde problem s tym AD prevodom, lebo ked dam miesto toho prevodu kod:
[code]MOVLW .230
MOVWF DIMM1
MOVLW .220
MOVWF DIMM2
GOTO PROGRAM[/code]
alebo aj hociake ine cisla, tak to berie vpohode a robi jak ma vsetko.
Vidite tam pri AD niekto problem ??? Ja absolutne nie 