OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 12169|回复: 6

STM8S ADC中断与非中断采样值的问题

[复制链接]

1

主题

6

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2012-6-26
在线时间
1 小时
发表于 2013-11-18 14:02:07 | 显示全部楼层 |阅读模式
编译环境IAR ,CPU STM8S903K ,通道PB0 -- AN0, 采集交流信号

void ADC_Init(void)
{
     GPIO_Init(GPIOB, GPIO_PIN_0, GPIO_MODE_IN_PU_NO_IT);
    ADC1_DeInit();

    ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_0, 
                ADC1_PRESSEL_FCPU_D12, ADC1_EXTTRIG_TIM, DISABLE, 
                ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL0, DISABLE);

     /* Enable the ADC1 peripheral */
    ADC1_Cmd(ENABLE);
    
    /* Enable EOC interrupt */
 #ifdef __ADCInt_
    ADC1_ITConfig(ADC1_IT_EOCIE, ENABLE);    //ADC 中断
 #endif
}

#define __ADCInt_
main()
{
      ADC_Init();

      while(1)
      {
           #ifndef __ADCInt_
             Delay_us(Time);
             ADC1_StartConversion();
             while((ADC1->CSR & 0x80)!=0x80); // 等待转换结束
             ADBuf[ADC_Index].Uac = ADC1_GetConversionValue();

  ADC_Index++;
         #endif
      }
}


INTERRUPT_HANDLER(TIM1_UPD_OVF_TRG_BRK_IRQHandler, 11)
{

       ADC1_StartConversion(); /*Start Conversion */
      TIM1_ClearITPendingBit(TIM1_IT_UPDATE); 
      return;
}



INTERRUPT_HANDLER(ADC1_IRQHandler, 22)
 {
static vu8 ADC_Index;
ADBuf[ADC_Index].Uac = ADC1_GetConversionValue();

ADC_Index++;
ADC1_ClearITPendingBit(ADC1_IT_EOC);
 }



当定义__ADCInt_ 则AN0为单次中断采样模式,在中断中读取值,TIM1定时开启AN0;   
 没有定义__ADCInt_时,每延时Delay_us(Time),在主程序里进行一次采样;

在主程序里采样读值时是对的,但在中断了读值却是一个稳定的值,我这是247,不知为什么……求解


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-11-18 14:50:58 | 显示全部楼层
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2012-6-26
在线时间
1 小时
 楼主| 发表于 2013-11-18 16:09:42 | 显示全部楼层
呵呵……谢谢……原子哥帮顶我很激动啊……以前有参考过你写的程序,不错啊……向你学习
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-11-19 11:08:31 | 显示全部楼层
 
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2012-6-26
在线时间
1 小时
 楼主| 发表于 2013-11-20 20:24:11 | 显示全部楼层
没人碰到么?求解啊
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
发表于 2014-6-24 07:20:07 | 显示全部楼层
中断我还是进不去啊
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

20

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
175
金钱
175
注册时间
2013-10-3
在线时间
5 小时
发表于 2014-6-26 10:42:19 | 显示全部楼层
回复【6楼】cornrn:
---------------------------------
楼主解决没有啊,是不是死在了ADC_Init里面,我用库也是这样。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 18:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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