Ejemplo n.º 1
0
/*
*********************************************************************************************************
*	函 数 名: TM7705_ReadAdc1
*	功能说明: 读通道1或2的ADC数据
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
uint16_t ICACHE_FLASH_ATTR
TM7705_ReadAdc(u8 _ch)
{
	u8 i;
	u16 read = 0;

	/* 为了避免通道切换造成读数失效,读2次 */
	for (i = 0; i < 2; i++){
		TM7705_WaitDRDY();		/* 等待DRDY口线为0 */
		if (_ch == 1){
			TM7705_WriteByte(0x38);
		}else if (_ch == 2){
			TM7705_WriteByte(0x39);
		}
		read = TM7705_Read2Byte();
	}
	return read;
}
Ejemplo n.º 2
0
/*
*********************************************************************************************************
*	函 数 名: TM7705_ReadAdc
*	功能说明: 读通道1或2的ADC数据
*	形    参:  _ch : ADC通道,1或2
*	返 回 值: 0 ~ 65535
*********************************************************************************************************
*/
unsigned short TM7705_ReadAdc(unsigned char _ch) {
	unsigned char i;
	unsigned short read = 0;

	/* 为了避免通道切换造成读数失效,读3次 */
	for (i = 0; i < 3; i++) {
		TM7705_WaitDRDY();		/* 等待DRDY口线为0 */

		if (_ch == 1) {
			TM7705_WriteByte(0x38);
		}
		else if (_ch == 2) {
			TM7705_WriteByte(0x39);
		}

		read = TM7705_Read2Byte();
	}
	return read;
}
Ejemplo n.º 3
0
/*
*********************************************************************************************************
*	功能说明: 读指定的寄存器
*	形    参:  _RegID : 寄存器ID
*			  _RegValue : 寄存器值。 对于8位的寄存器,取32位形参的低8bit
*	返 回 值: 读到的寄存器值。 对于8位的寄存器,取32位形参的低8bit
*********************************************************************************************************
*/
unsigned long TM7705_ReadReg(unsigned char _RegID) {
	unsigned char bits;
	unsigned long read;

	switch (_RegID) {
		case REG_COMM:		/* 通信寄存器 */
		case REG_SETUP:		/* 设置寄存器 8bit */
		case REG_CLOCK:		/* 时钟寄存器 8bit */
			bits = 8;
			break;

		case REG_ZERO_CH1:	/* CH1 偏移寄存器 24bit */
		case REG_FULL_CH1:	/* CH1 满量程寄存器 24bit */
		case REG_ZERO_CH2:	/* CH2 偏移寄存器 24bit */
		case REG_FULL_CH2:	/* CH2 满量程寄存器 24bit*/
			bits = 24;
			break;

		case REG_DATA:		/* 数据寄存器 16bit */
		default:
			return 0xFFFFFFFF;
	}

	TM7705_WriteByte(_RegID | READ);	/* 写通信寄存器, 指定下一步是写操作,并指定写哪个寄存器 */

	if (bits == 16) {
		read = TM7705_Read2Byte();
	}
	else if (bits == 8) {
		read = TM7705_ReadByte();
	}
	else { 	// 24 bits
		read = TM7705_Read3Byte();
	}
	return read;
}