⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad7793.c

📁 Analog-to-digital converter AD7793 functions to work with ATmega128/ATmega2560
💻 C
字号:
#include "ad7793.h"

static unsigned char (*send_byte)(unsigned char c);

void ad7793_init()
{
#ifdef SPI_COMMUNICATIONS
      send_byte = spi_send_byte;
      spi_init();
#endif
#ifdef UART_COMMUNICATIONS
      send_byte = uartspi_send_byte;
      uartspi_init();
#endif
}

unsigned char ad7793_get_ID()
{
      send_byte((1<<RW) | (1<<RS2));
      return send_byte(0xFF);
}


unsigned char ad7793_get_status()
{
      send_byte((1<<RW));
      return send_byte(0xFF);
}

unsigned int ad7793_get_mode()
{
unsigned int b1, b2;

      send_byte((1<<RW) | (1<<RS0));
      b1 = send_byte(0xFF);
      b2 = send_byte(0xFF);

      return (b2 | (b1 << 8));
}

unsigned int ad7793_get_config()
{
unsigned int b1, b2;

      send_byte((1<<RW) | (1<<RS1));

      b1 = send_byte(0xFF);
      b2 = send_byte(0xFF);

      return (b2 | (b1 << 8));
}


unsigned long int ad7793_get_data()
{
unsigned long int b1;
unsigned int  b2;
unsigned char b3;

      send_byte((1<<RW) | (1<<RS1) | (1<<RS0));

      b1 = send_byte(0xFF);
      b2 = send_byte(0xFF);
      b3 = send_byte(0xFF);

      return (b3 | (b2 << 8) | (b1 << 16));
}

unsigned char ad7793_get_IO()
{
      send_byte((1<<RW) | (1<<RS2) | (1<<RS0));
      return send_byte(0xFF);
}


unsigned long int ad7793_get_offset()
{
unsigned long int b1;
unsigned int  b2;
unsigned char b3;

      send_byte((1<<RW) | (1<<RS2) | (1<<RS1));

      b1 = send_byte(0xFF);
      b2 = send_byte(0xFF);
      b3 = send_byte(0xFF);

      return (b3 | (b2 << 8) | (b1 << 16));
}

unsigned long int ad7793_get_calibration()
{
unsigned long int b1;
unsigned int  b2;
unsigned char b3;

      send_byte((1<<RW) | (1<<RS2) | (1<<RS1) | (1<<RS0));

      b1 = send_byte(0xFF);
      b2 = send_byte(0xFF);
      b3 = send_byte(0xFF);

      return (b3 | (b2 << 8) | (b1 << 16));
}


void ad7793_set_mode(unsigned int mode)
{
      send_byte(1<<RS0);
      send_byte(mode >> 8);
      send_byte(mode & 0xFF);
}


void ad7793_set_config(unsigned int config)
{
      send_byte(1<<RS1);
      send_byte(config >> 8);
      send_byte(config & 0xFF);
}

void ad7793_set_IO(unsigned char io_mode)
{
      send_byte((1<<RS2)| (1<<RS0));
      send_byte(io_mode);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -