[MCU] 简易示波器

[复制链接]
1005|16
 楼主| liuzaiy 发表于 2020-5-8 23:48 | 显示全部楼层 |阅读模式
最近在做简易示波器,MSP430F149在进行多通道连续采样时怎么进入IO口中断 进如定时器转换时打开全局好、中断使能的话进入死循环(硬件仿真器仿真的),希望大神给个好的建议
gongche 发表于 2020-5-8 23:52 | 显示全部楼层
多通道连续采样和IO口中断没有关系呢
 楼主| liuzaiy 发表于 2020-5-8 23:55 | 显示全部楼层
呵呵 我研究不深入 我解决这个问题方法是把多通道连续采样改为多通道单次采样,然后在while死循环里触发采样 然后IO中断就进去了
zhuhuis 发表于 2020-5-8 23:57 | 显示全部楼层
明白了,开始的连续采样你是放在中断里的,然后占用了大量时间,导致了io中断不能及时响应
 楼主| liuzaiy 发表于 2020-5-9 19:00 | 显示全部楼层
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;
     }
 楼主| liuzaiy 发表于 2020-5-9 19:04 | 显示全部楼层
中断进去了 人后我想在中段里修改AD转换的时钟源和分频比 但是这样实现不了
xxrs 发表于 2020-5-9 19:06 | 显示全部楼层
中断能进去?
 楼主| liuzaiy 发表于 2020-5-9 19:09 | 显示全部楼层
中断肯定能进去,12864显示出来标志了
ousj 发表于 2020-5-9 19:12 | 显示全部楼层

这个采集数据的时候最好使用中断采集模式。
kangzj 发表于 2020-5-9 19:16 | 显示全部楼层
多通道连续采样改为多通道单次采样,还是在中断里完成的吗
llia 发表于 2020-5-9 19:18 | 显示全部楼层
这个最好是改在中断里面完成的比较好。
gongche 发表于 2020-5-9 19:23 | 显示全部楼层

看不懂这个有什么关系呢。多通道连续采样和IO中断没关系的。
zhuhuis 发表于 2020-5-9 19:26 | 显示全部楼层
中断里连续采样,会占用时间资源
chuxh 发表于 2020-5-9 19:29 | 显示全部楼层
这只能使用AD的中断功能的吧
pengf 发表于 2020-5-9 19:32 | 显示全部楼层
不要在中断里面写程序
yinxiangh 发表于 2020-5-9 19:34 | 显示全部楼层

执行太多就会降低运行效率。
 楼主| liuzaiy 发表于 2020-5-9 19:39 | 显示全部楼层

唉,还是没有什么结果,算了,多谢大家啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

735

主题

7546

帖子

2

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