Может ли Serial.println повлиять на свой аргумент? ⇐ C++
-
Anonymous
Может ли Serial.println повлиять на свой аргумент?
Этот скрипт считывает нажатия клавиш с часов и вывода данных клавиатуры PS/2. Программа работает хорошо, за исключением клавиши CapsLock. При нажатии CapsLock отправляется пять кодов, но достаточно получить только первый код. Если удалить строку «Serial.println(key)», программа перестанет работать после нажатия capsLock. Он получает неправильные коды.
#define clock_pin 6 #define data_pin 7 бул старыйVal6; ключ uint16_t = 0; длина ключа_байта = 0; bool выпущен = ложь; bool fastRead(uint8_t pin) { //работает быстрее, чем digitalRead если (контакт < 8) вернуть bitRead(PIND, контакт); иначе, если (контакт < 14) вернуть bitRead(PINB, контакт - 8); иначе, если (контакт < 20) вернуть bitRead(PINC, контакт - 14); } недействительная настройка() { Serial.begin(115200); ключ = 0; oldVal6 = fastRead( clock_pin); } недействительный цикл() { if (fastRead( clock_pin) != oldVal6) { oldVal6 = !oldVal6; если (oldVal6 == 0) { ключ = (ключ
Этот скрипт считывает нажатия клавиш с часов и вывода данных клавиатуры PS/2. Программа работает хорошо, за исключением клавиши CapsLock. При нажатии CapsLock отправляется пять кодов, но достаточно получить только первый код. Если удалить строку «Serial.println(key)», программа перестанет работать после нажатия capsLock. Он получает неправильные коды.
#define clock_pin 6 #define data_pin 7 бул старыйVal6; ключ uint16_t = 0; длина ключа_байта = 0; bool выпущен = ложь; bool fastRead(uint8_t pin) { //работает быстрее, чем digitalRead если (контакт < 8) вернуть bitRead(PIND, контакт); иначе, если (контакт < 14) вернуть bitRead(PINB, контакт - 8); иначе, если (контакт < 20) вернуть bitRead(PINC, контакт - 14); } недействительная настройка() { Serial.begin(115200); ключ = 0; oldVal6 = fastRead( clock_pin); } недействительный цикл() { if (fastRead( clock_pin) != oldVal6) { oldVal6 = !oldVal6; если (oldVal6 == 0) { ключ = (ключ
Мобильная версия