Offline
Newbie
Karma: 1
Posts: 27
|
 |
« on: October 03, 2012, 05:36:17 pm » |
HI I am having problems with my project. I want my arduino to take input from a keyboard (ps2) and display it on my nokia 5110 lcd. I could get them both to work 100% alone. However, when i put their code together i get an error. This is the the error; "no matching function for call to 'PS2Keyboard::Begin(constint&, constint&)'" this is my code put together #define PIN_SCE 7 #define PIN_RESET 6 #define PIN_DC 5 #define PIN_SDIN 4 #define PIN_SCLK 3 int ledlight = 13 #define LCD_C LOW #define LCD_D HIGH
#define LCD_X 84 #define LCD_Y 48 #include <PS2Keyboard.h>
const int DataPin = 8; const int IRQpin = 2; PS2Keyboard keyboard; static const byte ASCII[][5] = { {0x00, 0x00, 0x00, 0x00, 0x00} // 20 ,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 ! ,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 " ,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 # ,{0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $ ,{0x23, 0x13, 0x08, 0x64, 0x62} // 25 % ,{0x36, 0x49, 0x55, 0x22, 0x50} // 26 & ,{0x00, 0x05, 0x03, 0x00, 0x00} // 27 ' ,{0x00, 0x1c, 0x22, 0x41, 0x00} // 28 ( ,{0x00, 0x41, 0x22, 0x1c, 0x00} // 29 ) ,{0x14, 0x08, 0x3e, 0x08, 0x14} // 2a * ,{0x08, 0x08, 0x3e, 0x08, 0x08} // 2b + ,{0x00, 0x50, 0x30, 0x00, 0x00} // 2c , ,{0x08, 0x08, 0x08, 0x08, 0x08} // 2d - ,{0x00, 0x60, 0x60, 0x00, 0x00} // 2e . ,{0x20, 0x10, 0x08, 0x04, 0x02} // 2f / ,{0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0 ,{0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1 ,{0x42, 0x61, 0x51, 0x49, 0x46} // 32 2 ,{0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3 ,{0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4 ,{0x27, 0x45, 0x45, 0x45, 0x39} // 35 5 ,{0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6 ,{0x01, 0x71, 0x09, 0x05, 0x03} // 37 7 ,{0x36, 0x49, 0x49, 0x49, 0x36} // 38 8 ,{0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9 ,{0x00, 0x36, 0x36, 0x00, 0x00} // 3a : ,{0x00, 0x56, 0x36, 0x00, 0x00} // 3b ; ,{0x08, 0x14, 0x22, 0x41, 0x00} // 3c < ,{0x14, 0x14, 0x14, 0x14, 0x14} // 3d = ,{0x00, 0x41, 0x22, 0x14, 0x08} // 3e > ,{0x02, 0x01, 0x51, 0x09, 0x06} // 3f ? ,{0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @ ,{0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A ,{0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B ,{0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C ,{0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D ,{0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E ,{0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F ,{0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G ,{0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H ,{0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I ,{0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J ,{0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K ,{0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L ,{0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M ,{0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N ,{0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O ,{0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P ,{0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q ,{0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R ,{0x46, 0x49, 0x49, 0x49, 0x31} // 53 S ,{0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T ,{0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U ,{0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V ,{0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W ,{0x63, 0x14, 0x08, 0x14, 0x63} // 58 X ,{0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y ,{0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z ,{0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [ ,{0x02, 0x04, 0x08, 0x10, 0x20} // 5c ¥ ,{0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ] ,{0x04, 0x02, 0x01, 0x02, 0x04} // 5e ^ ,{0x40, 0x40, 0x40, 0x40, 0x40} // 5f _ ,{0x00, 0x01, 0x02, 0x04, 0x00} // 60 ` ,{0x20, 0x54, 0x54, 0x54, 0x78} // 61 a ,{0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b ,{0x38, 0x44, 0x44, 0x44, 0x20} // 63 c ,{0x38, 0x44, 0x44, 0x48, 0x7f} // 64 d ,{0x38, 0x54, 0x54, 0x54, 0x18} // 65 e ,{0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f ,{0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g ,{0x7f, 0x08, 0x04, 0x04, 0x78} // 68 h ,{0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i ,{0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j ,{0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k ,{0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l ,{0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m ,{0x7c, 0x08, 0x04, 0x04, 0x78} // 6e n ,{0x38, 0x44, 0x44, 0x44, 0x38} // 6f o ,{0x7c, 0x14, 0x14, 0x14, 0x08} // 70 p ,{0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q ,{0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r ,{0x48, 0x54, 0x54, 0x54, 0x20} // 73 s ,{0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t ,{0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u ,{0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v ,{0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w ,{0x44, 0x28, 0x10, 0x28, 0x44} // 78 x ,{0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y ,{0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z ,{0x00, 0x08, 0x36, 0x41, 0x00} // 7b { ,{0x00, 0x00, 0x7f, 0x00, 0x00} // 7c | ,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d } ,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ← ,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f → };
void LcdCharacter(char character) { LcdWrite(LCD_D, 0x00); for (int index = 0; index < 5; index++) { LcdWrite(LCD_D, ASCII[character - 0x20][index]); } LcdWrite(LCD_D, 0x00); }
void LcdClear(void) { for (int index = 0; index < LCD_X * LCD_Y / 8; index++) { LcdWrite(LCD_D, 0x00); } }
void LcdInitialise(void) { pinMode(PIN_SCE, OUTPUT); pinMode(PIN_RESET, OUTPUT); pinMode(PIN_DC, OUTPUT); pinMode(PIN_SDIN, OUTPUT); pinMode(PIN_SCLK, OUTPUT); digitalWrite(PIN_RESET, LOW); digitalWrite(PIN_RESET, HIGH); LcdWrite(LCD_C, 0x21 ); // LCD Extended Commands. LcdWrite(LCD_C, 0xB1 ); // Set LCD Vop (Contrast). LcdWrite(LCD_C, 0x04 ); // Set Temp coefficent. //0x04 LcdWrite(LCD_C, 0x14 ); // LCD bias mode 1:48. //0x13 LcdWrite(LCD_C, 0x0C ); // LCD in normal mode. LcdWrite(LCD_C, 0x20 ); LcdWrite(LCD_C, 0x0C ); }
void LcdString(char *characters) { while (*characters) { LcdCharacter(*characters++); } }
void LcdWrite(byte dc, byte data) { digitalWrite(PIN_DC, dc); digitalWrite(PIN_SCE, LOW); shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data); digitalWrite(PIN_SCE, HIGH); }
void setup(void) { delay(1000); keyboard.begin(DataPin, IRQpin); LcdInitialise(); LcdClear(); LcdString("Hello World!"); }
void loop(void) { if (keyboard.available()) { // read the next key char c = keyboard.read(); // check for some of the special keys if (c == PS2_ENTER) { LcdStringLcdStringln(); } else if (c == PS2_TAB) { LcdString("[Tab]"); } else if (c == PS2_ESC) { LcdString("[ESC]"); } else if (c == PS2_PAGEDOWN) { LcdString("[PgDn]"); } else if (c == PS2_PAGEUP) { LcdString("[PgUp]"); } else if (c == PS2_LEFTARROW) { LcdString("[Left]"); } else if (c == PS2_RIGHTARROW) { LcdString("[Right]"); } else if (c == PS2_UPARROW) { LcdString("[Up]"); } else if (c == PS2_DOWNARROW) { LcdString("[Down]"); } else if (c == PS2_DELETE) { LcdString("[Del]"); } else { // otherwise, just print all normal characters LcdString(c); } }
|
|
|
|
|
Logged
|
|
|
|
|
Global Moderator
Dallas
Offline
Shannon Member
Karma: 120
Posts: 10201
|
 |
« Reply #1 on: October 03, 2012, 05:50:15 pm » |
void setup(void) { delay(1000); keyboard.begin(DataPin, IRQpin);http://www.arduino.cc/playground/Main/PS2KeyboardLooks like keyboard.begin takes a single parameter not two.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 1
Posts: 27
|
 |
« Reply #2 on: October 03, 2012, 07:26:06 pm » |
Thanks, That does not fix the problem though
|
|
|
|
|
Logged
|
|
|
|
|
Global Moderator
Dallas
Offline
Shannon Member
Karma: 120
Posts: 10201
|
 |
« Reply #3 on: October 03, 2012, 07:31:20 pm » |
After removing the second parameter you are still getting the error "no matching function for call to 'PS2Keyboard::Begin(constint&, constint&)'"?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 1
Posts: 27
|
 |
« Reply #4 on: October 03, 2012, 07:57:04 pm » |
yeah, well sort of instead of saying "no matching function for call to 'PS2Keyboard::Begin(constint&, constint&)'" it says "no matching function for call to 'PS2Keyboard::Begin(constint&)'"........... Second constant is removed
|
|
|
|
|
Logged
|
|
|
|
|
Global Moderator
Dallas
Offline
Shannon Member
Karma: 120
Posts: 10201
|
 |
« Reply #5 on: October 03, 2012, 08:28:28 pm » |
I will continue helping you but only if you post ALL OF THE ERRORS instead of just one that catches your eye.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 1
Posts: 27
|
 |
« Reply #6 on: October 03, 2012, 09:44:30 pm » |
ok if you are asking for all the errors that show up under the main one here they are In file included from Lcd_screen___keyboard.cpp:21: C:\Documents and Settings\Albert\Desktop\arduino-1.0.1\libraries\PS2Keyboard/PS2Keyboard.h:168: error: expected ',' or ';' before 'typedef' C:\Documents and Settings\Albert\Desktop\arduino-1.0.1\libraries\PS2Keyboard/PS2Keyboard.h:173: error: expected constructor, destructor, or type conversion before ';' token C:\Documents and Settings\Albert\Desktop\arduino-1.0.1\libraries\PS2Keyboard/PS2Keyboard.h:176: error: 'PS2Keymap_t' does not name a type C:\Documents and Settings\Albert\Desktop\arduino-1.0.1\libraries\PS2Keyboard/PS2Keyboard.h:177: error: 'PS2Keymap_t' does not name a type C:\Documents and Settings\Albert\Desktop\arduino-1.0.1\libraries\PS2Keyboard/PS2Keyboard.h:197: error: expected ',' or '...' before '&' token C:\Documents and Settings\Albert\Desktop\arduino-1.0.1\libraries\PS2Keyboard/PS2Keyboard.h:197: error: ISO C++ forbids declaration of 'PS2Keymap_t' with no type Lcd_screen___keyboard.cpp: In function 'void setup()': Lcd_screen___keyboard:172: error: no matching function for call to 'PS2Keyboard::begin(const int&, const int&)' C:\Documents and Settings\Albert\Desktop\arduino-1.0.1\libraries\PS2Keyboard/PS2Keyboard.h:197: note: candidates are: static void PS2Keyboard::begin(uint8_t, uint8_t, int) Lcd_screen___keyboard.cpp: In function 'void loop()': Lcd_screen___keyboard:186: error: 'LcdStringln' was not declared in this scope Lcd_screen___keyboard:208: error: invalid conversion from 'char' to 'char*' Lcd_screen___keyboard:208: error: initializing argument 1 of 'void LcdString(char*)'
|
|
|
|
|
Logged
|
|
|
|
|
Global Moderator
Dallas
Offline
Shannon Member
Karma: 120
Posts: 10201
|
 |
« Reply #7 on: October 03, 2012, 10:34:15 pm » |
#define PIN_SCE 7 #define PIN_RESET 6 #define PIN_DC 5 #define PIN_SDIN 4 #define PIN_SCLK 3 int ledlight = 13 <<<<<< Semicolon is missing #define LCD_C LOW #define LCD_D HIGH
|
|
|
|
|
Logged
|
|
|
|
|
Seattle, WA USA
Offline
Brattain Member
Karma: 316
Posts: 35593
Seattle, WA USA
|
 |
« Reply #8 on: October 04, 2012, 05:38:13 am » |
C:\Documents and Settings\Albert\Desktop\arduino-1.0.1\libraries\PS2Keyboard/PS2Keyboard.h Your life will be a lot easier when you learn to download libraries to the correct place. The arduino-1.0.1\libraries folder is ONLY for libraries delivered with the IDE. On any system that understood from the get-go security, that libraries folder would be read-only.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 1
Posts: 27
|
 |
« Reply #9 on: October 04, 2012, 11:06:09 am » |
Mr. Coding Badly, nice catch i added the semicolon but now i have a different error, the new error is "to few arguments to function 'void LcdStrin(char *characters)'" the rest of the errors are Lcd_screen___keyboard.cpp: In function 'void loop()': Lcd_screen___keyboard:154: error: too few arguments to function 'void LcdString(char*)' Lcd_screen___keyboard:186: error: at this point in file Lcd_screen___keyboard:208: error: invalid conversion from 'char' to 'char*' Lcd_screen___keyboard:208: error: initializing argument 1 of 'void LcdString(char*)' Mr. PaulS, where should i place my libraries than? I always thought you put them there, so far it has not caused me anyproblems
|
|
|
|
|
Logged
|
|
|
|
|
Seattle, WA USA
Offline
Brattain Member
Karma: 316
Posts: 35593
Seattle, WA USA
|
 |
« Reply #10 on: October 04, 2012, 11:28:31 am » |
where should i place my libraries than? I always thought you put them there, so far it has not caused me anyproblems What will happen when version 1.0.2 is released. Absolutely none of your code will work, until you download all the libraries again. Will you remember where you got them? In the folder where you store your sketches, there should be a folder called libraries. If not, create one. Then, move all the libraries you have downloaded there. That way, they will still be available after you install 1.0.2. LcdString(c); The LcdString function takes a string (a NULL terminated array of chars, not a single char. Either create a 2 element array, and put c in the first element and NULL in the second, or call LcdCharacter() instead.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 1
Posts: 27
|
 |
« Reply #11 on: October 04, 2012, 07:50:20 pm » |
how would i create a 2 element array ? Could you please ellaborate, i am still a noob in coding .
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 7
Posts: 397
|
 |
« Reply #12 on: October 05, 2012, 12:50:31 am » |
char two_character_string[2];
// Nul terminate functions looking for c strings absolutely require this- // Otherwise it will spin through memory until it *does* find a '\0' two_character_string[1] = '\0';
// store my character, c two_character_string[0] = c;
LCDString(two_character_string);
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 1
Posts: 27
|
 |
« Reply #13 on: October 05, 2012, 01:06:41 pm » |
ok, thanks keith, when i put that in get another error, Lcd_screen___keyboard:20: error: expected constructor, destructor, or type conversion before '=' token Lcd_screen___keyboard:23: error: expected constructor, destructor, or type conversion before '=' token Lcd_screen___keyboard.cpp: In function 'void loop()': Lcd_screen___keyboard:203: error: 'LCDString' was not declared in this scope Update Full code #define PIN_SCE 7 #define PIN_RESET 6 #define PIN_DC 5 #define PIN_SDIN 4 #define PIN_SCLK 3
#define LCD_C LOW #define LCD_D HIGH
#define LCD_X 84 #define LCD_Y 48 #include <PS2Keyboard.h>
const int DataPin = 8; const int IRQpin = 2; char two_character_string[2];
// Nul terminate functions looking for c strings absolutely require this- // Otherwise it will spin through memory until it *does* find a '\0' two_character_string[1] = '\0';
// store my character, c two_character_string[0] = c; PS2Keyboard keyboard; static const byte ASCII[][5] = { {0x00, 0x00, 0x00, 0x00, 0x00} // 20 ,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 ! ,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 " ,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 # ,{0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $ ,{0x23, 0x13, 0x08, 0x64, 0x62} // 25 % ,{0x36, 0x49, 0x55, 0x22, 0x50} // 26 & ,{0x00, 0x05, 0x03, 0x00, 0x00} // 27 ' ,{0x00, 0x1c, 0x22, 0x41, 0x00} // 28 ( ,{0x00, 0x41, 0x22, 0x1c, 0x00} // 29 ) ,{0x14, 0x08, 0x3e, 0x08, 0x14} // 2a * ,{0x08, 0x08, 0x3e, 0x08, 0x08} // 2b + ,{0x00, 0x50, 0x30, 0x00, 0x00} // 2c , ,{0x08, 0x08, 0x08, 0x08, 0x08} // 2d - ,{0x00, 0x60, 0x60, 0x00, 0x00} // 2e . ,{0x20, 0x10, 0x08, 0x04, 0x02} // 2f / ,{0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0 ,{0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1 ,{0x42, 0x61, 0x51, 0x49, 0x46} // 32 2 ,{0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3 ,{0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4 ,{0x27, 0x45, 0x45, 0x45, 0x39} // 35 5 ,{0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6 ,{0x01, 0x71, 0x09, 0x05, 0x03} // 37 7 ,{0x36, 0x49, 0x49, 0x49, 0x36} // 38 8 ,{0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9 ,{0x00, 0x36, 0x36, 0x00, 0x00} // 3a : ,{0x00, 0x56, 0x36, 0x00, 0x00} // 3b ; ,{0x08, 0x14, 0x22, 0x41, 0x00} // 3c < ,{0x14, 0x14, 0x14, 0x14, 0x14} // 3d = ,{0x00, 0x41, 0x22, 0x14, 0x08} // 3e > ,{0x02, 0x01, 0x51, 0x09, 0x06} // 3f ? ,{0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @ ,{0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A ,{0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B ,{0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C ,{0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D ,{0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E ,{0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F ,{0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G ,{0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H ,{0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I ,{0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J ,{0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K ,{0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L ,{0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M ,{0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N ,{0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O ,{0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P ,{0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q ,{0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R ,{0x46, 0x49, 0x49, 0x49, 0x31} // 53 S ,{0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T ,{0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U ,{0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V ,{0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W ,{0x63, 0x14, 0x08, 0x14, 0x63} // 58 X ,{0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y ,{0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z ,{0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [ ,{0x02, 0x04, 0x08, 0x10, 0x20} // 5c ¥ ,{0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ] ,{0x04, 0x02, 0x01, 0x02, 0x04} // 5e ^ ,{0x40, 0x40, 0x40, 0x40, 0x40} // 5f _ ,{0x00, 0x01, 0x02, 0x04, 0x00} // 60 ` ,{0x20, 0x54, 0x54, 0x54, 0x78} // 61 a ,{0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b ,{0x38, 0x44, 0x44, 0x44, 0x20} // 63 c ,{0x38, 0x44, 0x44, 0x48, 0x7f} // 64 d ,{0x38, 0x54, 0x54, 0x54, 0x18} // 65 e ,{0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f ,{0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g ,{0x7f, 0x08, 0x04, 0x04, 0x78} // 68 h ,{0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i ,{0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j ,{0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k ,{0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l ,{0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m ,{0x7c, 0x08, 0x04, 0x04, 0x78} // 6e n ,{0x38, 0x44, 0x44, 0x44, 0x38} // 6f o ,{0x7c, 0x14, 0x14, 0x14, 0x08} // 70 p ,{0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q ,{0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r ,{0x48, 0x54, 0x54, 0x54, 0x20} // 73 s ,{0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t ,{0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u ,{0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v ,{0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w ,{0x44, 0x28, 0x10, 0x28, 0x44} // 78 x ,{0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y ,{0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z ,{0x00, 0x08, 0x36, 0x41, 0x00} // 7b { ,{0x00, 0x00, 0x7f, 0x00, 0x00} // 7c | ,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d } ,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ← ,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f → }; void gotoXY(int x, int y) { LcdWrite(0, 0x80 | x); // Column. LcdWrite(0, 0x40 | y); // Row. ? }
void LcdCharacter(char character) { LcdWrite(LCD_D, 0x00); for (int index = 0; index < 5; index++) { LcdWrite(LCD_D, ASCII[character - 0x20][index]); } LcdWrite(LCD_D, 0x00); }
void LCDClear(void) { for (int index = 0 ; index < (LCD_X * LCD_Y ) ; index++) LcdWrite(LCD_D, 0x00); gotoXY(0, 0); //After we clear the display, return to the home position }
void LcdInitialise(void) { pinMode(PIN_SCE, OUTPUT); pinMode(PIN_RESET, OUTPUT); pinMode(PIN_DC, OUTPUT); pinMode(PIN_SDIN, OUTPUT); pinMode(PIN_SCLK, OUTPUT); digitalWrite(PIN_RESET, LOW); digitalWrite(PIN_RESET, HIGH); LcdWrite(LCD_C, 0x21 ); // LCD Extended Commands. LcdWrite(LCD_C, 0xB1 ); // Set LCD Vop (Contrast). LcdWrite(LCD_C, 0x04 ); // Set Temp coefficent. //0x04 LcdWrite(LCD_C, 0x14 ); // LCD bias mode 1:48. //0x13 LcdWrite(LCD_C, 0x0C ); // LCD in normal mode. LcdWrite(LCD_C, 0x20 ); LcdWrite(LCD_C, 0x0C ); }
void LcdCharacter(char *characters) { while (*characters) { LcdCharacter(*characters++); } }
void LcdWrite(byte dc, byte data) { digitalWrite(PIN_DC, dc); digitalWrite(PIN_SCE, LOW); shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data); digitalWrite(PIN_SCE, HIGH); }
void setup(void) { keyboard.begin(DataPin, IRQpin); LcdInitialise(); LCDClear(); LcdCharacter("Ready!"); }
void loop(void) { if (keyboard.available()) { // read the next key char c = keyboard.read(); // check for some of the special keys if (c == PS2_ENTER) { } else if (c == PS2_TAB) { LcdCharacter("[Tab]"); } else { // otherwise, just print all normal characters LCDString(two_character_string); }
} }
|
|
|
|
|
Logged
|
|
|
|
|
Leeds, UK
Offline
God Member
Karma: 35
Posts: 989
Once the magic blue smoke is released, it won't go back in!
|
 |
« Reply #14 on: October 05, 2012, 02:40:29 pm » |
char two_character_string[2];
//You cant do this outside a function! two_character_string[1] = '\0'; two_character_string[0] = c; It should be this: char two_character_string[2] = "c"; or this: char two_character_string[2] = {'c',0}; or this: char two_character_string[2] = {'c','\0'};
|
|
|
|
|
Logged
|
~Tom~
|
|
|
|
|