Перейти к содержанию
    

LPC824 keypad

Доброго времени суток.

Я мало знаком со схемотехникой, но передо мной поставлена задача - написание keypad для LPC824 контроллера

там 18 кнопок. 6 строк и 3 столбца

Для теста хочу обработать хотябы 1 кнопку. Первая строка это gpio 17 первый столбец это gpio 2 (Порт только один это порт 0)

Значит для 17 pin назначил DIR input значение 0

Для 2 pin назначил output значение 1

while(1)
{
  read value pin 17
  if(value == 1)
{
         write to uart (button press)
   set value pin 17 = 0; //типо скинули
  }
}

 

Чет так не работает сколько не юлозел железкой по кнопке . GPIO_Init() есть

Есть еще там как я понял встроенный гистерезис для pin-а

 

Можно еще как то по прерываниию это сделать если есть примеры пришлите пожалуйста буду очень благодарен

Мне надо фиксировать нажатие отжатие

Пользуюсь IDE LPCXpresso и lib82_chip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго времени суток.

Я мало знаком со схемотехникой, но передо мной поставлена задача - написание keypad для LPC824 контроллера

там 18 кнопок. 6 строк и 3 столбца

Для теста хочу обработать хотябы 1 кнопку. Первая строка это gpio 17 первый столбец это gpio 2 (Порт только один это порт 0)

 

А если же использовать старый добрый GPIO то вы просто сканируете эти столбцы -- сам дрыгаете ножками и смотрите данные на входе.

В качестве примеров использования рекомендую посмотреть его собрата -- LPC812 или LPC11u68 -- может там есть примеры. Почему рекомендую их потому что они вышли примерно в это же время и поэтому АПИ и аппаратная часть думаю похожи поэтому и код дёрганья ножками и примеры скорее тоже.

 

 

теперь по теме в контроллере есть умная штука - SCT -- умный счётчик -- которая может по входным сигналам вырабатывать прерывания и генерировать

различные меандры -- причём без участия процессора -- на выходах рекомендую посмореть видео на YOUTUBE --

 

Сорри за :bb-offtopic:

 

Это очень интересный контроллер от NXP и паябельный корпус есть -- некий аналог по числу ножек и возможностяем meg-e

но к сожалению достать я его по приемлемой цене никак не смог ( цена его при заказе от 1000 шт что то в районе 2баксов или того меньше

а вот купить 10 штук в России я так ничего подходящего не нашёл. Я бы взял 812ый с Aliexpress но он без АЦП (. может подскажет кто.

Брать 30долларовый MAX824 из-за 2$ контроллера жаба душит )).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это очень интересный контроллер от NXP и паябельный корпус есть -- некий аналог по числу ножек и возможностяем meg-e

но к сожалению достать я его по приемлемой цене никак не смог ( цена его при заказе от 1000 шт что то в районе 2баксов или того меньше

а вот купить 10 штук в России я так ничего подходящего не нашёл. Я бы взял 812ый с Aliexpress но он без АЦП (. может подскажет кто.

Брать 30долларовый MAX824 из-за 2$ контроллера жаба душит )).

Элитан - по 189р при заказе 10 шт в корпусе TSSOP-20 как хотели,

Изменено пользователем sherr

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я настроил один пин на прерывание если на входе у него будет 0 Далее в прерыании перебираю столбцы и смотрю все строки

   
void PIN_INT0_IRQHandler(void) 
{
    uint32_t k;
    k = Chip_PININT_GetIntStatus(LPC_PININT);
    if (k & PININTCH0)
    {
///my code
    }
}
//////////////////////////////////////////// settings pin and interrapt
            Chip_SYSCTL_SetPinInterrupt(0, 17);
    Chip_PININT_ClearIntStatus(LPC_PININT, PININTCH0);
    Chip_PININT_SetPinModeEdge(LPC_PININT, PININTCH0);
    Chip_PININT_EnableIntLow(LPC_PININT, PININTCH0);
    NVIC_EnableIRQ(PIN_INT0_IRQn);
/////////////////////////////////////////

Но таких pin-ов у меня 6. Я могу сделать 6 одинаковых прерываний, но как то это не по человечьи. Надо чтобы было 1 прерывание для всех pin-ов. Как это делается в микроконтроллерах, должна быть какаето группировка. В LPC824 есть механизм pattern match engine- что это такое ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...