mne_nado 0 16 февраля, 2016 Опубликовано 16 февраля, 2016 · Жалоба Доброго времени суток. Я мало знаком со схемотехникой, но передо мной поставлена задача - написание 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SyncLair 0 18 февраля, 2016 Опубликовано 18 февраля, 2016 · Жалоба Доброго времени суток. Я мало знаком со схемотехникой, но передо мной поставлена задача - написание 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$ контроллера жаба душит )). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sherr 0 18 февраля, 2016 Опубликовано 18 февраля, 2016 (изменено) · Жалоба Это очень интересный контроллер от NXP и паябельный корпус есть -- некий аналог по числу ножек и возможностяем meg-e но к сожалению достать я его по приемлемой цене никак не смог ( цена его при заказе от 1000 шт что то в районе 2баксов или того меньше а вот купить 10 штук в России я так ничего подходящего не нашёл. Я бы взял 812ый с Aliexpress но он без АЦП (. может подскажет кто. Брать 30долларовый MAX824 из-за 2$ контроллера жаба душит )). Элитан - по 189р при заказе 10 шт в корпусе TSSOP-20 как хотели, Изменено 18 февраля, 2016 пользователем sherr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mne_nado 0 18 февраля, 2016 Опубликовано 18 февраля, 2016 · Жалоба Я настроил один пин на прерывание если на входе у него будет 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- что это такое ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться