| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- module(..., package.seeall)
- require "utils"
- local i2cId = 2
- function ind(data)
- --print("shk.ind", data, cpu.INT_GPIO_POSEDGE)
- -- log.info("标志")
- if data == cpu.INT_GPIO_POSEDGE then
- --print("shk.ind DEV_SHK_IND")
- sys.publish("DEV_SHK_IND")
- end
- end
- pins.setup(pio.P0_10, ind) -- 高电平有效,来自机械振动传感器的中断
- function init()
- local i2cSlaveAddr = 0x27
- -- 中断设置地址
- local INTset1addr = 0x16
- -- 活动持续时间地址
- local activeDURaddr = 0x27
- -- 有效中断阈值地址
- local activeTHSaddr = 0x28
- -- 中断映射地址
- local INTmapaddr = 0x19
- -- 配置地址
- local configaddr = 0x00
- -- 范围地址
- local rangeaddr = 0x0f
- -- 工作模式地址
- local modedddr = 0x11
- -- 频率地址
- local ODRaddr = 0x10
- -- 中断锁地址
- local INTlatchaddr = 0x21
- -- 工程模式地址
- local enginaddr = 0x7f
- local speed = i2c.setup(i2cId, 100000)
- if speed ~= 100000 then
- log.warn("通道开启失败")
- return
- end
- --log.info("数据类型", type(i2cSlaveAddr))
- --log.info("设置地址", i2cSlaveAddr)
- local _ = i2c.send(i2cId, i2cSlaveAddr, 0x01)
- --log.warn("发送地址", _)
- local r = i2c.recv(i2cId, i2cSlaveAddr, 1)
- --log.warn("asldkfnalksdf", string.toHex(r))
- local _ = i2c.send(i2cId, i2cSlaveAddr, 0x09)
- --log.info("发送地址", _)
- local r = i2c.recv(i2cId, i2cSlaveAddr, 1)
- --log.warn("asldkfnalksdf", string.toHex(r))
- local _ = i2c.send(i2cId, i2cSlaveAddr, {configaddr, 0x24})
- --log.info("设置配置传输字节", _)
- local _ = i2c.send(i2cId, i2cSlaveAddr, {INTset1addr, 0x87})
- --log.info("设置中断字节传输字节", _)
- local _ = i2c.send(i2cId, i2cSlaveAddr, {activeDURaddr, 0x00})
- --log.info("设置活动持续时间传输字节", _)
- local _ = i2c.send(i2cId, i2cSlaveAddr, {activeTHSaddr, 0x05})
- --log.info("设置中断搁置传输字节", _)
- local _ = i2c.send(i2cId, i2cSlaveAddr, {INTmapaddr, 0x04})
- --log.info("设置中断映射传输字节", _)
- local _ = i2c.send(i2cId, i2cSlaveAddr, {rangeaddr, 0x00})
- --log.info("设置范围传输字节", _)
- local _ = i2c.send(i2cId, i2cSlaveAddr, {modedddr, 0x34})
- --log.info("设置工作模式传输字节", _)
- local _ = i2c.send(i2cId, i2cSlaveAddr, {ODRaddr, 0x08})
- --log.info("设置频率传输字节", _)
- local _ = i2c.send(i2cId, i2cSlaveAddr, {INTlatchaddr, 0x00})
- --log.info("设置中断锁传输字节", _)
- local _ = i2c.send(i2cId, i2cSlaveAddr, {enginaddr, 0x83, enginaddr, 0x69, enginaddr, 0xBD})
- --log.info("设置工程模式传输字节", _)
- -- while true do
- local _ = i2c.send(i2cId, i2cSlaveAddr, 0x09)
- --log.info("发送地址", _)
- local r = i2c.recv(i2cId, i2cSlaveAddr, 1)
- --log.warn("asldkfnalksdf", string.toHex(r))
- -- end
- end
- init()
|