历史上的今天
返回首页

历史上的今天

今天是:2024年09月04日(星期三)

正在发生

2020年09月04日 | pic多路adc 中断方式

2020-09-04 来源:eefocus

/* 
 * File:   main.c
 * Author: sm116
 *
 * Created on June 12, 2017, 9:27 AM
 */

#pragma config FOSC = INTOSC    // Oscillator Selection (INTOSC oscillator: I/O function on CLKIN pin)
#pragma config WDTE = OFF         // Watchdog Timer Enable (WDT enabled)ON
#pragma config PWRTE = ON       // Power-up Timer Enable (PWRT enabled)ON
#pragma config MCLRE = ON       // MCLR Pin Function Select (MCLR/VPP pin function is MCLR)
#pragma config CP = ON         // Flash Program Memory Code Protection (Program memory code protection is enabled)ON
#pragma config CPD = ON         // Data Memory Code Protection (Data memory code protection is enabled)
#pragma config BOREN = SBODEN   // Brown-out Reset Enable (Brown-out Reset controlled by the SBOREN bit in the BORCON register)
#pragma config CLKOUTEN = OFF   // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)
#pragma config IESO = ON        // Internal/External Switchover (Internal/External Switchover mode is enabled)
#pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is enabled)


// CONFIG2
#pragma config WRT = ALL       // Flash Memory Self-Write Protection (000h to FFFh write protected, no addresses may be modified by EECON control)ALL
#pragma config VCAPEN = OFF     // Voltage Regulator Capacitor Enable (All VCAP pin functionality is disabled)
#pragma config PLLEN = ON      // PLL Enable (4x PLL enabled)
#pragma config STVREN = ON      // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset)
#pragma config BORV = LO        // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config LVP = ON         // Low-Voltage Programming Enable (Low-voltage programming enabled)


#define _XTAL_FREQ  32000000
#define __delay_us(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000000.0)))
#define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))
#include
#include
#include
#include
#include;


#include
#include


unsigned int batter_ad=0;
unsigned int bat=0;


void init_system(void)      //      时钟
{
OSCCON  =0xf0;//0xF0;//0xf3;//0x6B; //内部时钟32m/8M/4M
WDTCON  = 0x1f; //看门狗周期32S
}


void init_gpio(void)        //         端口
{
TRISAbits.TRISA2=1;
ANSELAbits.ANSA2=1;
TRISAbits.TRISA3=1;
ANSELAbits.ANSA3=1;

}


void init_adc(void)
{


ADCON0=0X0b     ;     //默认采集的 
 ADCON1=0XE0;// FOSC/64 右对齐参考电压 VDD
    PIE1bits.ADIE=1;
    PIR1bits.ADIF=0;
    INTCONbits.GIE=1;
    INTCONbits.PEIE=1;
   
}




unsigned int get_ad(unsigned char n)
{
    unsigned int  value=0;
  
    ADCON0 = n ;
   
    ADCON1=0XE0;// FOSC/64 右对齐参考电压 VDD
    __delay_us(5);
 //   Delay_ms(20);//致命延时3天没找到问题 分时调用,暂时不用
//     ADCON0bits.ADON=1;//在定时器0中断中
    ADCON0bits.GO=1;
    while(ADCON0bits.GO);
    value=ADRESH *256 + ADRESL;
    return value;
}

void interrupt ISR(void) //      isr
{
if(ADIF)
{
ADIF=0;
        if( ADCON0==0X09)//在中断中实际的adcon0的GO 是0 所以是配置ADCON0-2
        {
batter_ad=(ADRESH<<8)+ADRESL; //存放ad值 
        ADCON0=0X0F;   //打开下一次要用的通道
            ADCON0bits.GO=1;//启动转换,不然只转化一次 
        }
          if( ADCON0==0X0d)
          {
          bat=(ADRESH<<8)+ADRESL;
          ADCON0=0X09;   
            ADCON0bits.GO=1;
          }

}
}


void main()
{
init_system();
init_gpio();
init_adc();
while(1)

 
//bat=get_ad(0X0B);
    //batter_ad=get_ad(0X0f);
//bat=batter_ad;
}

}

推荐阅读

史海拾趣

国芯佳品公司的发展小趣事

机顶盒,全称为数字视频变换盒,是现代家庭娱乐中不可或缺的重要设备。它作为连接电视机与外部信号源的桥梁,不仅承担着接收数字电视信号并将其转换为适合电视播放格式的基本任务,还通过技术的不断演进,极大丰富了用户的视听体验。

从专业角度来看,机顶盒经历了从模拟到数字的飞跃,涵盖了多种类型,如DVB-S(数字卫星机顶盒)、DVB-C(有线电视数字机顶盒)、IPTV机顶盒等。这些机顶盒通过不同的传输介质(如有线电缆、卫星天线、宽带网络)接收信号,并借助内部高效的解码器,将数字信号转换成高质量的音视频流,实现了高清乃至4K超高清的播放效果。

在科普层面,机顶盒的普及极大地推动了家庭娱乐的多元化。它不仅让用户能够收看更多样化的电视节目,还能通过连接互联网,提供电子节目指南、在线视频、网页浏览、社交媒体互动等增值服务。此外,一些先进的机顶盒还集成了智能语音助手、家庭影院功能,甚至支持存储个人媒体文件,让用户的娱乐体验更加个性化、便捷化。

随着5G、云计算、人工智能等技术的不断发展,机顶盒正朝着更高清、更智能、更互动的方向迈进。它不仅将继续作为电视内容的接收和展示终端,更将成为智能家居生态系统中的重要一环,为用户带来更加丰富、沉浸的娱乐享受。

