在线时间400 小时
UID2075309
注册时间2014-2-25
NXP金币47
TA的每日心情 | 开心 2019-10-17 08:07 |
---|
签到天数: 273 天 [LV.8]以坛为家I
金牌会员
- 积分
- 7350
- 最后登录
- 2021-8-30
|
本帖最后由 anny 于 2019-7-25 13:55 编辑
S08P芯片没有DAC功能,但是板子上外挂了一个8位的DAC芯片DAC5571,S08P芯片通过IIC与DAC5571通讯。本次实现功能是S08P通过与DAC5571芯片输出电压,然后用S08P芯片的ADC读取出来。
官方已经有了各种测试例程,只要作删减保留自己所要的就能实现功能了。
1、首先还是各种初始化:
Sys_Init();
EnableInterrupts;
printf("\n-- S08-LITE DAC输出实现 --\n");
printf("\n");
//Initialize MTIM0, 625Hz interrupt interval, used for toggle LED
MTIM0_Init();
MTIM0_Start();
//Initialize MTIM1, 1ms interrupt interval, used for 1ms time delay
MTIM1_Init();
//Initialize GPIO used for LED
LED_Init();
//Initialize ADC, 12bit mode
ADC_Init();
//Initialize I2C PTA2/3 used for DAC5571 write/read
DAC5571_Init();
2、本次实验的程序:
void DAC5571WriteData(unsigned char u8Data)
{
/* send data to slave */
IIC_StartTransmission(DAC5571_I2C_ADDRESS, MWSR);
i2c_Wait();
/* Send I2C address */
I2C_D = u8Data>>4;
i2c_Wait();
/* Send data */
I2C_D = u8Data<<4;
i2c_Wait();
i2c_Stop();
delay();
}
void DAC5571_Test(void)
{
unsigned short uiADC_Value;
unsigned long uiADC_Value_temp;
unsigned char i;
unsigned char dacOutputValue;
unsigned char dacOutputValueMin, dacOutputValueMax;
uint8_t temp;
//initialize adc channel to measure the dac output
if (DAC5571_ADC_CHANNEL<8)
{
temp = ADC_APCTL1;
temp |= (1<<DAC5571_ADC_CHANNEL);
ADC_APCTL1 = temp;
}
else
{
temp = ADC_APCTL2;
temp |= (1<<(DAC5571_ADC_CHANNEL-8));
ADC_APCTL2 = temp;
}
printf("DAC5571 test: BEGINS\n");
while(1)
{
for(dacOutputValue=0; dacOutputValue<255; dacOutputValue++)
{
DAC5571WriteData(dacOutputValue);
DelayMS(1000);
uiADC_Value = ADC_GetResult(DAC5571_ADC_CHANNEL);
for (i=0; i<10; i++)
{
uiADC_Value_temp = ADC_GetResult(DAC5571_ADC_CHANNEL);
uiADC_Value_temp += uiADC_Value;
uiADC_Value = (unsigned short)(uiADC_Value_temp/2);
}
//8-bit DAC, 12-bit ADC, so the mapping ratio = 4096/256 = 16
uiADC_Value = uiADC_Value /16;
printf ("输出电压 : %d\n", dacOutputValue);
printf ("检测电压 : %d\n", uiADC_Value);
}
}
}
3、实验结果:
专用芯片的DAC输出还是很准的!附上点资料,来自于网络
DAC5571 使用心得.rar
(398.93 KB, 下载次数: 5)
|
|