jm_LiquidCrystal_I2C.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. // (https://hmario.home.xs4all.nl/arduino/fm_LiquidCrystal_I2C/)
  2. // https://arduino-info.wikispaces.com/fm_LCD-Blue-I2C
  3. // https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
  4. // https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/NewliquidCrystal_1.3.5.zip
  5. #ifndef _jm_LiquidCrystal_I2C_h
  6. #define _jm_LiquidCrystal_I2C_h
  7. #include <fm_LiquidCrystal_I2C.h>
  8. #ifndef sgn
  9. template <typename T> int sgn(T val) {
  10. return (T(0) < val) - (val < T(0));
  11. }
  12. #endif
  13. #ifndef sign
  14. template <typename T> int sign(T val) {
  15. return (val >= T(0));
  16. }
  17. #endif
  18. // -----------------------------------------------------------------------------
  19. class jm_LiquidCrystal_I2C : public fm_LiquidCrystal_I2C {
  20. private:
  21. protected:
  22. char buf[12]; // +0.123456789
  23. int len;
  24. int buf_u32( uint32_t u32 );
  25. int buf_s32( int32_t s32 );
  26. int buf_u32f( uint32_t u32, int nfrac );
  27. int buf_s32f( int32_t value, int nfrac );
  28. int buf_rjprint( int num ); // right justified print
  29. public:
  30. jm_LiquidCrystal_I2C();
  31. void begin();
  32. void clr_screen();
  33. void set_cursor( int col, int row );
  34. int print_space();
  35. int print_spaces( int num );
  36. int print_sgn( int sgn );
  37. int print_sign( bool sign );
  38. int print_u8( uint8_t value );
  39. int print_u8( uint8_t value, int nprint );
  40. int print_s8( int8_t value );
  41. int print_s8( int8_t value, int nprint );
  42. int print_u16( uint16_t value );
  43. int print_u16( uint16_t value, int nprint );
  44. int print_s16( int16_t value );
  45. int print_s16( int16_t value, int nprint );
  46. int print_u32( uint32_t value );
  47. int print_u32( uint32_t value, int nprint );
  48. int print_s32( int32_t value );
  49. int print_s32( int32_t value, int nprint );
  50. int print_h4( uint8_t value );
  51. int print_h8( uint8_t value );
  52. int print_h16( uint16_t value );
  53. int print_h24( uint32_t value );
  54. int print_h32( uint32_t value );
  55. int print_u32f( uint32_t value, int nfrac );
  56. int print_u32f( uint32_t value, int nfrac, int nprint );
  57. int print_s32f( int32_t value, int nfrac );
  58. int print_s32f( int32_t value, int nfrac, int nprint );
  59. };
  60. // -----------------------------------------------------------------------------
  61. #endif