ad7746_read_write_register.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #include <rtthread.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <AD7746.h>
  5. #ifndef AD7746_I2C_NAME
  6. #define AD7746_I2C_NAME "i2c2"
  7. #endif
  8. static unsigned char c[2];
  9. static void ad7746_read(int argc,char *argv[])
  10. {
  11. AD7746 ad7746;
  12. rt_uint8_t addr = atoi(argv[1]);
  13. if(argc < 2)
  14. {
  15. rt_kprintf("Usage: ad7746_read [subaddr]\n");
  16. rt_kprintf("Example: ad7746_read 0x0A\n");
  17. rt_kprintf("Example: ad7746_read 10\n");
  18. return;
  19. }
  20. if (strcmp(argv[1], "0x"))
  21. {
  22. addr = (rt_uint8_t)strtol(argv[1], NULL, 0);
  23. }
  24. else
  25. {
  26. addr = atoi(argv[1]);
  27. }
  28. ad7746.begin(AD7746_I2C_NAME);
  29. c[0] = 0;
  30. c[1] = 0;
  31. ad7746.read(addr, c, 1);
  32. rt_kprintf("Reading from %d:%02X\n", addr, c[0]);
  33. }
  34. MSH_CMD_EXPORT(ad7746_read, ad7746 read command);
  35. static void ad7746_write(int argc,char *argv[])
  36. {
  37. AD7746 ad7746;
  38. rt_uint8_t addr, data;
  39. if(argc < 3)
  40. {
  41. rt_kprintf("Usage : %s [subaddr] [data] \n", argv[0]);
  42. rt_kprintf("Example: %s 0x0A 0x1B \n", argv[0]);
  43. rt_kprintf("Example: %s 10 0x1B \n", argv[0]);
  44. rt_kprintf("Example: %s 10 27 \n", argv[0]);
  45. return;
  46. }
  47. if (strcmp(argv[1], "0x"))
  48. {
  49. addr = (rt_uint8_t)strtol(argv[1], NULL, 0);
  50. }
  51. else
  52. {
  53. addr = atoi(argv[1]);
  54. }
  55. if( strcmp(argv[2], "0x"))
  56. {
  57. data = (rt_uint8_t)strtol(argv[2], NULL, 0);
  58. }
  59. else
  60. {
  61. data = atoi(argv[2]);
  62. }
  63. ad7746.begin(AD7746_I2C_NAME);
  64. c[0] = data;
  65. c[1] = 0;
  66. ad7746.write(addr, c, 1);
  67. rt_kprintf("Writing to %d:%02X\n", addr, c[0]);
  68. }
  69. MSH_CMD_EXPORT(ad7746_write, ad7746 write command);