ad7731 два канала давление и температура делаем один раз после ресета ацп желательно ресет управляемый МК ,а то бывает ацп в даун уходит и РДИ не отдает РДИ на ИНТ и по приходу читаем состояние каналов по таймауту на РЕСЕТ
init_spi: ldi al,0x8 ;init sts flag_spi,al ; sts flag_tx,al ;передача запрещена ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ldi cl,4 ;.04sec= 40ms ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ldi al,0b00000011 ; rcall wr_spi ; lds al,filtr_zerh ; filtrzero 1 rcall wr_spi ; lds al,filtr_zerl ; rcall wr_spi ; call delit ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ldi al,0b00000010 ; rcall wr_spi ; ldi al,0b10100001 ;калибр full rcall wr_spi ; lds al,numbmasht0 ;mash<<4+chanal1 rcall wr_spi ; call delit ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ldi al,0b00000010 ; rcall wr_spi ; ldi al,0b10000001 ;калибр rcall wr_spi ; 0 lds al,numbmasht0 ; rcall wr_spi ; call delit ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ldi al,0b00000010 ; rcall wr_spi ; ldi al,0b10100001 ;калибр full rcall wr_spi ; lds al,numbmasht1 ; rcall wr_spi ; call delit ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ldi al,0b00000010 ; rcall wr_spi ; ldi al,0b10000001 ;калибр rcall wr_spi ; 0 lds al,numbmasht1 ;mash<<4+chanal2 rcall wr_spi ; call delit ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ldi al,0b00000011 ; rcall wr_spi ; lds al,filtr_fullh ; filtr основной rcall wr_spi ; lds al,filtr_fulll ; rcall wr_spi ; call delit ; ldi al,0b00000010 ; rcall wr_spi ; ldi al,0x51 ; rcall wr_spi ; ldi al,0 ; sts canal,al ; sts schetl,al ; lds al,numbmasht0 ; rcall wr_spi ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ret ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Сообщение отредактировал maxxx_x - Jun 3 2010, 09:42
|