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

📄 tlc2543.c

📁 电源采样控制
💻 C
字号:
/*****************************************************
|           ad tlc2543采样接口
|  说明:D3-D2=00:12位数据长度
|        D1=0:MSB导前格式输出
|        D0=0:以单极性数据格式输出
|        tlc2543rw():读取上一采样值并写入准备采样的地址
|        count_give():采样值转换为实际数值
|  版本:V2             AU:姚远航
|*****************************************************/

#include "type.h"
#include "Tlc2543.h"
#include "intrins.h"
//key
extern void delay(unsigned int value);
//
/*******************************************
|                 Tlc2543RW()
|参数: tlc2543的通道端口地址(准备转换的地址)
|返回值: 上一次采样值,确切输出值
|*********************************************/
unsigned int   Tlc2543RW(unsigned char addr)
{
 unsigned int PutOut;   //读取数据缓冲区
 unsigned char clock_count;    // 时钟计数器
 EA=0;
 B=addr;
 PutOut=0x0000;
 clock_count=12;
 B<<=4;             //移到字节高位
 CS_2543=1;     //片选
 CLK_2543=0;    //串行时钟
 A_2543=1;      //  串行地址输入端
 D_2543=1;      // 串行数据输入端
 CS_2543=true;
 delay(1);

 while(clock_count--)
 {
   bit d;
   PutOut<<=1;
   A_2543=B_7;         //数据加入输入信号线
   //获得输出信号线上数据
   d=D_2543;
   if(d)
   {
    PutOut=PutOut | 0x0001;
   }
   else
   {
   PutOut=PutOut & 0xfffe;
   }
   CLK_2543=TRUE;
   _nop_();
   CLK_2543=FLASE;       //启动一个时钟周期
   _nop_();
   B<<=1;
 }
 CS_2543=false;
 delay(1);
 EA=1;
 delay(1);
 return PutOut;
}


/*************采样值合成浮点数************************
 参数:   无符号整形数组(tlc_2543得到的值)
          模拟通道号值倍数
 返回值: 模拟通道浮点数;
**********************************************************/

float count_give(unsigned int ad,unsigned int scale)
{
 float   temp;
 temp=(float)(ad*REF);
 temp=temp*scale;
 temp=temp/4095.0;
 return temp;
 }


⌨️ 快捷键说明

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