.def srbyte = r12 ;byty for search rom algorithm .def writelow = r13; marker for send low .def zero =r14; always zero .def smode=r15; if 1 then send .def temp = r16 ; .def temp2 = r17; .def mode = r18 ; .def bitp = r19 ; bit counter ... shift... .def rwbyte = r21; .def param = r22; .def bytep = r23 ;byte counter #define spmcrval param .equ OWM_READ_ROM_COMMAND=0 ; 0 wegen schnellen test ist dieser wert 0! Daturch wird die Sprungdabelle nicht verwendet .equ OWM_SLEEP=1 ; Warten auf Reset .equ OWM_MATCH_ROM=2 .equ OWM_SEARCH_ROM_S=3 ;send bit .equ OWM_SEARCH_ROM_R=4 ;resive master .equ OWM_READ_COMMAND=5 .equ OWM_WRITE_SCRATCHPAD=6 .equ OWM_READ_SCRATCHPAD=7 .equ OWM_PROGRAMM_PAGE=8 .equ OWM_RECALL_FLASH=9 .equ OW_DDR = DDRB .equ OW_PIN = PORTB2 .equ OW_PORT = PORTB .equ OW_PINN = PINB ;.equ SRAM_START = 0x60 .macro set_clock ldi temp,0x80; out CLKPR,temp ldi temp,@0 out CLKPR,temp .endmacro .macro owwl sbic OW_PINN,OW_PIN rjmp pc-1 .endmacro .macro owwh sbis OW_PINN,OW_PIN rjmp pc-1 .endmacro ;--------------------------------------------------- ; START of PROG ;--------------------------------------------------- .CSEG .ORG 0x000 jreset: rjmp start ; Reset-Vector reti ; reti ; reti ; reti ; reti ; reti ; reti ; reti ; reti ; reti ; reti ; reti ; reti ; reti ; reti ; reti ; reti ; reti ; reti ; reti ; .ORG 0x0EC0 //7552 Byte start: cli ldi temp,0 mov zero,temp set_clock 0x00 ;8mhz ldi mode,OWM_SLEEP ldi temp,(1<