API Technologies公司的发展小趣事

API Technologies的初创时期,正值电子行业的蓬勃发展期。公司面临着激烈的市场竞争和技术革新的挑战。然而,创始人凭借对电子技术的深刻理解和敏锐的市场洞察力,成功开发出了一系列高性能、高可靠性的电子元器件,迅速在市场中占据了一席之地。同时,公司也积极寻求与合作伙伴的合作,共同推动技术创新和市场拓展。

晨晶电子(Chenjing Electronics)公司的发展小趣事

晨晶电子始终将品质放在首位,坚持以客户为中心的服务理念。公司建立了严格的质量管理体系,从原材料采购到生产过程控制,再到产品出厂检验,每一个环节都严格把关,确保产品的品质稳定可靠。正是凭借这种对品质的执着追求,晨晶电子赢得了客户的广泛认可和好评,也为企业赢得了良好的口碑。

ABLIC公司的发展小趣事

在“2018慕尼黑上海电子展”上,ABLIC展示了其即将推出的紫外传感器。这一产品的推出,彰显了ABLIC在传感器领域的创新能力。紫外传感器在环境监测、安全防护等领域具有广泛应用前景。ABLIC凭借其在半导体技术方面的深厚积累,成功研发出具有高性能和稳定性的紫外传感器,为市场带来了新的选择。

Avasem公司的发展小趣事

Avasem公司深知人才是企业发展的核心驱动力。因此,公司一直致力于构建良好的人才培养机制和企业文化。Avasem公司注重员工的个人成长和职业发展,提供丰富的培训和学习机会,鼓励员工不断学习和创新。同时,公司还倡导开放、包容和协作的企业文化,为员工创造一个积极、健康的工作环境。这种以人为本的管理理念不仅吸引了大量优秀人才加入公司,还激发了员工的创新精神和团队凝聚力,为公司的持续发展提供了有力保障。

Corex Intervest Inc公司的发展小趣事

随着技术的不断发展,Corex Intervest Inc公司意识到要想在竞争激烈的电子行业中脱颖而出,必须不断进行技术创新和产品升级。因此,公司加大了研发投入,引进了一批高端人才,积极研发新型电子产品。经过多年的努力,公司成功开发出了一系列具有创新性和市场竞争力的产品,如智能传感器、高性能电源模块等,为公司的发展奠定了坚实的基础。

问答坊 | AI 解惑

[转帖]转一篇学习STM8的好文章

第一节: 心情和时钟 说实话我能够使用的单片机不多,我总是以为无论什么单片机都能开发出好的产品。 前些年用51,总是向各位大大学习,无休止的索取,在网上狂览一通。心里感激的同时也想奉献一些,可是我会什么?后来使用avr(公司要求)还是 ...…

查看全部问答>

监控系统常见的故障现象

安全监控系统常见的故障现象在一个监控系统进入调试阶段、试运行阶段以及交付使用后,有可能出现这样那样的故障现象,如:不能正常运行、系统达不到设计要求的技术指标、整体性能和质量不理想,亦即一些软毛病。这些问题对于一个安防系统工程项目来 ...…

查看全部问答>

M41T11设置完时间之后为什么时间不走啊?

已经设置M41T11的start位,每次读时间都是当初设置的时间值。为什么?…

查看全部问答>

如何在指定的平台开发应用程序

原来在windows mobile 6.0上开发了个应用程序,现在想移植到wince6.0 的PND上(找别人买的,好象没有提供SDK),不知该如何做,我用VS2005,只能选择mobile 6.0的开发环境。我想在在这个pnd上开发程序,并能在其模拟器运行与调试…

查看全部问答>

帮忙看下,这2款PIC 以太网开发板,我该选择谁呢

爱晶电子 基于ENC28J60的PIC以太网开发板(PIC实验板/PIC开发板)  ¥450 http://item.taobao.com/auction/item_detail-db2-cdaacf2253921bc4ab5b5d41b991e651.jhtml 小新电子 PIC18F97J60 以太网开发板 一 口 价: 298.00元 http:/ ...…

查看全部问答>

两个设备是否可以使用Jtag接口通信?

最近做一个项目,把两个现有设备并凑到一起。两个设备CPU需要通信,所有接口都有其他用途,只剩下一个Jtag,有没有办法使用Jtag进行通信?系统是基于Linux的,想不重写驱动就可以通信,不知有没有可能,本人对Jtag没什么了解,望达人指教。…

查看全部问答>

【VxWorks5.x -->VxWorks6.x 移植问题】

大家好,谁有没有做过 PPC的BSP 从 5.X ---> 6.X 的移植啊? 我所知道的是,从6.x对5.X的支持是兼容的,那么我就先把 5.X 的BSP文件夹 如 ppc_myself_XXX 放到 h/config/ 下,然后新建立 BSP 工程,进行编译,可是编译的时候,发现ERROR超多啊 ...…

查看全部问答>

我现在是2000系统,因需要装了个98,现在的问题是装了98后,就进不了2000了

我现在是2000系统,因需要装了个98,现在的问题是装了98后,就进不了2000了…

查看全部问答>

周立功的开发板easyarm2104

现在小弟我手上有款ARM开发板、是周立功出的。型号是easyarm2104 但是所有相关的资料全丢了。有哪位大侠有的,能共享下吗?不胜感激。 …

查看全部问答>

STM32F105USBiap

103系列的好用的USB iap现在挪到105下不好用了。 对这个USB很不了解。 现在哪里能找到基于USB-OTG的USB iap例程? 哪位能分享一下例程不胜感激…

查看全部问答>