/* * Title : ds2438.c * Description : DS2438 subroutine * Author : KAWAMOTO Yasuhisa * URL : http://www.devdrv.co.jp/ * Date : 01/16/2006 */ //----------------------------------------------------------------------------- // Includes //----------------------------------------------------------------------------- #include #include "main.h" //----------------------------------------------------------------------------- // init_ds2438 //----------------------------------------------------------------------------- void init_ds2438(void) { } //----------------------------------------------------------------------------- // ds2438 //----------------------------------------------------------------------------- void ds2438(void) { unsigned char i; for(i = 0; i < 8; i++) uart0_put_val(ROMCode[i]); // Write Scratchpad OWTouchReset(); OWWriteByte(0x55); for(i = 0; i < 8; i++) OWWriteByte(ROMCode[i]); OWWriteByte(0x4E); OWWriteByte(0x00); OWWriteByte(0x08); // AD = 1(VDD) OWWriteByte(0x00); OWWriteByte(0x00); OWWriteByte(0x00); OWWriteByte(0x00); OWWriteByte(0x00); OWWriteByte(0x00); OWWriteByte(0x00); // Convert V OWTouchReset(); OWWriteByte(0x55); for(i = 0; i < 8; i++) OWWriteByte(ROMCode[i]); OWWriteByte(0xB4); tickDelay(10000*(SYSCLK/100000)/140); // tCONV = 10ms // Recall Memory OWTouchReset(); OWWriteByte(0x55); for(i = 0; i < 8; i++) OWWriteByte(ROMCode[i]); OWWriteByte(0xB8); OWWriteByte(0x00); // Read Scratchpad OWTouchReset(); OWWriteByte(0x55); for(i = 0; i < 8; i++) OWWriteByte(ROMCode[i]); OWWriteByte(0xBE); OWWriteByte(0x00); for(i = 0; i < 9; i++) { uart0_put_val(OWReadByte()); } // Write Scratchpad OWTouchReset(); OWWriteByte(0x55); for(i = 0; i < 8; i++) OWWriteByte(ROMCode[i]); OWWriteByte(0x4E); OWWriteByte(0x00); OWWriteByte(0x00); // AD = 0(VAD) OWWriteByte(0x00); OWWriteByte(0x00); OWWriteByte(0x00); OWWriteByte(0x00); OWWriteByte(0x00); OWWriteByte(0x00); OWWriteByte(0x00); // Convert T OWTouchReset(); OWWriteByte(0x55); for(i = 0; i < 8; i++) OWWriteByte(ROMCode[i]); OWWriteByte(0x44); tickDelay(10000*(SYSCLK/100000)/140); // tCONV = 10ms // Convert V OWTouchReset(); OWWriteByte(0x55); for(i = 0; i < 8; i++) OWWriteByte(ROMCode[i]); OWWriteByte(0xB4); tickDelay(10000*(SYSCLK/100000)/140); // tCONV = 10ms // Recall Memory OWTouchReset(); OWWriteByte(0x55); for(i = 0; i < 8; i++) OWWriteByte(ROMCode[i]); OWWriteByte(0xB8); OWWriteByte(0x00); // Read Scratchpad OWTouchReset(); OWWriteByte(0x55); for(i = 0; i < 8; i++) OWWriteByte(ROMCode[i]); OWWriteByte(0xBE); OWWriteByte(0x00); for(i = 0; i < 9; i++) { uart0_put_val(OWReadByte()); } uart0_put_char('\r'); uart0_put_char('\n'); OWTouchReset(); }