F
fastbike
Guest
Привіт,
Я читаю 4 х 7 матриці мембрани клавіатури.Я використовую PIC16F88 і використання PortB4: 7 шпильки для колон і PortA0: 7 шпильки для рядків.
Я встановив свій код встановлення колонок шпильки в якості внеску, високо внутрішнім pullups.Рядки встановити в якості виходу і встановити його в низькому рівні.
У моїй основний цикл код я переглядаю PortB4: 7 шукаєте низькі колонці пін - Ідея полягає в тому, коли натиснута клавіша контактний PORTB піде низькому рівні.
Якщо це відбудеться, я потім встановити цей стовпець у якості вихідного (низька), встановити в якості вхідних даних рядків (високо піднятою із зовнішніми pullups) і знайдіть рядок, яка є низькою.
Це добре працює.
Моя проблема полягає в наступному:
Я хочу використовувати команду SLEEP, щоб я міг повернути ПІК с для економії енергії акумулятора.Я хочу прокинутися його за допомогою переривання на функцію PORTB.
Однак, коли я дозволити біт RBIE, мій код перестає працювати або працює з перебоями.
Я очищення прапор RBIF в переривання процедури.Я пробував налаштування 50mSec затримки debounce ключ, перш ніж погасити прапор, але знайти це мало що міняє.
Хіба я переглянув що-небудь просто?
Я читаю 4 х 7 матриці мембрани клавіатури.Я використовую PIC16F88 і використання PortB4: 7 шпильки для колон і PortA0: 7 шпильки для рядків.
Я встановив свій код встановлення колонок шпильки в якості внеску, високо внутрішнім pullups.Рядки встановити в якості виходу і встановити його в низькому рівні.
У моїй основний цикл код я переглядаю PortB4: 7 шукаєте низькі колонці пін - Ідея полягає в тому, коли натиснута клавіша контактний PORTB піде низькому рівні.
Якщо це відбудеться, я потім встановити цей стовпець у якості вихідного (низька), встановити в якості вхідних даних рядків (високо піднятою із зовнішніми pullups) і знайдіть рядок, яка є низькою.
Це добре працює.
Моя проблема полягає в наступному:
Я хочу використовувати команду SLEEP, щоб я міг повернути ПІК с для економії енергії акумулятора.Я хочу прокинутися його за допомогою переривання на функцію PORTB.
Однак, коли я дозволити біт RBIE, мій код перестає працювати або працює з перебоями.
Я очищення прапор RBIF в переривання процедури.Я пробував налаштування 50mSec затримки debounce ключ, перш ніж погасити прапор, але знайти це мало що міняє.
Хіба я переглянув що-небудь просто?