[STM32F1] 在AD多通道连续转换如何进入IO口中断

[复制链接]
961|21
 楼主| houcs 发表于 2022-1-1 13:14 | 显示全部楼层 |阅读模式
最近在做简易示波器,在进行多通道连续采样时怎么进入IO口中断 进如定时器转换时打开全局好、中断使能的话进入死循环(硬件仿真器仿真的),希望大神给个好的建议
 楼主| houcs 发表于 2022-1-1 13:17 | 显示全部楼层
P1IE=0X00;
  delay_ms(50);
   static unsigned int i=0;
  if(P1IFG & BIT0)  //P1.0发生中断
  {
    Lcd_Clear_GDRAM_All_RAM();  //清楚整个主控的绘图RAM
    Lcd_Clear_Display();        //清理屏幕显示部分

      switch(i)
  {
   case 0:
     {
       ADC12CTL0 &=~ENC;
       P6SEL |= BIT0+BIT1;                            // 使能ADC通道
       ADC12CTL0 = MSC+ADC12ON+SHT0_0;           // 打开ADC,设置采样时间
       ADC12CTL1 =SHP+CONSEQ_1+ADC12SSEL_0+ADC12DIV_0;                 // 使用采样定时器
       ADC12MCTL0 |=INCH_0;//通道选择
       ADC12MCTL1 |=INCH_1+EOS;
       ADC12IE |=BIT1;                           // 使能ADC中断
       ADC12CTL0 |= ENC;                         // 使能转换
   //    ADC12CTL0 |= ENC;                         // 使能转换
      Lcd_Draw_List_Char_RAM(3,1,hz[0],DISPLAY);     
      i++;
      break;
     }
stly 发表于 2022-1-1 13:20 | 显示全部楼层

多通道连续采样和IO口中断没有关系呢
pengf 发表于 2022-1-1 13:23 | 显示全部楼层
我研究不深入 我解决这个问题方法是把多通道连续采样改为多通道单次采样
xxrs 发表于 2022-1-1 13:25 | 显示全部楼层
开始的连续采样你是放在中断里的,然后占用了大量时间,导致了io中断不能及时响应
zhenykun 发表于 2022-1-1 13:27 | 显示全部楼层
这个采集数据的时候最好使用中断采集模式。
renyaq 发表于 2022-1-1 13:34 | 显示全部楼层
这个最好是改在中断里面完成的比较好。
chenjunt 发表于 2022-1-1 13:36 | 显示全部楼层
看不懂这个有什么关系呢。多通道连续采样和IO中断没关系的。
kangzj 发表于 2022-1-1 13:39 | 显示全部楼层
中断里连续采样,会占用时间资源
stly 发表于 2022-1-1 13:41 | 显示全部楼层
不要在中断里面写程序
renyaq 发表于 2022-1-1 13:43 | 显示全部楼层
执行太多就会降低运行效率。
juventus9554 发表于 2022-1-1 13:46 | 显示全部楼层
有一种操作叫做DMA,不知道你有没有用过
spark周 发表于 2022-1-1 13:49 | 显示全部楼层
DMA加大缓存!
zhanghqi 发表于 2022-1-1 13:52 | 显示全部楼层
开启相应中断使能就行啊
juventus9554 发表于 2022-1-1 13:54 | 显示全部楼层
为什么中断里边会死循环呢
chuxh 发表于 2022-1-1 13:56 | 显示全部楼层
说明你程序有问题
renyaq 发表于 2022-1-1 13:58 | 显示全部楼层
如何确认是进入了死循环了
zhanghqi 发表于 2022-1-1 14:00 | 显示全部楼层
中断优先级设置了吗
chuxh 发表于 2022-1-1 14:02 | 显示全部楼层
能详细说说死循环在哪里吗
supernan 发表于 2022-1-1 14:04 | 显示全部楼层
并不影响 估计是你代码有问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

743

主题

8382

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部