星瞳实验室APP,快速收到回复
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 关于定时器中断函数内产生MemoryError的问题



    • OpenMV4在定时器中断中调用一些简单的函数或者使能其他的定时器中断就会报错(MemoryError),请问这个问题怎么解决。

      如图,我在定时器2里面使能了定时器7,然后程序跑到使能定时器7的这段代码里就会报错(MemoryError)。

      请问这种问题怎么才能解决,难道中断里面稍微写两句话都会使内存溢出吗?
      0_1564478723934_问题1.1.png

      1_1564478723935_问题1.2.png



    • import image, math,pyb, sensor, struct, time
      from pyb import UART
      
      global interrupt7_land
      interrupt7_land = 0
      
      def timer_interrupt2(timer):
          if (work_mode == 0x00) :
              pyb.LED(1).toggle()
          else :
              pyb.LED(1).off()
              #print(2)
              if (work_mode == 0x41):
                  #print(1)
                  tim7 = pyb.Timer(7 ,freq = 1)
                  tim7.callback(timer_interrupt7)
      
      def timer_interrupt7(timer):
          global interrupt7_land
          interrupt7_land = 1
          print("ZPJ_COOL")
      
      tim2 = pyb.Timer(2 ,freq = 300)
      tim2.callback(timer_interrupt2)
      work_mode = 0x41
      


    • 中断服务函数里面,不能有局部变量。



    • 你的work_mode, pyb, tim7都要加global