From 2a29261b591bc2da0ddef38a3cb6906a9d9e9ac0 Mon Sep 17 00:00:00 2001 From: Computer construction kit SmartyKit <42343604+smartykit@users.noreply.github.com> Date: Tue, 21 Mar 2023 22:38:56 +0100 Subject: [PATCH] Delete SmartyKit1_40keysKeyboardDriver.ino Deleted 40 Keys Keyboard .ino file to remove compilation error in Arduino IDE --- .../SmartyKit1_40keysKeyboardDriver.ino | 183 ------------------ 1 file changed, 183 deletions(-) delete mode 100644 SmartyKit 1 basic drivers/SmartyKit1_KeyboardDriverBasic/SmartyKit1_40keysKeyboardDriver.ino diff --git a/SmartyKit 1 basic drivers/SmartyKit1_KeyboardDriverBasic/SmartyKit1_40keysKeyboardDriver.ino b/SmartyKit 1 basic drivers/SmartyKit1_KeyboardDriverBasic/SmartyKit1_40keysKeyboardDriver.ino deleted file mode 100644 index e9d3cc8..0000000 --- a/SmartyKit 1 basic drivers/SmartyKit1_KeyboardDriverBasic/SmartyKit1_40keysKeyboardDriver.ino +++ /dev/null @@ -1,183 +0,0 @@ - /* SmartyKit 1 - 40 keys Keyboard driver v.1.0 - * http://www.smartykit.io/ - * Copyright (C) 2021, Sergey Panarin - * - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ -#undef DEBUG - -const int KEYBOARD_ROWS = 4; -const int KEYBOARD_COLS = 10; - -const int keyboardRowsPins[KEYBOARD_ROWS] = {A2, A3, A4, A5}; -const int keyboardColsPins[KEYBOARD_COLS] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; - -const int latchPin = 2; -const int clockPin = A1; -const int dataPin = A0; - -const int keyReadyPin = 3; -static boolean BIT7flag = false; - -const char cShift = char(0x80); -const char cEnter = char(0x0D); -const char cSpace = char(0x20); -const char cDelete = char(0x7F); - -const unsigned char keyboard[KEYBOARD_ROWS][KEYBOARD_COLS] = -{ - {'1','2','3','4','5','6','7','8','9','0',}, - {'Q','W','E','R','T','Y','U','I','O','P',}, - {'A','S','D','F','G','H','J','K','L', cEnter,}, - {cShift,'Z','X','C','V','B','N', 'M',cSpace,cDelete,}, - }; - -const unsigned char keyboardShift[KEYBOARD_ROWS][KEYBOARD_COLS] = -{ - {'!','@','#','$','%','^','&','*','(',')',}, - {'Q','{','}','[',']','\\','_','-','+','=',}, - {'A','S','D','F','G',':',';','"','\'', cEnter,}, - {cShift,'Z','<','>',',','.','?', '/',cSpace,cDelete,}, - }; - -void setup() { - // put your setup code here, to run once: - for (int i=0; i < KEYBOARD_ROWS; i++) - pinMode(keyboardRowsPins[i], INPUT_PULLUP); - for (int i=0; i < KEYBOARD_COLS; i++) - pinMode(keyboardColsPins[i], OUTPUT); - - - pinMode(keyReadyPin, OUTPUT); - digitalWrite(keyReadyPin, HIGH); - - pinMode(latchPin, OUTPUT); - pinMode(clockPin, OUTPUT); - pinMode(dataPin, OUTPUT); - - #ifdef DEBUG - digitalWrite(latchPin, LOW); - shiftOut(dataPin, clockPin, MSBFIRST, '1'); # hex code 0x31 = 0011.0001b - digitalWrite(latchPin, HIGH); - #endif - - Serial.begin(115200); -} - -void loop() { - - // Read user input if available. - if (Serial.available()){ - char c = Serial.read(); - sendCharToKeyboardPort(c); - } - - // put your main code here, to run repeatedly: - char c = getKey(); - if(c) - { - if (c == cEnter) - Serial.println(); - else - Serial.print(c); - - sendCharToKeyboardPort(c); - } -} - -char getKey() -{ - char c = NULL; - bool bShift = getShift(); - for (int j=0; j < KEYBOARD_COLS; j++) - { - scanCol(j, bShift); - for (int i=KEYBOARD_ROWS-1; i >= 0; i--) //start from bottom-left corner with SHIFT button - { - int val = digitalRead(keyboardRowsPins[i]); - if (val == 0) - { - c = keyboard[i][j]; - if (c == cShift) - c = NULL; - else - { - if (bShift) - c = keyboardShift[i][j]; - } - delay(150); - } - } - } - return c; -} - -bool getShift() -{ - bool bShift = false; - int shiftCol = 0; // first column - int shiftRow = KEYBOARD_ROWS-1; // A row - - scanCol(shiftCol, false); - int val = digitalRead(keyboardRowsPins[shiftRow]); - if (val == 0) - bShift = true; - - return bShift; -} - -void scanCol(int col, bool bShift) -{ - if(bShift) - digitalWrite(keyboardColsPins[0], LOW); - - for (int i=0; i < KEYBOARD_COLS; i++) - { - if (i == col) - digitalWrite(keyboardColsPins[i], LOW); - else - digitalWrite(keyboardColsPins[i], HIGH); - - } -} - - - -void cpuReadsKeyboard(void) -{ - KeyboardBIT7_Disable(); -} - -void KeyboardBIT7_Enable() -{ - digitalWrite(keyReadyPin, HIGH); - BIT7flag = true; -} -void KeyboardBIT7_Disable() -{ - digitalWrite(keyReadyPin, LOW); - BIT7flag = false; -} - -void sendCharToKeyboardPort(char c) -{ -// while(BIT7flag == true) //wait untill the previous char is read by CPU -// delay(5); - - digitalWrite(keyReadyPin, LOW); - digitalWrite(latchPin, LOW); - shiftOut(dataPin, clockPin, MSBFIRST, c); - digitalWrite(latchPin, HIGH); - delay(30); - digitalWrite(keyReadyPin, HIGH); - KeyboardBIT7_Enable(); -}