DA213B.lua 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. module(..., package.seeall)
  2. require "utils"
  3. local i2cId = 2
  4. function ind(data)
  5. --print("shk.ind", data, cpu.INT_GPIO_POSEDGE)
  6. -- log.info("标志")
  7. if data == cpu.INT_GPIO_POSEDGE then
  8. --print("shk.ind DEV_SHK_IND")
  9. sys.publish("DEV_SHK_IND")
  10. end
  11. end
  12. pins.setup(pio.P0_10, ind) -- 高电平有效,来自机械振动传感器的中断
  13. function init()
  14. local i2cSlaveAddr = 0x27
  15. -- 中断设置地址
  16. local INTset1addr = 0x16
  17. -- 活动持续时间地址
  18. local activeDURaddr = 0x27
  19. -- 有效中断阈值地址
  20. local activeTHSaddr = 0x28
  21. -- 中断映射地址
  22. local INTmapaddr = 0x19
  23. -- 配置地址
  24. local configaddr = 0x00
  25. -- 范围地址
  26. local rangeaddr = 0x0f
  27. -- 工作模式地址
  28. local modedddr = 0x11
  29. -- 频率地址
  30. local ODRaddr = 0x10
  31. -- 中断锁地址
  32. local INTlatchaddr = 0x21
  33. -- 工程模式地址
  34. local enginaddr = 0x7f
  35. local speed = i2c.setup(i2cId, 100000)
  36. if speed ~= 100000 then
  37. log.warn("通道开启失败")
  38. return
  39. end
  40. --log.info("数据类型", type(i2cSlaveAddr))
  41. --log.info("设置地址", i2cSlaveAddr)
  42. local _ = i2c.send(i2cId, i2cSlaveAddr, 0x01)
  43. --log.warn("发送地址", _)
  44. local r = i2c.recv(i2cId, i2cSlaveAddr, 1)
  45. --log.warn("asldkfnalksdf", string.toHex(r))
  46. local _ = i2c.send(i2cId, i2cSlaveAddr, 0x09)
  47. --log.info("发送地址", _)
  48. local r = i2c.recv(i2cId, i2cSlaveAddr, 1)
  49. --log.warn("asldkfnalksdf", string.toHex(r))
  50. local _ = i2c.send(i2cId, i2cSlaveAddr, {configaddr, 0x24})
  51. --log.info("设置配置传输字节", _)
  52. local _ = i2c.send(i2cId, i2cSlaveAddr, {INTset1addr, 0x87})
  53. --log.info("设置中断字节传输字节", _)
  54. local _ = i2c.send(i2cId, i2cSlaveAddr, {activeDURaddr, 0x00})
  55. --log.info("设置活动持续时间传输字节", _)
  56. local _ = i2c.send(i2cId, i2cSlaveAddr, {activeTHSaddr, 0x05})
  57. --log.info("设置中断搁置传输字节", _)
  58. local _ = i2c.send(i2cId, i2cSlaveAddr, {INTmapaddr, 0x04})
  59. --log.info("设置中断映射传输字节", _)
  60. local _ = i2c.send(i2cId, i2cSlaveAddr, {rangeaddr, 0x00})
  61. --log.info("设置范围传输字节", _)
  62. local _ = i2c.send(i2cId, i2cSlaveAddr, {modedddr, 0x34})
  63. --log.info("设置工作模式传输字节", _)
  64. local _ = i2c.send(i2cId, i2cSlaveAddr, {ODRaddr, 0x08})
  65. --log.info("设置频率传输字节", _)
  66. local _ = i2c.send(i2cId, i2cSlaveAddr, {INTlatchaddr, 0x00})
  67. --log.info("设置中断锁传输字节", _)
  68. local _ = i2c.send(i2cId, i2cSlaveAddr, {enginaddr, 0x83, enginaddr, 0x69, enginaddr, 0xBD})
  69. --log.info("设置工程模式传输字节", _)
  70. -- while true do
  71. local _ = i2c.send(i2cId, i2cSlaveAddr, 0x09)
  72. --log.info("发送地址", _)
  73. local r = i2c.recv(i2cId, i2cSlaveAddr, 1)
  74. --log.warn("asldkfnalksdf", string.toHex(r))
  75. -- end
  76. end
  77. init()