Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Driver.h@1:5948937aac9a, 2015-08-16 (annotated)
- Committer:
- marcel1691
- Date:
- Sun Aug 16 19:32:25 2015 +0200
- Revision:
- 1:5948937aac9a
- Parent:
- 0:a0bbe9291005
Erweitert um Eclipse/gcc4mbed Konfiguration
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| stefan1691 | 0:a0bbe9291005 | 1 | #ifndef LMDriver_H |
| stefan1691 | 0:a0bbe9291005 | 2 | #define LMDriver_H |
| stefan1691 | 0:a0bbe9291005 | 3 | #include <deque> |
| stefan1691 | 0:a0bbe9291005 | 4 | #include <string> |
| stefan1691 | 0:a0bbe9291005 | 5 | |
| stefan1691 | 0:a0bbe9291005 | 6 | #define reg_noop 0x00 |
| stefan1691 | 0:a0bbe9291005 | 7 | #define reg_column1 0x01 |
| stefan1691 | 0:a0bbe9291005 | 8 | #define reg_column2 0x02 |
| stefan1691 | 0:a0bbe9291005 | 9 | #define reg_column3 0x03 |
| stefan1691 | 0:a0bbe9291005 | 10 | #define reg_column4 0x04 |
| stefan1691 | 0:a0bbe9291005 | 11 | #define reg_column5 0x05 |
| stefan1691 | 0:a0bbe9291005 | 12 | #define reg_column6 0x06 |
| stefan1691 | 0:a0bbe9291005 | 13 | #define reg_column7 0x07 |
| stefan1691 | 0:a0bbe9291005 | 14 | #define reg_column8 0x08 |
| stefan1691 | 0:a0bbe9291005 | 15 | #define reg_decodeMode 0x09 |
| stefan1691 | 0:a0bbe9291005 | 16 | #define reg_intensity 0x0a |
| stefan1691 | 0:a0bbe9291005 | 17 | #define reg_scanLimit 0x0b |
| stefan1691 | 0:a0bbe9291005 | 18 | #define reg_shutdown 0x0c |
| stefan1691 | 0:a0bbe9291005 | 19 | #define reg_displayTest 0x0f |
| stefan1691 | 0:a0bbe9291005 | 20 | |
| stefan1691 | 0:a0bbe9291005 | 21 | #define MHz 1000000; |
| stefan1691 | 0:a0bbe9291005 | 22 | |
| stefan1691 | 0:a0bbe9291005 | 23 | const uint8_t chars[]= { |
| stefan1691 | 0:a0bbe9291005 | 24 | 0xFF,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xFF |
| stefan1691 | 0:a0bbe9291005 | 25 | ,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0 |
| stefan1691 | 0:a0bbe9291005 | 26 | ,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xFF |
| stefan1691 | 0:a0bbe9291005 | 27 | ,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0xFF |
| stefan1691 | 0:a0bbe9291005 | 28 | ,0x0C,0x18,0x30,0x7E,0x0C,0x18,0x30,0x00 |
| stefan1691 | 0:a0bbe9291005 | 29 | ,0xFF,0xC3,0xE7,0xDB,0xDB,0xE7,0xC3,0xFF |
| stefan1691 | 0:a0bbe9291005 | 30 | ,0x00,0x01,0x03,0x06,0xCC,0x78,0x30,0x00 |
| stefan1691 | 0:a0bbe9291005 | 31 | ,0x3C,0x66,0xC3,0xC3,0xFF,0x24,0xE7,0x00 |
| stefan1691 | 0:a0bbe9291005 | 32 | ,0x00,0x00,0x30,0x60,0xFF,0x60,0x30,0x00 |
| stefan1691 | 0:a0bbe9291005 | 33 | ,0x00,0x00,0x0C,0x06,0xFF,0x06,0x0C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 34 | ,0x18,0x18,0x18,0x18,0xDB,0x7E,0x3C,0x18 |
| stefan1691 | 0:a0bbe9291005 | 35 | ,0x18,0x3C,0x7E,0xDB,0x18,0x18,0x18,0x18 |
| stefan1691 | 0:a0bbe9291005 | 36 | ,0x18,0x5A,0x3C,0x99,0xDB,0x7E,0x3C,0x18 |
| stefan1691 | 0:a0bbe9291005 | 37 | ,0x00,0x03,0x33,0x63,0xFE,0x60,0x30,0x00 |
| stefan1691 | 0:a0bbe9291005 | 38 | ,0x3C,0x66,0xFF,0xDB,0xDB,0xFF,0x66,0x3C |
| stefan1691 | 0:a0bbe9291005 | 39 | ,0x3C,0x66,0xC3,0xDB,0xDB,0xC3,0x66,0x3C |
| stefan1691 | 0:a0bbe9291005 | 40 | ,0xFF,0xC3,0xC3,0xFF,0xC3,0xC3,0xC3,0xFF |
| stefan1691 | 0:a0bbe9291005 | 41 | ,0x3C,0x7E,0xDB,0xDB,0xDF,0xC3,0x66,0x3C |
| stefan1691 | 0:a0bbe9291005 | 42 | ,0x3C,0x66,0xC3,0xDF,0xDB,0xDB,0x7E,0x3C |
| stefan1691 | 0:a0bbe9291005 | 43 | ,0x3C,0x66,0xC3,0xFB,0xDB,0xDB,0x7E,0x3C |
| stefan1691 | 0:a0bbe9291005 | 44 | ,0x3C,0x7E,0xDB,0xDB,0xFB,0xC3,0x66,0x3C |
| stefan1691 | 0:a0bbe9291005 | 45 | ,0x00,0x01,0x33,0x1E,0xCE,0x7B,0x31,0x00 |
| stefan1691 | 0:a0bbe9291005 | 46 | ,0x7E,0x66,0x66,0x66,0x66,0x66,0x66,0xE7 |
| stefan1691 | 0:a0bbe9291005 | 47 | ,0x03,0x03,0x03,0xFF,0x03,0x03,0x03,0x00 |
| stefan1691 | 0:a0bbe9291005 | 48 | ,0xFF,0x66,0x3C,0x18,0x18,0x3C,0x66,0xFF |
| stefan1691 | 0:a0bbe9291005 | 49 | ,0x18,0x18,0x3C,0x3C,0x3C,0x3C,0x18,0x18 |
| stefan1691 | 0:a0bbe9291005 | 50 | ,0x3C,0x66,0x66,0x30,0x18,0x00,0x18,0x00 |
| stefan1691 | 0:a0bbe9291005 | 51 | ,0x3C,0x66,0xC3,0xFF,0xC3,0xC3,0x66,0x3C |
| stefan1691 | 0:a0bbe9291005 | 52 | ,0xFF,0xDB,0xDB,0xDB,0xFB,0xC3,0xC3,0xFF |
| stefan1691 | 0:a0bbe9291005 | 53 | ,0xFF,0xC3,0xC3,0xFB,0xDB,0xDB,0xDB,0xFF |
| stefan1691 | 0:a0bbe9291005 | 54 | ,0xFF,0xC3,0xC3,0xDF,0xDB,0xDB,0xDB,0xFF |
| stefan1691 | 0:a0bbe9291005 | 55 | ,0xFF,0xDB,0xDB,0xDB,0xDF,0xC3,0xC3,0xFF |
| stefan1691 | 0:a0bbe9291005 | 56 | ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 57 | ,0x18,0x18,0x18,0x18,0x18,0x00,0x18,0x00 |
| stefan1691 | 0:a0bbe9291005 | 58 | ,0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 59 | ,0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 60 | ,0x18,0x3E,0x58,0x3C,0x1A,0x7C,0x18,0x00 |
| stefan1691 | 0:a0bbe9291005 | 61 | ,0x00,0xC6,0xCC,0x18,0x30,0x66,0xC6,0x00 |
| stefan1691 | 0:a0bbe9291005 | 62 | ,0x38,0x6C,0x38,0x76,0xDC,0xCC,0x76,0x00 |
| stefan1691 | 0:a0bbe9291005 | 63 | ,0x18,0x18,0x30,0x00,0x00,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 64 | ,0x0C,0x18,0x30,0x30,0x30,0x18,0x0C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 65 | ,0x30,0x18,0x0C,0x0C,0x0C,0x18,0x30,0x00 |
| stefan1691 | 0:a0bbe9291005 | 66 | ,0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 67 | ,0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 68 | ,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x30 |
| stefan1691 | 0:a0bbe9291005 | 69 | ,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 70 | ,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00 |
| stefan1691 | 0:a0bbe9291005 | 71 | ,0x06,0x0C,0x18,0x30,0x60,0xC0,0x80,0x00 |
| stefan1691 | 0:a0bbe9291005 | 72 | ,0x7C,0xC6,0xCE,0xD6,0xE6,0xC6,0x7C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 73 | ,0x18,0x38,0x18,0x18,0x18,0x18,0x7E,0x00 |
| stefan1691 | 0:a0bbe9291005 | 74 | ,0x3C,0x66,0x06,0x3C,0x60,0x66,0x7E,0x00 |
| stefan1691 | 0:a0bbe9291005 | 75 | ,0x3C,0x66,0x06,0x1C,0x06,0x66,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 76 | ,0x1C,0x3C,0x6C,0xCC,0xFE,0x0C,0x1E,0x00 |
| stefan1691 | 0:a0bbe9291005 | 77 | ,0x7E,0x62,0x60,0x7C,0x06,0x66,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 78 | ,0x3C,0x66,0x60,0x7C,0x66,0x66,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 79 | ,0x7E,0x66,0x06,0x0C,0x18,0x18,0x18,0x00 |
| stefan1691 | 0:a0bbe9291005 | 80 | ,0x3C,0x66,0x66,0x3C,0x66,0x66,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 81 | ,0x3C,0x66,0x66,0x3E,0x06,0x66,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 82 | ,0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x00 |
| stefan1691 | 0:a0bbe9291005 | 83 | ,0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x30 |
| stefan1691 | 0:a0bbe9291005 | 84 | ,0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 85 | ,0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 86 | ,0x60,0x30,0x18,0x0C,0x18,0x30,0x60,0x00 |
| stefan1691 | 0:a0bbe9291005 | 87 | ,0x3C,0x66,0x66,0x0C,0x18,0x00,0x18,0x00 |
| stefan1691 | 0:a0bbe9291005 | 88 | ,0x7C,0xC6,0xDE,0xDE,0xDE,0xC0,0x7C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 89 | ,0x18,0x3C,0x66,0x66,0x7E,0x66,0x66,0x00 |
| stefan1691 | 0:a0bbe9291005 | 90 | ,0xFC,0x66,0x66,0x7C,0x66,0x66,0xFC,0x00 |
| stefan1691 | 0:a0bbe9291005 | 91 | ,0x3C,0x66,0xC0,0xC0,0xC0,0x66,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 92 | ,0xF8,0x6C,0x66,0x66,0x66,0x6C,0xF8,0x00 |
| stefan1691 | 0:a0bbe9291005 | 93 | ,0xFE,0x62,0x68,0x78,0x68,0x62,0xFE,0x00 |
| stefan1691 | 0:a0bbe9291005 | 94 | ,0xFE,0x62,0x68,0x78,0x68,0x60,0xF0,0x00 |
| stefan1691 | 0:a0bbe9291005 | 95 | ,0x3C,0x66,0xC0,0xC0,0xCE,0x66,0x3E,0x00 |
| stefan1691 | 0:a0bbe9291005 | 96 | ,0x66,0x66,0x66,0x7E,0x66,0x66,0x66,0x00 |
| stefan1691 | 0:a0bbe9291005 | 97 | ,0x7E,0x18,0x18,0x18,0x18,0x18,0x7E,0x00 |
| stefan1691 | 0:a0bbe9291005 | 98 | ,0x1E,0x0C,0x0C,0x0C,0xCC,0xCC,0x78,0x00 |
| stefan1691 | 0:a0bbe9291005 | 99 | ,0xE6,0x66,0x6C,0x78,0x6C,0x66,0xE6,0x00 |
| stefan1691 | 0:a0bbe9291005 | 100 | ,0xF0,0x60,0x60,0x60,0x62,0x66,0xFE,0x00 |
| stefan1691 | 0:a0bbe9291005 | 101 | ,0xC6,0xEE,0xFE,0xFE,0xD6,0xC6,0xC6,0x00 |
| stefan1691 | 0:a0bbe9291005 | 102 | ,0xC6,0xE6,0xF6,0xDE,0xCE,0xC6,0xC6,0x00 |
| stefan1691 | 0:a0bbe9291005 | 103 | ,0x38,0x6C,0xC6,0xC6,0xC6,0x6C,0x38,0x00 |
| stefan1691 | 0:a0bbe9291005 | 104 | ,0xFC,0x66,0x66,0x7C,0x60,0x60,0xF0,0x00 |
| stefan1691 | 0:a0bbe9291005 | 105 | ,0x38,0x6C,0xC6,0xC6,0xDA,0xCC,0x76,0x00 |
| stefan1691 | 0:a0bbe9291005 | 106 | ,0xFC,0x66,0x66,0x7C,0x6C,0x66,0xE6,0x00 |
| stefan1691 | 0:a0bbe9291005 | 107 | ,0x3C,0x66,0x60,0x3C,0x06,0x66,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 108 | ,0x7E,0x5A,0x18,0x18,0x18,0x18,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 109 | ,0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 110 | ,0x66,0x66,0x66,0x66,0x66,0x3C,0x18,0x00 |
| stefan1691 | 0:a0bbe9291005 | 111 | ,0xC6,0xC6,0xC6,0xD6,0xFE,0xEE,0xC6,0x00 |
| stefan1691 | 0:a0bbe9291005 | 112 | ,0xC6,0x6C,0x38,0x38,0x6C,0xC6,0xC6,0x00 |
| stefan1691 | 0:a0bbe9291005 | 113 | ,0x66,0x66,0x66,0x3C,0x18,0x18,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 114 | ,0xFE,0xC6,0x8C,0x18,0x32,0x66,0xFE,0x00 |
| stefan1691 | 0:a0bbe9291005 | 115 | ,0x3C,0x30,0x30,0x30,0x30,0x30,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 116 | ,0xC0,0x60,0x30,0x18,0x0C,0x06,0x02,0x00 |
| stefan1691 | 0:a0bbe9291005 | 117 | ,0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 118 | ,0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,0x00 |
| stefan1691 | 0:a0bbe9291005 | 119 | ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF |
| stefan1691 | 0:a0bbe9291005 | 120 | ,0x30,0x18,0x0C,0x00,0x00,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 121 | ,0x00,0x00,0x78,0x0C,0x7C,0xCC,0x76,0x00 |
| stefan1691 | 0:a0bbe9291005 | 122 | ,0xE0,0x60,0x7C,0x66,0x66,0x66,0xDC,0x00 |
| stefan1691 | 0:a0bbe9291005 | 123 | ,0x00,0x00,0x3C,0x66,0x60,0x66,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 124 | ,0x1C,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00 |
| stefan1691 | 0:a0bbe9291005 | 125 | ,0x00,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 126 | ,0x1C,0x36,0x30,0x78,0x30,0x30,0x78,0x00 |
| stefan1691 | 0:a0bbe9291005 | 127 | ,0x00,0x00,0x3E,0x66,0x66,0x3E,0x06,0x7C |
| stefan1691 | 0:a0bbe9291005 | 128 | ,0xE0,0x60,0x6C,0x76,0x66,0x66,0xE6,0x00 |
| stefan1691 | 0:a0bbe9291005 | 129 | ,0x18,0x00,0x38,0x18,0x18,0x18,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 130 | ,0x06,0x00,0x0E,0x06,0x06,0x66,0x66,0x3C |
| stefan1691 | 0:a0bbe9291005 | 131 | ,0xE0,0x60,0x66,0x6C,0x78,0x6C,0xE6,0x00 |
| stefan1691 | 0:a0bbe9291005 | 132 | ,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 133 | ,0x00,0x00,0x6C,0xFE,0xD6,0xD6,0xC6,0x00 |
| stefan1691 | 0:a0bbe9291005 | 134 | ,0x00,0x00,0xDC,0x66,0x66,0x66,0x66,0x00 |
| stefan1691 | 0:a0bbe9291005 | 135 | ,0x00,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 136 | ,0x00,0x00,0xDC,0x66,0x66,0x7C,0x60,0xF0 |
| stefan1691 | 0:a0bbe9291005 | 137 | ,0x00,0x00,0x76,0xCC,0xCC,0x7C,0x0C,0x1E |
| stefan1691 | 0:a0bbe9291005 | 138 | ,0x00,0x00,0xDC,0x76,0x60,0x60,0xF0,0x00 |
| stefan1691 | 0:a0bbe9291005 | 139 | ,0x00,0x00,0x3C,0x60,0x3C,0x06,0x7C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 140 | ,0x30,0x30,0x7C,0x30,0x30,0x36,0x1C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 141 | ,0x00,0x00,0x66,0x66,0x66,0x66,0x3E,0x00 |
| stefan1691 | 0:a0bbe9291005 | 142 | ,0x00,0x00,0x66,0x66,0x66,0x3C,0x18,0x00 |
| stefan1691 | 0:a0bbe9291005 | 143 | ,0x00,0x00,0xC6,0xD6,0xD6,0xFE,0x6C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 144 | ,0x00,0x00,0xC6,0x6C,0x38,0x6C,0xC6,0x00 |
| stefan1691 | 0:a0bbe9291005 | 145 | ,0x00,0x00,0x66,0x66,0x66,0x3E,0x06,0x7C |
| stefan1691 | 0:a0bbe9291005 | 146 | ,0x00,0x00,0x7E,0x4C,0x18,0x32,0x7E,0x00 |
| stefan1691 | 0:a0bbe9291005 | 147 | ,0x0E,0x18,0x18,0x70,0x18,0x18,0x0E,0x00 |
| stefan1691 | 0:a0bbe9291005 | 148 | ,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00 |
| stefan1691 | 0:a0bbe9291005 | 149 | ,0x70,0x18,0x18,0x0E,0x18,0x18,0x70,0x00 |
| stefan1691 | 0:a0bbe9291005 | 150 | ,0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 151 | ,0xCC,0x33,0xCC,0x33,0xCC,0x33,0xCC,0x33 |
| stefan1691 | 0:a0bbe9291005 | 152 | ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 153 | ,0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 154 | ,0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 155 | ,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 156 | ,0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0 |
| stefan1691 | 0:a0bbe9291005 | 157 | ,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0 |
| stefan1691 | 0:a0bbe9291005 | 158 | ,0x0F,0x0F,0x0F,0x0F,0xF0,0xF0,0xF0,0xF0 |
| stefan1691 | 0:a0bbe9291005 | 159 | ,0xFF,0xFF,0xFF,0xFF,0xF0,0xF0,0xF0,0xF0 |
| stefan1691 | 0:a0bbe9291005 | 160 | ,0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F |
| stefan1691 | 0:a0bbe9291005 | 161 | ,0xF0,0xF0,0xF0,0xF0,0x0F,0x0F,0x0F,0x0F |
| stefan1691 | 0:a0bbe9291005 | 162 | ,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F |
| stefan1691 | 0:a0bbe9291005 | 163 | ,0xFF,0xFF,0xFF,0xFF,0x0F,0x0F,0x0F,0x0F |
| stefan1691 | 0:a0bbe9291005 | 164 | ,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF |
| stefan1691 | 0:a0bbe9291005 | 165 | ,0xF0,0xF0,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF |
| stefan1691 | 0:a0bbe9291005 | 166 | ,0x0F,0x0F,0x0F,0x0F,0xFF,0xFF,0xFF,0xFF |
| stefan1691 | 0:a0bbe9291005 | 167 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF |
| stefan1691 | 0:a0bbe9291005 | 168 | ,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 169 | ,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 170 | ,0x00,0x00,0x00,0x1F,0x1F,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 171 | ,0x18,0x18,0x18,0x1F,0x0F,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 172 | ,0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18 |
| stefan1691 | 0:a0bbe9291005 | 173 | ,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18 |
| stefan1691 | 0:a0bbe9291005 | 174 | ,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18 |
| stefan1691 | 0:a0bbe9291005 | 175 | ,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18 |
| stefan1691 | 0:a0bbe9291005 | 176 | ,0x00,0x00,0x00,0xF8,0xF8,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 177 | ,0x18,0x18,0x18,0xF8,0xF0,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 178 | ,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 179 | ,0x18,0x18,0x18,0xFF,0xFF,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 180 | ,0x00,0x00,0x00,0xF0,0xF8,0x18,0x18,0x18 |
| stefan1691 | 0:a0bbe9291005 | 181 | ,0x18,0x18,0x18,0xF8,0xF8,0x18,0x18,0x18 |
| stefan1691 | 0:a0bbe9291005 | 182 | ,0x00,0x00,0x00,0xFF,0xFF,0x18,0x18,0x18 |
| stefan1691 | 0:a0bbe9291005 | 183 | ,0x18,0x18,0x18,0xFF,0xFF,0x18,0x18,0x18 |
| stefan1691 | 0:a0bbe9291005 | 184 | ,0x10,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 185 | ,0x0C,0x18,0x30,0x00,0x00,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 186 | ,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 187 | ,0x3C,0x66,0x60,0xF8,0x60,0x66,0xFE,0x00 |
| stefan1691 | 0:a0bbe9291005 | 188 | ,0x38,0x44,0xBA,0xA2,0xBA,0x44,0x38,0x00 |
| stefan1691 | 0:a0bbe9291005 | 189 | ,0x7E,0xF4,0xF4,0x74,0x34,0x34,0x34,0x00 |
| stefan1691 | 0:a0bbe9291005 | 190 | ,0x1E,0x30,0x38,0x6C,0x38,0x18,0xF0,0x00 |
| stefan1691 | 0:a0bbe9291005 | 191 | ,0x18,0x18,0x0C,0x00,0x00,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 192 | ,0x40,0xC0,0x44,0x4C,0x54,0x1E,0x04,0x00 |
| stefan1691 | 0:a0bbe9291005 | 193 | ,0x40,0xC0,0x4C,0x52,0x44,0x08,0x1E,0x00 |
| stefan1691 | 0:a0bbe9291005 | 194 | ,0xE0,0x10,0x62,0x16,0xEA,0x0F,0x02,0x00 |
| stefan1691 | 0:a0bbe9291005 | 195 | ,0x00,0x18,0x18,0x7E,0x18,0x18,0x7E,0x00 |
| stefan1691 | 0:a0bbe9291005 | 196 | ,0x18,0x18,0x00,0x7E,0x00,0x18,0x18,0x00 |
| stefan1691 | 0:a0bbe9291005 | 197 | ,0x00,0x00,0x00,0x7E,0x06,0x06,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 198 | ,0x18,0x00,0x18,0x30,0x66,0x66,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 199 | ,0x18,0x00,0x18,0x18,0x18,0x18,0x18,0x00 |
| stefan1691 | 0:a0bbe9291005 | 200 | ,0x00,0x00,0x73,0xDE,0xCC,0xDE,0x73,0x00 |
| stefan1691 | 0:a0bbe9291005 | 201 | ,0x7C,0xC6,0xC6,0xFC,0xC6,0xC6,0xF8,0xC0 |
| stefan1691 | 0:a0bbe9291005 | 202 | ,0x00,0x66,0x66,0x3C,0x66,0x66,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 203 | ,0x3C,0x60,0x60,0x3C,0x66,0x66,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 204 | ,0x00,0x00,0x1E,0x30,0x7C,0x30,0x1E,0x00 |
| stefan1691 | 0:a0bbe9291005 | 205 | ,0x38,0x6C,0xC6,0xFE,0xC6,0x6C,0x38,0x00 |
| stefan1691 | 0:a0bbe9291005 | 206 | ,0x00,0xC0,0x60,0x30,0x38,0x6C,0xC6,0x00 |
| stefan1691 | 0:a0bbe9291005 | 207 | ,0x00,0x00,0x66,0x66,0x66,0x7C,0x60,0x60 |
| stefan1691 | 0:a0bbe9291005 | 208 | ,0x00,0x00,0x00,0xFE,0x6C,0x6C,0x6C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 209 | ,0x00,0x00,0x00,0x7E,0xD8,0xD8,0x70,0x00 |
| stefan1691 | 0:a0bbe9291005 | 210 | ,0x03,0x06,0x0C,0x3C,0x66,0x3C,0x60,0xC0 |
| stefan1691 | 0:a0bbe9291005 | 211 | ,0x03,0x06,0x0C,0x66,0x66,0x3C,0x60,0xC0 |
| stefan1691 | 0:a0bbe9291005 | 212 | ,0x00,0xE6,0x3C,0x18,0x38,0x6C,0xC7,0x00 |
| stefan1691 | 0:a0bbe9291005 | 213 | ,0x00,0x00,0x66,0xC3,0xDB,0xDB,0x7E,0x00 |
| stefan1691 | 0:a0bbe9291005 | 214 | ,0xFE,0xC6,0x60,0x30,0x60,0xC6,0xFE,0x00 |
| stefan1691 | 0:a0bbe9291005 | 215 | ,0x00,0x7C,0xC6,0xC6,0xC6,0x6C,0xEE,0x00 |
| stefan1691 | 0:a0bbe9291005 | 216 | ,0x18,0x30,0x60,0xC0,0x80,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 217 | ,0x18,0x0C,0x06,0x03,0x01,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 218 | ,0x00,0x00,0x00,0x01,0x03,0x06,0x0C,0x18 |
| stefan1691 | 0:a0bbe9291005 | 219 | ,0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x18 |
| stefan1691 | 0:a0bbe9291005 | 220 | ,0x18,0x3C,0x66,0xC3,0x81,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 221 | ,0x18,0x0C,0x06,0x03,0x03,0x06,0x0C,0x18 |
| stefan1691 | 0:a0bbe9291005 | 222 | ,0x00,0x00,0x00,0x81,0xC3,0x66,0x3C,0x18 |
| stefan1691 | 0:a0bbe9291005 | 223 | ,0x18,0x30,0x60,0xC0,0xC0,0x60,0x30,0x18 |
| stefan1691 | 0:a0bbe9291005 | 224 | ,0x18,0x30,0x60,0xC1,0x83,0x06,0x0C,0x18 |
| stefan1691 | 0:a0bbe9291005 | 225 | ,0x18,0x0C,0x06,0x83,0xC1,0x60,0x30,0x18 |
| stefan1691 | 0:a0bbe9291005 | 226 | ,0x18,0x3C,0x66,0xC3,0xC3,0x66,0x3C,0x18 |
| stefan1691 | 0:a0bbe9291005 | 227 | ,0xC3,0xE7,0x7E,0x3C,0x3C,0x7E,0xE7,0xC3 |
| stefan1691 | 0:a0bbe9291005 | 228 | ,0x03,0x07,0x0E,0x1C,0x38,0x70,0xE0,0xC0 |
| stefan1691 | 0:a0bbe9291005 | 229 | ,0xC0,0xE0,0x70,0x38,0x1C,0x0E,0x07,0x03 |
| stefan1691 | 0:a0bbe9291005 | 230 | ,0xCC,0xCC,0x33,0x33,0xCC,0xCC,0x33,0x33 |
| stefan1691 | 0:a0bbe9291005 | 231 | ,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55 |
| stefan1691 | 0:a0bbe9291005 | 232 | ,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 233 | ,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03 |
| stefan1691 | 0:a0bbe9291005 | 234 | ,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF |
| stefan1691 | 0:a0bbe9291005 | 235 | ,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0 |
| stefan1691 | 0:a0bbe9291005 | 236 | ,0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80 |
| stefan1691 | 0:a0bbe9291005 | 237 | ,0xFF,0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01 |
| stefan1691 | 0:a0bbe9291005 | 238 | ,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF |
| stefan1691 | 0:a0bbe9291005 | 239 | ,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF |
| stefan1691 | 0:a0bbe9291005 | 240 | ,0xAA,0x55,0xAA,0x55,0x00,0x00,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 241 | ,0x0A,0x05,0x0A,0x05,0x0A,0x05,0x0A,0x05 |
| stefan1691 | 0:a0bbe9291005 | 242 | ,0x00,0x00,0x00,0x00,0xAA,0x55,0xAA,0x55 |
| stefan1691 | 0:a0bbe9291005 | 243 | ,0xA0,0x50,0xA0,0x50,0xA0,0x50,0xA0,0x50 |
| stefan1691 | 0:a0bbe9291005 | 244 | ,0xAA,0x54,0xA8,0x50,0xA0,0x40,0x80,0x00 |
| stefan1691 | 0:a0bbe9291005 | 245 | ,0xAA,0x55,0x2A,0x15,0x0A,0x05,0x02,0x01 |
| stefan1691 | 0:a0bbe9291005 | 246 | ,0x01,0x02,0x05,0x0A,0x15,0x2A,0x55,0xAA |
| stefan1691 | 0:a0bbe9291005 | 247 | ,0x00,0x80,0x40,0xA0,0x50,0xA8,0x54,0xAA |
| stefan1691 | 0:a0bbe9291005 | 248 | ,0x7E,0xFF,0x99,0xFF,0xBD,0xC3,0xFF,0x7E |
| stefan1691 | 0:a0bbe9291005 | 249 | ,0x7E,0xFF,0x99,0xFF,0xC3,0xBD,0xFF,0x7E |
| stefan1691 | 0:a0bbe9291005 | 250 | ,0x38,0x38,0xFE,0xFE,0xFE,0x10,0x38,0x00 |
| stefan1691 | 0:a0bbe9291005 | 251 | ,0x10,0x38,0x7C,0xFE,0x7C,0x38,0x10,0x00 |
| stefan1691 | 0:a0bbe9291005 | 252 | ,0x6C,0xFE,0xFE,0xFE,0x7C,0x38,0x10,0x00 |
| stefan1691 | 0:a0bbe9291005 | 253 | ,0x10,0x38,0x7C,0xFE,0xFE,0x10,0x38,0x00 |
| stefan1691 | 0:a0bbe9291005 | 254 | ,0x00,0x3C,0x66,0xC3,0xC3,0x66,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 255 | ,0x00,0x3C,0x7E,0xFF,0xFF,0x7E,0x3C,0x00 |
| stefan1691 | 0:a0bbe9291005 | 256 | ,0x00,0x7E,0x66,0x66,0x66,0x66,0x7E,0x00 |
| stefan1691 | 0:a0bbe9291005 | 257 | ,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00 |
| stefan1691 | 0:a0bbe9291005 | 258 | ,0x0F,0x07,0x0D,0x78,0xCC,0xCC,0xCC,0x78 |
| stefan1691 | 0:a0bbe9291005 | 259 | ,0x3C,0x66,0x66,0x66,0x3C,0x18,0x7E,0x18 |
| stefan1691 | 0:a0bbe9291005 | 260 | ,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x7C,0x38 |
| stefan1691 | 0:a0bbe9291005 | 261 | ,0x18,0x1C,0x1E,0x1B,0x18,0x78,0xF8,0x70 |
| stefan1691 | 0:a0bbe9291005 | 262 | ,0x99,0x5A,0x24,0xC3,0xC3,0x24,0x5A,0x99 |
| stefan1691 | 0:a0bbe9291005 | 263 | ,0x10,0x38,0x38,0x38,0x38,0x38,0x7C,0xD6 |
| stefan1691 | 0:a0bbe9291005 | 264 | ,0x18,0x3C,0x7E,0xFF,0x18,0x18,0x18,0x18 |
| stefan1691 | 0:a0bbe9291005 | 265 | ,0x18,0x18,0x18,0x18,0xFF,0x7E,0x3C,0x18 |
| stefan1691 | 0:a0bbe9291005 | 266 | ,0x10,0x30,0x70,0xFF,0xFF,0x70,0x30,0x10 |
| stefan1691 | 0:a0bbe9291005 | 267 | ,0x08,0x0C,0x0E,0xFF,0xFF,0x0E,0x0C,0x08 |
| stefan1691 | 0:a0bbe9291005 | 268 | ,0x00,0x00,0x18,0x3C,0x7E,0xFF,0xFF,0x00 |
| stefan1691 | 0:a0bbe9291005 | 269 | ,0x00,0x00,0xFF,0xFF,0x7E,0x3C,0x18,0x00 |
| stefan1691 | 0:a0bbe9291005 | 270 | ,0x80,0xE0,0xF8,0xFE,0xF8,0xE0,0x80,0x00 |
| stefan1691 | 0:a0bbe9291005 | 271 | ,0x02,0x0E,0x3E,0xFE,0x3E,0x0E,0x02,0x00 |
| stefan1691 | 0:a0bbe9291005 | 272 | ,0x38,0x38,0x92,0x7C,0x10,0x28,0x28,0x28 |
| stefan1691 | 0:a0bbe9291005 | 273 | ,0x38,0x38,0x10,0xFE,0x10,0x28,0x44,0x82 |
| stefan1691 | 0:a0bbe9291005 | 274 | ,0x38,0x38,0x12,0x7C,0x90,0x28,0x24,0x22 |
| stefan1691 | 0:a0bbe9291005 | 275 | ,0x38,0x38,0x90,0x7C,0x12,0x28,0x48,0x88 |
| stefan1691 | 0:a0bbe9291005 | 276 | ,0x00,0x3C,0x18,0x3C,0x3C,0x3C,0x18,0x00 |
| stefan1691 | 0:a0bbe9291005 | 277 | ,0x3C,0xFF,0xFF,0x18,0x0C,0x18,0x30,0x18 |
| stefan1691 | 0:a0bbe9291005 | 278 | ,0x18,0x3C,0x7E,0x18,0x18,0x7E,0x3C,0x18 |
| stefan1691 | 0:a0bbe9291005 | 279 | ,0x00,0x24,0x66,0xFF,0x66,0x24,0x00,0x00 |
| stefan1691 | 0:a0bbe9291005 | 280 | }; |
| stefan1691 | 0:a0bbe9291005 | 281 | |
| stefan1691 | 0:a0bbe9291005 | 282 | |
| stefan1691 | 0:a0bbe9291005 | 283 | class LMDriver |
| stefan1691 | 0:a0bbe9291005 | 284 | { |
| stefan1691 | 0:a0bbe9291005 | 285 | |
| stefan1691 | 0:a0bbe9291005 | 286 | SPI* spi; |
| stefan1691 | 0:a0bbe9291005 | 287 | DigitalOut* cs; |
| stefan1691 | 0:a0bbe9291005 | 288 | PinName _msoi,_miso,_sclk,_cs; |
| stefan1691 | 0:a0bbe9291005 | 289 | float wtime; |
| stefan1691 | 0:a0bbe9291005 | 290 | float cwtime; |
| stefan1691 | 0:a0bbe9291005 | 291 | int freq; |
| stefan1691 | 0:a0bbe9291005 | 292 | void writeToReg(int reg, int value) { |
| stefan1691 | 0:a0bbe9291005 | 293 | cs->write(0); |
| stefan1691 | 0:a0bbe9291005 | 294 | spi->write(reg); |
| stefan1691 | 0:a0bbe9291005 | 295 | spi->write(value); |
| stefan1691 | 0:a0bbe9291005 | 296 | cs->write(1); |
| stefan1691 | 0:a0bbe9291005 | 297 | } |
| stefan1691 | 0:a0bbe9291005 | 298 | void zeroFill() { |
| stefan1691 | 0:a0bbe9291005 | 299 | for(int i=1; i<=8; i++) |
| stefan1691 | 0:a0bbe9291005 | 300 | writeToReg(i,0); |
| stefan1691 | 0:a0bbe9291005 | 301 | } |
| stefan1691 | 0:a0bbe9291005 | 302 | void writeArray(const uint8_t* array, uint8_t size=8) { |
| stefan1691 | 0:a0bbe9291005 | 303 | int count=0; |
| stefan1691 | 0:a0bbe9291005 | 304 | for(int i=1; i<=8; i++) |
| stefan1691 | 0:a0bbe9291005 | 305 | writeToReg(i,array[count++]); |
| stefan1691 | 0:a0bbe9291005 | 306 | } |
| stefan1691 | 0:a0bbe9291005 | 307 | |
| stefan1691 | 0:a0bbe9291005 | 308 | void displayDeque(const deque<uint8_t>& output) { |
| stefan1691 | 0:a0bbe9291005 | 309 | int count=0; |
| stefan1691 | 0:a0bbe9291005 | 310 | for(int i=1; i<=8; i++) |
| stefan1691 | 0:a0bbe9291005 | 311 | writeToReg(i,output[count++]); |
| stefan1691 | 0:a0bbe9291005 | 312 | } |
| stefan1691 | 0:a0bbe9291005 | 313 | void allocate(const LMDriver& lm) { |
| stefan1691 | 0:a0bbe9291005 | 314 | this->spi=new SPI(lm._msoi,lm._miso,lm._sclk); |
| stefan1691 | 0:a0bbe9291005 | 315 | this->cs=new DigitalOut(lm._cs); |
| stefan1691 | 0:a0bbe9291005 | 316 | this->_msoi=lm._msoi; |
| stefan1691 | 0:a0bbe9291005 | 317 | this->_miso=lm._miso; |
| stefan1691 | 0:a0bbe9291005 | 318 | this->_cs=lm._cs; |
| stefan1691 | 0:a0bbe9291005 | 319 | this->freq=lm.freq; |
| stefan1691 | 0:a0bbe9291005 | 320 | spi->format(8,0); |
| stefan1691 | 0:a0bbe9291005 | 321 | spi->frequency(freq); |
| stefan1691 | 0:a0bbe9291005 | 322 | this->cwtime=lm.cwtime; |
| stefan1691 | 0:a0bbe9291005 | 323 | this->wtime=lm.wtime; |
| stefan1691 | 0:a0bbe9291005 | 324 | } |
| stefan1691 | 0:a0bbe9291005 | 325 | void deallocate() { |
| stefan1691 | 0:a0bbe9291005 | 326 | delete this->spi; |
| stefan1691 | 0:a0bbe9291005 | 327 | this->spi=0; |
| stefan1691 | 0:a0bbe9291005 | 328 | delete this->cs; |
| stefan1691 | 0:a0bbe9291005 | 329 | this->cs=0; |
| stefan1691 | 0:a0bbe9291005 | 330 | } |
| stefan1691 | 0:a0bbe9291005 | 331 | void fillDeque(deque<uint8_t>& regs, char c, int shift,bool test=true) { |
| stefan1691 | 0:a0bbe9291005 | 332 | int bin=0; |
| stefan1691 | 0:a0bbe9291005 | 333 | if(test) |
| stefan1691 | 0:a0bbe9291005 | 334 | bin=0xff>>(7-shift); |
| stefan1691 | 0:a0bbe9291005 | 335 | else |
| stefan1691 | 0:a0bbe9291005 | 336 | bin=0xff<<(7-shift); |
| stefan1691 | 0:a0bbe9291005 | 337 | for(int i=0; i<8; i++) { |
| stefan1691 | 0:a0bbe9291005 | 338 | int value=chars[c*8+i]; |
| stefan1691 | 0:a0bbe9291005 | 339 | value=value&bin; |
| stefan1691 | 0:a0bbe9291005 | 340 | if(test) { |
| stefan1691 | 0:a0bbe9291005 | 341 | value=value<<(7-shift); |
| stefan1691 | 0:a0bbe9291005 | 342 | value=value&128; |
| stefan1691 | 0:a0bbe9291005 | 343 | regs[i]=regs[i]>>1; |
| stefan1691 | 0:a0bbe9291005 | 344 | } else { |
| stefan1691 | 0:a0bbe9291005 | 345 | value=value>>(7-shift); |
| stefan1691 | 0:a0bbe9291005 | 346 | value=value&1; |
| stefan1691 | 0:a0bbe9291005 | 347 | regs[i]=regs[i]<<1; |
| stefan1691 | 0:a0bbe9291005 | 348 | } |
| stefan1691 | 0:a0bbe9291005 | 349 | regs[i]=regs[i]|value; |
| stefan1691 | 0:a0bbe9291005 | 350 | } |
| stefan1691 | 0:a0bbe9291005 | 351 | } |
| stefan1691 | 0:a0bbe9291005 | 352 | public: |
| stefan1691 | 0:a0bbe9291005 | 353 | LMDriver(PinName msoi, PinName miso, PinName sclk, PinName chip_select); |
| stefan1691 | 0:a0bbe9291005 | 354 | LMDriver(const LMDriver& lm); |
| stefan1691 | 0:a0bbe9291005 | 355 | LMDriver& operator= (const LMDriver& lm); |
| stefan1691 | 0:a0bbe9291005 | 356 | ~LMDriver(); |
| stefan1691 | 0:a0bbe9291005 | 357 | void Setup(); |
| stefan1691 | 0:a0bbe9291005 | 358 | void DisplayChar(char c); |
| stefan1691 | 0:a0bbe9291005 | 359 | void DisplayString(const string& str); |
| stefan1691 | 0:a0bbe9291005 | 360 | void DisplayStringCont(const string& str); |
| stefan1691 | 0:a0bbe9291005 | 361 | void DisplayStringStep(const string& str, bool test=true); |
| stefan1691 | 0:a0bbe9291005 | 362 | void SetSPIFreq(int freq) { |
| stefan1691 | 0:a0bbe9291005 | 363 | if(freq<0) |
| stefan1691 | 0:a0bbe9291005 | 364 | return; |
| stefan1691 | 0:a0bbe9291005 | 365 | this->spi->frequency(freq); |
| stefan1691 | 0:a0bbe9291005 | 366 | } |
| stefan1691 | 0:a0bbe9291005 | 367 | void SetWaitTime(float time, bool test=true) { |
| stefan1691 | 0:a0bbe9291005 | 368 | if(test) wtime=time; |
| stefan1691 | 0:a0bbe9291005 | 369 | else cwtime=time; |
| stefan1691 | 0:a0bbe9291005 | 370 | } |
| stefan1691 | 0:a0bbe9291005 | 371 | void operator=(char c) { |
| stefan1691 | 0:a0bbe9291005 | 372 | DisplayChar(c); |
| stefan1691 | 0:a0bbe9291005 | 373 | } |
| stefan1691 | 0:a0bbe9291005 | 374 | void operator=(const string& str) { |
| stefan1691 | 0:a0bbe9291005 | 375 | DisplayStringCont(str); |
| stefan1691 | 0:a0bbe9291005 | 376 | } |
| stefan1691 | 0:a0bbe9291005 | 377 | void Clear() { |
| stefan1691 | 0:a0bbe9291005 | 378 | zeroFill(); |
| stefan1691 | 0:a0bbe9291005 | 379 | } |
| stefan1691 | 0:a0bbe9291005 | 380 | |
| stefan1691 | 0:a0bbe9291005 | 381 | |
| stefan1691 | 0:a0bbe9291005 | 382 | }; |
| stefan1691 | 0:a0bbe9291005 | 383 | |
| stefan1691 | 0:a0bbe9291005 | 384 | void LMDriver:: DisplayStringStep(const string& str, bool test) |
| stefan1691 | 0:a0bbe9291005 | 385 | { |
| stefan1691 | 0:a0bbe9291005 | 386 | deque<uint8_t> regs; |
| stefan1691 | 0:a0bbe9291005 | 387 | for(int i=0; i<8; i++) |
| stefan1691 | 0:a0bbe9291005 | 388 | regs.push_back(0); |
| stefan1691 | 0:a0bbe9291005 | 389 | |
| stefan1691 | 0:a0bbe9291005 | 390 | displayDeque(regs); |
| stefan1691 | 0:a0bbe9291005 | 391 | |
| stefan1691 | 0:a0bbe9291005 | 392 | for(int i=0; i<str.length(); i++) { |
| stefan1691 | 0:a0bbe9291005 | 393 | for(int j=0; j<=8; j++) { |
| stefan1691 | 0:a0bbe9291005 | 394 | if(j<8) |
| stefan1691 | 0:a0bbe9291005 | 395 | fillDeque(regs,str[i],j,test); |
| stefan1691 | 0:a0bbe9291005 | 396 | else if(j==8) |
| stefan1691 | 0:a0bbe9291005 | 397 | fillDeque(regs,' ',7,test); |
| stefan1691 | 0:a0bbe9291005 | 398 | displayDeque(regs); |
| stefan1691 | 0:a0bbe9291005 | 399 | wait(cwtime); |
| stefan1691 | 0:a0bbe9291005 | 400 | } |
| stefan1691 | 0:a0bbe9291005 | 401 | } |
| stefan1691 | 0:a0bbe9291005 | 402 | } |
| stefan1691 | 0:a0bbe9291005 | 403 | |
| stefan1691 | 0:a0bbe9291005 | 404 | LMDriver& LMDriver:: operator=(const LMDriver& lm) |
| stefan1691 | 0:a0bbe9291005 | 405 | { |
| stefan1691 | 0:a0bbe9291005 | 406 | if(this==&lm) |
| stefan1691 | 0:a0bbe9291005 | 407 | return *this; |
| stefan1691 | 0:a0bbe9291005 | 408 | if(this->spi!=0 && this->cs!=0) |
| stefan1691 | 0:a0bbe9291005 | 409 | deallocate(); |
| stefan1691 | 0:a0bbe9291005 | 410 | allocate(lm); |
| stefan1691 | 0:a0bbe9291005 | 411 | return *this; |
| stefan1691 | 0:a0bbe9291005 | 412 | } |
| stefan1691 | 0:a0bbe9291005 | 413 | |
| stefan1691 | 0:a0bbe9291005 | 414 | LMDriver::LMDriver(const LMDriver& lm) |
| stefan1691 | 0:a0bbe9291005 | 415 | { |
| stefan1691 | 0:a0bbe9291005 | 416 | allocate(lm); |
| stefan1691 | 0:a0bbe9291005 | 417 | } |
| stefan1691 | 0:a0bbe9291005 | 418 | |
| stefan1691 | 0:a0bbe9291005 | 419 | |
| stefan1691 | 0:a0bbe9291005 | 420 | |
| stefan1691 | 0:a0bbe9291005 | 421 | void LMDriver::DisplayStringCont(const string& str) |
| stefan1691 | 0:a0bbe9291005 | 422 | { |
| stefan1691 | 0:a0bbe9291005 | 423 | if(str.length()==0) |
| stefan1691 | 0:a0bbe9291005 | 424 | return; |
| stefan1691 | 0:a0bbe9291005 | 425 | |
| stefan1691 | 0:a0bbe9291005 | 426 | if(str.length()==1) { |
| stefan1691 | 0:a0bbe9291005 | 427 | DisplayChar(str[0]); |
| stefan1691 | 0:a0bbe9291005 | 428 | return; |
| stefan1691 | 0:a0bbe9291005 | 429 | } |
| stefan1691 | 0:a0bbe9291005 | 430 | |
| stefan1691 | 0:a0bbe9291005 | 431 | deque<uint8_t> output; |
| stefan1691 | 0:a0bbe9291005 | 432 | |
| stefan1691 | 0:a0bbe9291005 | 433 | for(int i=0; i<8; i++) |
| stefan1691 | 0:a0bbe9291005 | 434 | output.push_back(0); |
| stefan1691 | 0:a0bbe9291005 | 435 | |
| stefan1691 | 0:a0bbe9291005 | 436 | for(int i=0; i<str.size(); i++) { |
| stefan1691 | 0:a0bbe9291005 | 437 | for(int j=0; j<10; j++) { |
| stefan1691 | 0:a0bbe9291005 | 438 | displayDeque(output); |
| stefan1691 | 0:a0bbe9291005 | 439 | wait(cwtime); |
| stefan1691 | 0:a0bbe9291005 | 440 | output.pop_front(); |
| stefan1691 | 0:a0bbe9291005 | 441 | if(j<2) |
| stefan1691 | 0:a0bbe9291005 | 442 | output.push_back(0); |
| stefan1691 | 0:a0bbe9291005 | 443 | else if(j>=2) |
| stefan1691 | 0:a0bbe9291005 | 444 | output.push_back(*(chars+str[i]*8+(j-2))); |
| stefan1691 | 0:a0bbe9291005 | 445 | } |
| stefan1691 | 0:a0bbe9291005 | 446 | displayDeque(output); |
| stefan1691 | 0:a0bbe9291005 | 447 | } |
| stefan1691 | 0:a0bbe9291005 | 448 | } |
| stefan1691 | 0:a0bbe9291005 | 449 | |
| stefan1691 | 0:a0bbe9291005 | 450 | |
| stefan1691 | 0:a0bbe9291005 | 451 | void LMDriver::DisplayString(const string& str) |
| stefan1691 | 0:a0bbe9291005 | 452 | { |
| stefan1691 | 0:a0bbe9291005 | 453 | if(str.length()==0) |
| stefan1691 | 0:a0bbe9291005 | 454 | return; |
| stefan1691 | 0:a0bbe9291005 | 455 | for(int i=0; i<str.size(); i++) { |
| stefan1691 | 0:a0bbe9291005 | 456 | DisplayChar(str[i]); |
| stefan1691 | 0:a0bbe9291005 | 457 | wait(wtime); |
| stefan1691 | 0:a0bbe9291005 | 458 | } |
| stefan1691 | 0:a0bbe9291005 | 459 | zeroFill(); |
| stefan1691 | 0:a0bbe9291005 | 460 | } |
| stefan1691 | 0:a0bbe9291005 | 461 | |
| stefan1691 | 0:a0bbe9291005 | 462 | void LMDriver::DisplayChar(char c) |
| stefan1691 | 0:a0bbe9291005 | 463 | { |
| stefan1691 | 0:a0bbe9291005 | 464 | if(c>255) |
| stefan1691 | 0:a0bbe9291005 | 465 | return; |
| stefan1691 | 0:a0bbe9291005 | 466 | const uint8_t* array=chars+c*8; |
| stefan1691 | 0:a0bbe9291005 | 467 | writeArray(array); |
| stefan1691 | 0:a0bbe9291005 | 468 | } |
| stefan1691 | 0:a0bbe9291005 | 469 | |
| stefan1691 | 0:a0bbe9291005 | 470 | void LMDriver::Setup() |
| stefan1691 | 0:a0bbe9291005 | 471 | { |
| stefan1691 | 0:a0bbe9291005 | 472 | writeToReg(reg_decodeMode,0x00); |
| stefan1691 | 0:a0bbe9291005 | 473 | writeToReg(reg_intensity,0x0f); |
| stefan1691 | 0:a0bbe9291005 | 474 | writeToReg(reg_scanLimit,0x07); |
| stefan1691 | 0:a0bbe9291005 | 475 | writeToReg(reg_shutdown,0x01); |
| stefan1691 | 0:a0bbe9291005 | 476 | writeToReg(0xff,0x00); |
| stefan1691 | 0:a0bbe9291005 | 477 | zeroFill(); |
| stefan1691 | 0:a0bbe9291005 | 478 | } |
| stefan1691 | 0:a0bbe9291005 | 479 | LMDriver::LMDriver(PinName msoi, PinName miso, PinName sclk,PinName chip_select):spi(0),cs(0) |
| stefan1691 | 0:a0bbe9291005 | 480 | { |
| stefan1691 | 0:a0bbe9291005 | 481 | spi=new SPI(msoi,miso,sclk); |
| stefan1691 | 0:a0bbe9291005 | 482 | spi->format(8,0); |
| stefan1691 | 0:a0bbe9291005 | 483 | freq=1*MHz; |
| stefan1691 | 0:a0bbe9291005 | 484 | spi->frequency(freq); |
| stefan1691 | 0:a0bbe9291005 | 485 | cs= new DigitalOut(chip_select); |
| stefan1691 | 0:a0bbe9291005 | 486 | _miso=miso; |
| stefan1691 | 0:a0bbe9291005 | 487 | _msoi=msoi; |
| stefan1691 | 0:a0bbe9291005 | 488 | _sclk=sclk; |
| stefan1691 | 0:a0bbe9291005 | 489 | _cs=chip_select; |
| stefan1691 | 0:a0bbe9291005 | 490 | wtime=0.5; |
| stefan1691 | 0:a0bbe9291005 | 491 | cwtime=0.1; |
| stefan1691 | 0:a0bbe9291005 | 492 | } |
| stefan1691 | 0:a0bbe9291005 | 493 | LMDriver::~LMDriver() |
| stefan1691 | 0:a0bbe9291005 | 494 | { |
| stefan1691 | 0:a0bbe9291005 | 495 | deallocate(); |
| stefan1691 | 0:a0bbe9291005 | 496 | } |
| stefan1691 | 0:a0bbe9291005 | 497 | |
| stefan1691 | 0:a0bbe9291005 | 498 | #endif |