• atmega8 例程:AD中断方式采集


    /*********************************************************** 
    * 函数库说明:ATMEGE8 AD模数转换
    * 版本: v1.0
    * 修改: 庞辉
    * 修改日期: 2011年08月06日
    *
    * 说明: 中断方式AD采集
    *
    * 版本更新: 详见readme.txt
    *
    ************************************************************
    *注意: res PC5
    * CE PB0
    * RST PB1
    * DC PB2
    * SDIN PB3
    * SCLK PB4
    **********************************************************
    */


    #include "includes.h"


    /***********************************************************
    ** 名 称:void AD_Init(void)
    ** 功 能:AD初始化
    ** 入口参数:无
    ** 出口参数:无
    ** 使用说明:无
    *********************************************************
    */
    void AD_Init(void)
    {
    //参考电压AREF,左对齐,ADC5单端输入
    ADMUX |= (1 << ADLAR) | (1 << MUX2) | (1 << MUX0);
    //AD使能, 连续转换,中断使能,32分频, 6M / 32 = 187.5khz
    ADCSRA |= (1 << ADEN) | (1 << ADFR) | (1 << ADIE) | (1 << ADPS2) | (1 << ADPS0);
    //AD开始转换
    ADCSRA |= (1 << ADSC);
    }

    int main(void)
    {
    //LCD初始化
    LCD_Init();
    //AD初始化
    AD_Init();
    LCD_Write_Chinese_String(0, 0, 12, 5, Chinese_Font, 0, 0);

    //开总中断
    sei();

    while(1)
    {

    }

    return 0;
    }

    int result = 0;
    char buf[] = "5.00V";

    SIGNAL(SIG_ADC)
    {
    result = ADCH;
    result = result * 500.0 / 255;

    //数据更新
    buf[0] = result / 100 + '0';
    buf[2] = result / 10 % 10 + '0';
    buf[3] = result % 10 + '0';

    //数据显示
    LCD_Write_English_String(0, 3, buf);
    }
  • 相关阅读:
    《软件需求模式》阅读笔记二
    《软件需求模式》阅读笔记一
    《编写有效用例》阅读笔记三
    《编写有效用例》阅读笔记二
    《编写有效用例》阅读笔记一
    《软件需求十步走》阅读笔记三
    英文一分钟自我介绍
    c语言面试常见题
    docker
    LLDP
  • 原文地址:https://www.cnblogs.com/pang123hui/p/2312362.html
Copyright © 2020-2023  润新知