реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> GPIO Read(), ReadSingle(), Как правильно считать GPIO у Wavecom Fastrack(Q2687).
kav
сообщение Feb 18 2009, 09:32
Сообщение #1





Группа: Новичок
Сообщений: 10
Регистрация: 9-12-08
Пользователь №: 42 313



Здравствуйте.
У кого есть опыт работы с GPIO? Меня интересует как считать уровень с конкретного GPIO.
Командами AT я знаю как это сделать и это получается, а как это сделать в приложении, которое будет крутиться в Wavecom, что-то смутно представляю.
В хелпах сказано что это можно сделать через Read() и ReadSingle().
Но, на практике, при использовании этих функций, выдаются ошибки, с которыми очень тяжело разобраться.
Есть ли у кого-нибудь примеры, поделитесь пожалуйста.
Пытались разобраться с примером в OpenAT,под названием Telemetry, но там как раз нет того, что нам надо.
Заранее всем благодарны.
Go to the top of the page
 
+Quote Post
vasku
сообщение Feb 19 2009, 06:04
Сообщение #2





Группа: Новичок
Сообщений: 7
Регистрация: 18-04-08
Из: Россия, Екатеринбург
Пользователь №: 36 854



примерчик проверки состояния

Fastrack Supreme 20 R71
wmadl_6.01.07.0.0
----
CODE
#define GPIO_IN_PIN ADL_IO_GPIO|22

// конфигурация пина ожидания данных
adl_ioDefs_t GpioInConfig;
// пин ожидания данных
s32 GpioHandleIn;


void InitSensGpio(void)
{
GpioInConfig = GPIO_IN_PIN | ADL_IO_DIR_IN | ADL_IO_LEV_LOW;
GpioHandleIn = adl_ioSubscribe(1,&GpioInConfig,0,0,0);
if (GpioHandleIn < 0) {
/* error subscribe */
#ifdef __PTRACE__
wip_debug("InitSensGpio : error subscribe GpioHandleIn\n ---------- %d ---------- \n",GpioHandleIn);
#endif /*__PTRACE__*/
}
}
bool CanDo(void)
{
return (adl_ioReadSingle (GpioHandleIn, &GpioInConfig )==1);
}
void DisableSensGpio(void)
{
if (GpioHandleIn >= 0) adl_ioUnsubscribe(GpioHandleIn);
}

void main(void)
{
InitSensGpio();
...
if (CanDo()) {
//
}
...
DisableSensGpio();
}
Go to the top of the page
 
+Quote Post
kav
сообщение Feb 20 2009, 05:50
Сообщение #3





Группа: Новичок
Сообщений: 10
Регистрация: 9-12-08
Пользователь №: 42 313



Спасибо вам, Vasku, за помощь, ваш пример мне очень помог и главное, вовремя.


Цитата(vasku @ Feb 19 2009, 13:04) *
примерчик проверки состояния

Fastrack Supreme 20 R71
wmadl_6.01.07.0.0
----
CODE
#define GPIO_IN_PIN ADL_IO_GPIO|22

// конфигурация пина ожидания данных
adl_ioDefs_t GpioInConfig;
// пин ожидания данных
s32 GpioHandleIn;


void InitSensGpio(void)
{
GpioInConfig = GPIO_IN_PIN | ADL_IO_DIR_IN | ADL_IO_LEV_LOW;
GpioHandleIn = adl_ioSubscribe(1,&GpioInConfig,0,0,0);
if (GpioHandleIn < 0) {
/* error subscribe */
#ifdef __PTRACE__
wip_debug("InitSensGpio : error subscribe GpioHandleIn\n ---------- %d ---------- \n",GpioHandleIn);
#endif /*__PTRACE__*/
}
}
bool CanDo(void)
{
return (adl_ioReadSingle (GpioHandleIn, &GpioInConfig )==1);
}
void DisableSensGpio(void)
{
if (GpioHandleIn >= 0) adl_ioUnsubscribe(GpioHandleIn);
}

void main(void)
{
InitSensGpio();
...
if (CanDo()) {
//
}
...
DisableSensGpio();
}
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 18:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01619 секунд с 7
ELECTRONIX ©2004-2016