main.lua 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "bit64_test"
  3. VERSION = "1.0.0"
  4. log.info("main", PROJECT, VERSION)
  5. -- 引入必要的库文件(lua编写), 内部库不需要require
  6. sys = require("sys")
  7. -- Air780E的AT固件默认会为开机键防抖, 导致部分用户刷机很麻烦
  8. if rtos.bsp() == "EC618" and pm and pm.PWK_MODE then
  9. pm.power(pm.PWK_MODE, false)
  10. end
  11. if wdt then
  12. --添加硬狗防止程序卡死,在支持的设备上启用这个功能
  13. wdt.init(9000)--初始化watchdog设置为9s
  14. sys.timerLoopStart(wdt.feed, 3000)--3s喂一次狗
  15. end
  16. local function log_bit()
  17. log.info("按位取反,输出-6",bit.bnot(5))
  18. log.info("与,--输出1",bit.band(1,1))
  19. log.info("或,--输出3",bit.bor(1,2))
  20. log.info("异或结果为4",bit.bxor(2,3,5))
  21. log.info("逻辑左移,“100”,输出为4",bit.lshift(1,2))
  22. log.info("逻辑右移,“001”,输出为1",bit.rshift(4,2))
  23. log.info("算数右移,左边添加的数与符号有关,输出为0",bit.arshift(2,2))
  24. log.info("参数是位数,作用是1向左移动两位,打印出4",bit.bit(2))
  25. log.info("测试位数是否被置1",bit.isset(5,0))--第一个参数是是测试数字,第二个是测试位置.从右向左数0到7.是1返回true,否则返回false,该返回true
  26. log.info("测试位数是否被置1",bit.isset(5,1))--打印false
  27. log.info("测试位数是否被置1",bit.isset(5,2))--打印true
  28. log.info("测试位数是否被置1",bit.isset(5,3))--返回返回false
  29. log.info("测试位数是否被置0",bit.isclear(5,0))----与上面的相反
  30. log.info("测试位数是否被置0",bit.isclear(5,1))
  31. log.info("测试位数是否被置0",bit.isclear(5,2))
  32. log.info("测试位数是否被置0",bit.isclear(5,3))
  33. log.info("把0的第0,1,2,3位值为1",bit.set(0,0,1,2,3))--在相应的位数置1,打印15
  34. log.info("把5的第0,2位置为0",bit.clear(5,0,2))--在相应的位置置0,打印0
  35. end
  36. sys.taskInit(log_bit)
  37. -- 用户代码已结束---------------------------------------------
  38. -- 结尾总是这一句
  39. sys.run()
  40. -- sys.run()之后后面不要加任何语句!!!!!