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);
    }
  • 相关阅读:
    字符串,列表,集合,字典,元组方法
    内置对象方法
    学生管理系统(2)
    1207
    PSP总结
    1130
    1123
    1118
    1109
    评论
  • 原文地址:https://www.cnblogs.com/pang123hui/p/2312362.html
Copyright © 2011-2022 走看看