2653|0

11

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

PIC24FJ64GA002 AD不产生中断 帮帮忙吧 大侠们 [复制链接]

#include "p24fxxxx.h"

void init(void)
{
        //
        //       
        //
        CLKDIV = 0x3000;
        //
        //       
        //
        AD1PCFG = 0xF5FC;               
        AD1CON1 = 0x0000;               

        //AD1CHS = 0x000B;               
    //AD1CHS = 0x0001;               
        AD1CSSL = 0x0A03;       
        AD1CON3 = 0x1F02;       
        AD1CON2bits.CSCNA = 1;
        AD1CON2bits.SMPI = 3;

        AD1CON1bits.ADON = 1;               
        //SRbits.IPL = 2;
        IFS0bits.AD1IF = 0;       
        IEC0bits.AD1IE = 1;       

        T1CON = 0;
        TMR1 = 0;
        PR1 = 0xFFFF;
        IPC0bits.T1IP = 0x4;       
        IFS0bits.T1IF = 0;
        IEC0bits.T1IE = 1;
}

void delay(int n)
{
        for(;n!=0;n--)
        {
                asm( "nop");
                asm( "nop");
                asm( "nop");
                asm( "nop");
}
}

void ProcADC(void)
{
                int n,*BufPtr;
                AD1CON1bits.SAMP = 1;               
                delay(50);
                AD1CON1bits.SAMP = 0;
                while (IFS0bits.AD1IF==1)
                IFS0bits.AD1IF = 0;
                //while (AD1CON1bits.DONE == 1)
                //AD1CON1bits.DONE = 0;  
                BufPtr =(int*)&ADC1BUF0;
                for(n = 0;n<4;n++)
           {
                        vDac[n] = *BufPtr;
                        BufPtr++;
           }
}

unsigned int tmrCount1;
unsigned int tmrCount2;

void __attribute__ ((interrupt, no_auto_psv)) _T1Interrupt(void)
{
        IFS0bits.T1IF = 0;               
        if (tmrCount1 == 0x000F) {
                adcStrFlg = 1;
                tmrCount1 = 0;
        }
        else {
                tmrCount1++;
        }       

        if (tmrCount2 == 0x000F) {
                frontPicRdFlg = 1;
                tmrCount2 = 0;
        }
        else {
                tmrCount2++;
        }
}

int main(void)
{
       
       
        init();
        ProcADC();
while(1){
          ProcADC();
       
}
感觉设置上没有问题了啊   为什么就是没有中断呢   而且和T1的中断还有影响
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表