pin_test.c 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #include <rtthread.h>
  2. #include <rtdevice.h>
  3. #include <string.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #ifdef RT_USING_PIN
  7. static void pinm(int argc, char **argv)
  8. {
  9. int pin;
  10. int m = PIN_MODE_INPUT;
  11. if (argc < 3)
  12. {
  13. printf("pinm 0 o\n");
  14. printf("pinm 0 i\n");
  15. return;
  16. }
  17. pin = atoi(argv[1]);
  18. if (pin < 0)
  19. {
  20. printf("can't get pin(%s)\n", argv[1]);
  21. return;
  22. }
  23. if (strcmp(argv[2], "o") == 0)
  24. {
  25. m = PIN_MODE_OUTPUT;
  26. }
  27. rt_pin_mode(pin, m);
  28. }
  29. MSH_CMD_EXPORT(pinm, pin mode set);
  30. static void pinw(int argc, char **argv)
  31. {
  32. int pin;
  33. int v;
  34. if (argc < 3)
  35. {
  36. printf("pinw 0 0\n");
  37. printf("pinw 0 1\n");
  38. return;
  39. }
  40. pin = atoi(argv[1]);
  41. if (pin < 0)
  42. {
  43. printf("can't get pin(%s)\n", argv[1]);
  44. return;
  45. }
  46. v = argv[2][0] - '0';
  47. rt_pin_write(pin, v);
  48. }
  49. MSH_CMD_EXPORT(pinw, pin Write);
  50. static void pinr(int argc, char **argv)
  51. {
  52. int pin;
  53. int v;
  54. if (argc < 3)
  55. {
  56. printf("pinr 0\n");
  57. printf("pinr 0\n");
  58. return;
  59. }
  60. pin = atoi(argv[1]);
  61. if (pin < 0)
  62. {
  63. printf("can't get pin(%s)\r\n", argv[1]);
  64. return;
  65. }
  66. v = rt_pin_read(pin);
  67. printf("pin value %d\n", v);
  68. }
  69. MSH_CMD_EXPORT(pinr, pin read);
  70. #endif