DS homero source

elight elight at zalaszam.hu
Wed Mar 7 11:27:04 CET 2007


Köszi,

mekkora kvarc volt?
vagy nem számít?

egyeztetem az adatlappal,
aztán megprobálom :-)

Üdvc   István



----- Original Message ----- 
From: "Bodosi Bal zs" <BBALAZS at phys.szote.u-szeged.hu>
To: <elektro at tesla.hu>
Sent: Wednesday, March 07, 2007 12:11 PM
Subject: DS homero source


> Szia, megis talaltam itt egyet.
> A data_pin az az PORTA,3 volt, a data_pin_dd meg az adatirany-reg.
> a TRISA,3
> Az idoziteseket ertelemszeruen a frekihez kell hangolni.
>
> ;------------------------------------------------------------
>
> rutin1820_konverzio_indito
>     call   INIT        ; init DS1820
>     mov  O_BYTE,0cch   ;skip rom ALL devices
>     call   OUT_BYTE
>     mov  O_BYTE,44h    ;temp conv ALL devices
>     call   OUT_BYTE
>    ret
>
> rutin1820_homerseklet_beolvaso
>     call   WAIT           ; wait for conversion to complete
>     call   INIT
>     mov  O_BYTE,055h   ;rom match
>     call   OUT_BYTE
>    call pottyos
>     mov  O_BYTE,0beh
>     call   OUT_BYTE
>     call   IN_BYTE
>     movwf  ertek03lo
>     call   IN_BYTE
>     movwf  ertek03hi
>
>     call   INIT
>     mov  O_BYTE,055h   ;rom match
>     call   OUT_BYTE
>    call reszelt
>     mov  O_BYTE,0beh
>     call   OUT_BYTE
>     call   IN_BYTE
>     movwf  ertek04lo
>     call   IN_BYTE
>     movwf  ertek04hi
>
>     call   INIT
>     mov  O_BYTE,055h   ;rom match
>     call   OUT_BYTE
>    call rovid
>     mov  O_BYTE,0beh
>     call   OUT_BYTE
>     call   IN_BYTE
>     movwf  ertek05lo
>     call   IN_BYTE
>     movwf  ertek05hi
>
>     call   INIT
>     mov  O_BYTE,055h   ;rom match
>     call   OUT_BYTE
>    call hosszu
>     mov  O_BYTE,0beh
>     call   OUT_BYTE
>     call   IN_BYTE     ; get from DS1820 and save
>     movwf  ertek06lo
>     call   IN_BYTE
>     movwf  ertek06hi
> ret
>
>
>
> ; Standard 1-Wire routines -------------------------------------------
> -----
>
> INIT:
>     call   pin_input
>     call   pin_output      ;force low
>     movlw  D'50'              ; 500 us delay
>     call DELAY_10USEC
>     call pin_input             ;release pin
>     movlw  D'10'              ; 100 us delay
>     call DELAY_10USEC
>     btfss Data_pin
>    nop
>     movlw  D'50'       ; 500 usec delay
>     call DELAY_10USEC
>     ret
>
> WAIT:
>     call   IN_BYTE
>     movlw  0FFH
>     subwf  I_BYTE, W
>     btfss  STATUS, Z
>     jmp   WAIT
>     ret
>
> IN_BYTE:                   ; returns byte in W
>     mov INDEX,8
>     clrf I_BYTE
>
> bajtotbevesz:
>     call pin_output         ; momentary low on DATA_PIN
>        nop
>    nop
>     call pin_input
>
>    mov delawar,8   ;wait
>      delava1
>    nop
>    decfsz delawar
>    jmp delava1
>
>    clc
>     btfsc Data_pin
>    stc
>     rrcf    I_BYTE, F
>     movlw  6              ; now delay 60 usecs
>     call   DELAY_10USEC
>     decfsz INDEX, F
>     jmp   bajtotbevesz
>
>     movf I_BYTE,w         ; return the result in W
>     ret
>
> OUT_BYTE:
>     mov INDEX,8
>  bajtkitolo_1:
>     rrcf    O_BYTE, F
>     btfss  STATUS, C
>     jmp   OUT_0
>     jmp   OUT_1
> kitolovissza:
>     decfsz    INDEX, F
>     jmp   bajtkitolo_1
>     ret
>
> OUT_0:
>     call   pin_output          ; bring DATA_PIN low
>     movlw  6               ; for 60 usecs
>     call   DELAY_10USEC
>     call   pin_input
>     jmp   kitolovissza
>
> OUT_1:
>     call pin_output            ; momentary low
>    nop
>    nop
>    nop
>    nop
>     call   pin_input
>     movlw 6
>     call DELAY_10USEC
>     jmp   kitolovissza
>
> ;;;;;;
>
> pin_input:
>     bsf  Data_pin_dd       ; high impedance
>     ret
>
> pin_output:
>     bcf  Data_pin_dd       ; low impedance zero
>     bcf  Data_pin
>     ret
>
> DELAY_10USEC:  ; provides a delay equal to W * 10 usecs
>     movwf LOOP1
>   varcik1:
>    mov delawar,10
>      delavara
>    nop
>    decfsz delawar
>    jmp delavara
>     decfsz LOOP1, F
>     jmp varcik1
>     ret
>
> rovid
>     mov  O_BYTE,010h
>     call   OUT_BYTE
>     mov  O_BYTE,0a3h
>     call   OUT_BYTE
>
>     mov  O_BYTE,04ch
>     call   OUT_BYTE
>     mov  O_BYTE,0ffh
>     call   OUT_BYTE
>
>     mov  O_BYTE,00h
>     call   OUT_BYTE
>     mov  O_BYTE,08h
>     call   OUT_BYTE
>
>     mov  O_BYTE,00h
>     call   OUT_BYTE
>     mov  O_BYTE,0abh
>     call   OUT_BYTE
>    ret
>
> hosszu
>     mov  O_BYTE,010h
>     call   OUT_BYTE
>     mov  O_BYTE,034h
>     call   OUT_BYTE
>
>     mov  O_BYTE,09bh
>     call   OUT_BYTE
>     mov  O_BYTE,0ffh
>     call   OUT_BYTE
>
>     mov  O_BYTE,00h
>     call   OUT_BYTE
>     mov  O_BYTE,08h
>     call   OUT_BYTE
>
>     mov  O_BYTE,00h
>     call   OUT_BYTE
>     mov  O_BYTE,090h
>     call   OUT_BYTE
>    ret
>
> pottyos
>     mov  O_BYTE,010h
>     call   OUT_BYTE
>     mov  O_BYTE,091h
>     call   OUT_BYTE
>
>     mov  O_BYTE,042h
>     call   OUT_BYTE
>     mov  O_BYTE,0ffh
>     call   OUT_BYTE
>
>     mov  O_BYTE,00h
>     call   OUT_BYTE
>     mov  O_BYTE,08h
>     call   OUT_BYTE
>
>     mov  O_BYTE,00h
>     call   OUT_BYTE
>     mov  O_BYTE,08ah
>     call   OUT_BYTE
>    ret
>
> reszelt
>     mov  O_BYTE,010h
>     call   OUT_BYTE
>     mov  O_BYTE,036h
>     call   OUT_BYTE
>
>     mov  O_BYTE,053h
>     call   OUT_BYTE
>     mov  O_BYTE,0ffh
>     call   OUT_BYTE
>
>     mov  O_BYTE,00h
>     call   OUT_BYTE
>     mov  O_BYTE,08h
>     call   OUT_BYTE
>
>     mov  O_BYTE,00h
>     call   OUT_BYTE
>     mov  O_BYTE,0e2h
>     call   OUT_BYTE
>    ret
> Udv:
>    BBalazs
>
> http://www.phys.szote.u-szeged.hu/bbalazs/bbalazs.htm
>
>
> -----------------------------------------
>          elektro[-flame|-etc]
>
> _____________ NOD32 1946 (20061229) Információ _____________
>
> Az üzenetet a NOD32 antivirus system megvizsgálta.
> http://www.nod32.hu
>
> 



More information about the Elektro mailing list