📄 adc22p.i
字号:
#line 1 "ADC22P.c"
#line 1 "e:\03 电机控制器测试平台\04软件\01硬件驱动程序\04 tlc2543\01 spi/ADC22P.h"
#line 1 "e:\03 电机控制器测试平台\04软件\01硬件驱动程序\04 tlc2543\01 spi/GP32C.H"
#line 2 "e:\03 电机控制器测试平台\04软件\01硬件驱动程序\04 tlc2543\01 spi/ADC22P.h"
#line 1 "e:\03 电机控制器测试平台\04软件\01硬件驱动程序\04 tlc2543\01 spi/Type.h"
typedef unsigned char INT8U;
typedef signed char INT8S;
typedef unsigned int INT16U;
typedef signed int INT16S;
typedef unsigned long INT32U;
typedef signed long INT32S;
typedef float FP32;
typedef double FP64;
#line 3 "e:\03 电机控制器测试平台\04软件\01硬件驱动程序\04 tlc2543\01 spi/ADC22P.h"
void SPIInit(void);
void ADC11P(INT16U *ADValue);
void TLC2543(INT16U cs,INT16U channel,INT8U *buf);
#line 7 "ADC22P.c"
void ADC11P(INT8U cs,INT16U *ADValue)
{
INT8U i,j,k,flag,buff[2];
INT16U temp;
for(flag=0;flag<=10;flag++)
ADValue[flag]=0;
TLC2543(cs,0,buff);
for(k=1;k<=16;k++)
{
flag=0;
for(j=0;j<=10;j++)
{
TLC2543(cs,j,buff);
temp=*((unsigned int *)buff);
ADValue[flag]=ADValue[flag]+temp;
flag++;
}
}
for(flag=0;flag<=10;flag++)
ADValue[flag]=ADValue[flag]/16;
}
void TLC2543(INT16U cs,INT16U channel,INT8U *buf)
{
INT8U temp;
*(volatile unsigned char *)0x06 =0xff;
*(volatile unsigned char *)0x02 = 0xff;
*(volatile unsigned char *)0x02 &= ~(1<<cs);
*(volatile unsigned char *)0x12 = (channel<<4) | 0x0C;
while ((*(volatile unsigned char *)0x11 & (1<< 3)) == 0);
while ((*(volatile unsigned char *)0x11 & (1<< 7)) == 0);
*buf = *(volatile unsigned char *)0x12;
*(volatile unsigned char *)0x12 = *buf;
while ((*(volatile unsigned char *)0x11 & (1<< 3)) == 0);
while ((*(volatile unsigned char *)0x11 & (1<< 7)) == 0);
*(buf+1) = *(volatile unsigned char *)0x12;
*(volatile unsigned char *)0x02 = 0xff;
*(buf+1) = (*(buf+1)>>4) | (*buf<<4);
*buf = *buf>>4;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -