zoukankan      html  css  js  c++  java
  • 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);
    }
  • 相关阅读:
    JAVA多线程(七) ReentrantLock原理分析
    JAVA多线程(六) synchronize原理分析
    JAVA多线程(五) volatile原理分析
    pandas
    从美国总经理,到三一重卡的董事长,梁林河的重卡梦
    【转载】低水平领导的十大表现
    kill及其衍生程序
    python -m venv 的使用
    Python多版本启动器
    Pyinstaller最流行的打包程序
  • 原文地址:https://www.cnblogs.com/pang123hui/p/2312362.html
Copyright © 2011-2022 走看看