adc.c
来自「以C8051F330为核心,开发单端正激型开关电源充电器,C8051F330负责」· C语言 代码 · 共 51 行
C
51 行
#include "switch_power.h"
void ADC0_Initial(void)
{
AMX0N = 0x11;//operates in single-ended mode
ADC0CF = 0x78;//bit7--bit3 set AD0SC 11111 ,bit 2 set 0 means right-justified
ADC0CN = 0xc0;//bit 7 set 1 enable ADC0
//bit 6 set 0 means normal track mode, set 1 means low-power track-and-hold mod
//bit 5 conversion complete interrupt flag
//bit 4 busy bit
//bit 3 windows compare interrupt flag
//bit 2--0 start of conversion mode ,000 means write 1 to AD0BUSY
}
/************************************************
* I*R3*1024/Vref = CurrentNum *
************************************************/
void ADC0_Current(void)
{
AMX0P = 0x0C;
AD0INT = 0;
AD0BUSY = 1;
while(AD0INT == 0);
CurrentNum = ADC0H;
CurrentNum <<= 8;
CurrentNum += ADC0L;
}
/***************************************************************************************
* U*R2*1024/(R1*Vref + R2*Vref) = VoltageNum - CurrentNum*R2/(R1+R2) *
***************************************************************************************/
void ADC0_Voltage(void)
{
AMX0P = 0x0D;
AD0INT = 0;
AD0BUSY = 1;
while(AD0INT == 0);
VoltageNum = ADC0H;
VoltageNum <<= 8;
VoltageNum += ADC0L;
VoltageNum = VoltageNum - CurrentNum/20;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?