KK--ADC

#include <stdio.h>
#include "ls1b.h"
#include "mips.h"

//-------------------------------------------------------------------------------------------------
// BSP
//-------------------------------------------------------------------------------------------------

#include "bsp.h"

#ifdef BSP_USE_FB
    #include "ls1x_fb.h"
    char LCD_display_mode[] = LCD_480x800;
#endif
/*这部分通过预处理器指令#ifdef BSP_USE_FB判断是否定义了BSP_USE_FB宏。如果定义了,就包含"ls1x_fb.h"头文件,
并声明了一个名为LCD_display_mode的字符数组,并赋予其值"LCD_480x800"。*/

#include "ls1x_i2c_bus.h"
#include "ls1x-drv/include/i2c/ads1015.h"
#include "ls1x-drv/include/i2c/mcp4725.h"
#include "ls1x-drv/include/ls1x_fb.h"
#include "ls1b_gpio.h"


extern driver_ops_t *ls1x_mcp4725_drv_ops;
//ADS1015设备的I2C地址和波特率
#define ADS1015_ADDRESS  0x48
#define ADS1015_BAUDRATE  115230
//-------------------------------------------------------------------------------------------------
// 主程序
//-------------------------------------------------------------------------------------------------

int main(void)
{
    printk("\r\nmain() function.\r\n");

    ls1x_drv_init();                    /* Initialize device drivers */
    ls1x_mcp4725_ioctl(busI2C0,IOCTL_MCP4725_DISP_CONFIG_REG,NULL);
    //调用了ls1x_ads1015_ioctl,它可能用于配置ADS1015设备的一些显示参数
    ls1x_ads1015_ioctl(busI2C0,IOCTL_ADS1015_DISP_CONFIG_REG,NULL);
    printk("\n");
    char tbuf1[50]={0},tbuf2[50]={0},sbuf1[50]={0},sbuf2[50]={0},rt;
    unsigned short dac=0, adc1=0, adc2=0;
    float out_v,in_v1,in_v2;
    //gpio_enable(47, DIR_OUT);
    //gpio_write(47, 1);

    /*
     * 裸机主循环
     */
    for (;;)
    {
 /*在循环中通过get_ads1015_adc函数获取ADS1015设备的两个通道的模拟电压值,并进行一些转换。
    随后,使用sprintf函数将这些值格式化为字符串,并通过printk函数打印输出。*/
        adc1 = get_ads1015_adc(busI2C0, ADS1015_REG_CONFIG_MUX_SINGLE_0);
        adc2 = get_ads1015_adc(busI2C0, ADS1015_REG_CONFIG_MUX_SINGLE_1);
        in_v1 = 4.096*2*adc1/4096;//采集电压的转换公式
        in_v2 = 4.096*2*adc2/4096;//采集电压的转换公式
        sprintf((char *)sbuf1,"ADS1015采集到的电压值: adc = %fV",in_v1);
        sprintf((char *)sbuf2,"ADS1015采集到的电压值: adc = %fV",in_v2);
        printk("%s\n%s\n\n",tbuf1,sbuf1);
        printk("%s\n%s\n\n",tbuf2,sbuf1);
/*通过显示函数fb_textout和fb_fillrect在显示屏上显示相关信息,并通过delay_ms函数进行延迟,以控制输出的频率。*/
        fb_textout(10, 60, "ADS1015 ADC GET");
        fb_fillrect(10, 80, 480, 96, cidxBLACK);
        fb_fillrect(10, 100, 500, 116, cidxBLACK);
        fb_textout(10, 80, sbuf1);
        fb_textout(10, 100, sbuf2);
        delay_ms(500);
    }

    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值