ttt.ttt 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #define TFT_HARD_SPI 0
  2. #define TFT_SOFT_SPI 1
  3. #define TFT_PARALLEL 2
  4. #if defined(USE_FAST_PINIO)
  5. #if defined(HAS_PORT_SET_CLR)
  6. #define TFT_CS_HIGH() { *csPortSet = csPinMask; }
  7. #define TFT_CS_LOW() { *csPortClr = csPinMask; }
  8. #define TFT_DC_HIGH() { *dcPortSet = dcPinMask; }
  9. #define TFT_DC_LOW() { *dcPortClr = dcPinMask; }
  10. #define TFT_MOSI_HIGH() { *mosiPortSet = mosiPinMask; }
  11. #define TFT_MOSI_LOW() { *mosiPortClr = mosiPinMask; }
  12. #define TFT_SCK_HIGH() { *sckPortSet = sckPinMask; }
  13. #define TFT_SCK_LOW() { *sckPortClr = sckPinMask; }
  14. #define TFT_WR_HIGH() { *wrPortSet = wrPinMask; }
  15. #define TFT_WR_LOW() { *wrPortClr = wrPinMask; }
  16. #define TFT_RD_HIGH() { *rdPortSet = rdPinMask; }
  17. #define TFT_RD_LOW() { *rdPortClr = rdPinMask; }
  18. #define TFT_PORT_OUTPUT() { *dirSet = 0xFF; }
  19. #define TFT_PORT_INPUT() { *dirClr = 0xFF; }
  20. #define TFT_PORT_OUTPUT16() { *(volatile uint16_t *)dirSet = 0xFFFF; }
  21. #define TFT_PORT_INPUT16() { *(volatile uint16_t *)dirClr = 0xFFFF; }
  22. #else // !HAS_PORT_SET_CLR
  23. #define TFT_CS_HIGH() { *csPort |= csPinMaskSet; }
  24. #define TFT_CS_LOW() { *csPort &= csPinMaskClr; }
  25. #define TFT_DC_HIGH() { *dcPort |= dcPinMaskSet; }
  26. #define TFT_DC_LOW() { *dcPort &= dcPinMaskClr; }
  27. #define TFT_MOSI_HIGH() { *mosiPort |= mosiPinMaskSet; }
  28. #define TFT_MOSI_LOW() { *mosiPort &= mosiPinMaskClr; }
  29. #define TFT_SCK_HIGH() { *sckPort |= sckPinMaskSet; }
  30. #define TFT_SCK_LOW() { *sckPort &= sckPinMaskClr; }
  31. #define TFT_WR_HIGH() { *wrPort |= wrPinMaskSet; }
  32. #define TFT_WR_LOW() { *wrPort &= wrPinMaskClr; }
  33. #define TFT_RD_HIGH() { *rdPort |= rdPinMaskSet; }
  34. #define TFT_RD_LOW() { *rdPort &= rdPinMaskClr; }
  35. #define TFT_PORT_OUTPUT() { *portDir = 0xFF; }
  36. #define TFT_PORT_INPUT() { *portDir = 0x00; }
  37. #define TFT_PORT_OUTPUT16() { *(volatile uint16_t *)portDir = 0xFFFF; }
  38. #define TFT_PORT_INPUT16() { *(volatile uint16_t *)portDir = 0x0000; }
  39. #endif // end HAS_PORT_SET_CLR
  40. #define TFT_SPI_READ() (*misoPort & misoPinMask)
  41. #else // !USE_FAST_PINIO
  42. #define TFT_CS_HIGH() digitalWrite(_cs , HIGH)
  43. #define TFT_CS_LOW() digitalWrite(_cs , LOW )
  44. #define TFT_DC_HIGH() digitalWrite(_dc , HIGH)
  45. #define TFT_DC_LOW() digitalWrite(_dc , LOW )
  46. #define TFT_MOSI_HIGH() digitalWrite(_mosi, HIGH)
  47. #define TFT_MOSI_LOW() digitalWrite(_mosi, LOW )
  48. #define TFT_SCK_HIGH() digitalWrite(_sck , HIGH)
  49. #define TFT_SCK_LOW() digitalWrite(_sck , LOW )
  50. #define TFT_WR_HIGH() digitalWrite(_wr , HIGH)
  51. #define TFT_WR_LOW() digitalWrite(_wr , LOW )
  52. #define TFT_RD_HIGH() digitalWrite(_rd , HIGH)
  53. #define TFT_RD_LOW() digitalWrite(_rd , LOW )
  54. #define TFT_PORT_OUTPUT() { } // 8-bit parallel is not supported
  55. #define TFT_PORT_INPUT() { } // if USE_FAST_PINIO is unavailable.
  56. #define TFT_PORT_OUTPUT16() { } // No plans to implement this. If no
  57. #define TFT_PORT_INPUT16() { } // PORT access, use an SPI display!
  58. #define TFT_SPI_READ() digitalRead(_miso)
  59. #endif // end USE_FAST_PINIO