查看: 4191|回复: 3

[其他] DZ60 ADC中断问题

[复制链接]

该用户从未签到

11

主题

56

帖子

0

新手上路

Rank: 1

积分
106
最后登录
1970-1-1
发表于 2011-9-8 11:01:08 | 显示全部楼层 |阅读模式
各位领导:
    我在用DZ60做一个ADC的问题处理,在Debugger调试的时候遇到这样一个问题,在按Single Step按钮时,可以进入ADC中断服务程序,寄存器的数值也和设计的一样,但在按Start/Continue按钮时,软件就进不了ADC中断服务程序,与此同时,Data:1框中寄存器的寄存器也没有了,这是那里的原因造成的呢?请各位大侠指教一下呀!软件如下:
#include  /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
 
byte ad_h;//ADC转换结果的高2位
byte ad_l;//ADC转换结果的低8位
byte ch_s;//通道选择
 

void Init_MCG(void)
{
  SOPT1 = 0x00; 
  MCGC1 = 0xBB;         // 选择外部参考时钟作为总线的时钟源,使能内部参考时钟         
  MCGC2 = 0x36;         //选择外部1M~16M高频晶振,总线分频率为1
  MCGC3 = 0x00;         // PLL=0即禁止PLL
                        //计算一下总线频率:晶振频率是16MHz,BDIV=1,MCGOUT频率为16MHz,总线频率为8MHz
  while(!(MCGSC&0x02)); 
}
 

void Init_ADC(void)
{
  ADCCFG=0x98;     //低功耗模式,时钟为1分频,长采样时间,10位转换精度,ADCK=总线频率8M
 ADCSC1=0x6C;     //0b011 01100:中断使能,单次转换,选择AD12,并启动了转换.
 ADCSC2=0x00;     //0x00:软件触发,比较功能禁止
 APCTL2=0x30;     //通道引脚使能:ADP12,ADP13作为模拟信号输入
 ch_s=0;          //选择0通道
}
 
interrupt VectorNumber_Vadc void ADC_ISR(void)
{
 switch(ch_s)
 {
  case 0:
   ad_h=ADCRH;
     ad_l=ADCRL;
     ADCSC1=0x6D;//软件启动下一次转换,下一次转换将转换AD3通道的电压值
     break;
    case 1:
     ad_h=ADCRH;
     ad_l=ADCRL;
     ADCSC1=0x6C;//软件启动下一次转换,下一次转换将转换AD2通道的电压值
     break;
    default:
     break;
 }
 asm(nop);//在此设置一个断点,观测ad_h和ad_l的变化
 
 if(ch_s==0)
  {
   ch_s=1;
  }
 else
  {
   ch_s=0;
  }
 
}
 
 
 
void main(void)
 {
   Init_MCG();
   Init_ADC();
 
 
   EnableInterrupts; /* enable interrupts */
                     /* include your code here */
                    
  
  
   
}
 
 
 
 
我知道答案 目前已有2人回答
回复

使用道具 举报

该用户从未签到

0

主题

1

帖子

0

新手上路

Rank: 1

积分
6
最后登录
1970-1-1
发表于 2011-9-8 14:59:16 | 显示全部楼层

回复:DZ60 ADC中断问题

您好,我是Aaron.
明天我们可能能见到,光从您发过来的代码我看到主程序应该全速运行不起来。
具体情况,我们明天见面讨论吧!

该用户从未签到

11

主题

56

帖子

0

新手上路

Rank: 1

积分
106
最后登录
1970-1-1
 楼主| 发表于 2011-9-9 08:30:44 | 显示全部楼层

回复:DZ60 ADC中断问题

Hi Aaron:
     您什么时候上网呀!
  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2011-9-9 09:14:42 | 显示全部楼层

    RE:DZ60 ADC中断问题

    这个程序MAIN中少个死循环,我看AD配置没有问题,你可以仿真一下,如果想重新选择ADC,就要重新配置全部的ADC功能。这个要在中断外边处理。
    该会员没有填写今日想说内容.
    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-27 03:17 , Processed in 0.089563 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表