Форум

Радиолюбительский форум.

Если у Вас возникли вопросы, задавайте их на форуме.

В сети

Пользователей: 236
Из них просматривают:
Аналоги: 115. Даташиты: 69. Новости: 8. Остальное: 7. Производители: 2. Профиль пользователя: 6. Расчёты: 2. Форум: 27.
Участников: 2
Гостей: 234

Google , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

В настоящее время нет объявлений.

Просмотр этой темы: 

 1 анонимных пользователей
Re: Проблема с преобразованиями
Главный Технолог
Зарегистрирован:
01.07.2011 19:44
Из: Тольятти
Сообщений: 305
Не в сети
Кто-нибудь реализовывал уже это?Работу с клавиатурой?



Re: Проблема с преобразованиями
Модератор
Зарегистрирован:
26.01.2010 23:26
Из: Тирасполь
Сообщений: 3926
Не в сети
о ужас... и как я тебе объясню как надо программировать?есть такие понятия как текущая вводимая позиция, кнопка принятия резульата и т.д.



Re: Проблема с преобразованиями
Главный Технолог
Зарегистрирован:
01.07.2011 19:44
Из: Тольятти
Сообщений: 305
Не в сети
алгоритм напиши, пожалуйста.



Re: Проблема с преобразованиями
Главный Технолог
Зарегистрирован:
01.07.2011 19:44
Из: Тольятти
Сообщений: 305
Не в сети
Я и хочу реализовать с кнопкой принятия результата для окончания ввода, счетчик для подсчета количества введенных цифр (1-5, если > 5 - то ошибка), массив из 10 элементов для хранения числа (0-9). А вот как сохранить нужное мне число(например 6565) в 16-битную переменную(например addr) и в нужной мне последовательности, вот в этом и проблема!!!



Re: Проблема с преобразованиями
Модератор
Зарегистрирован:
26.01.2010 23:26
Из: Тирасполь
Сообщений: 3926
Не в сети
в том то и дело, что вводить надо в массив для элементов введенного числа.
Индекс=0
опрос клавиатуры . в зависимости от нажатой кнопки(сделать задержку для антидребезга)
в массив[индекс]= заносим нажатую цифру
индекс ++
опрос клавиатуры . в зависимости от нажатой кнопки(сделать задержку для антидребезга)
в массив[индекс]= заносим нажатую цифру
и т.д.
Как только нажали ввод, преобразуем числа по вышенаписанной формуле путем умножения на 10000, 1000, 100, 10 и выходим из куска ввода



Re: Проблема с преобразованиями
Главный Технолог
Зарегистрирован:
01.07.2011 19:44
Из: Тольятти
Сообщений: 305
Не в сети
клавиатуру я организую не матричную, а кнопки от клавиш через резисторы(Условия позволяют так сделать).
ВОт пример кода:
void KEYBOARD (void)
{

if (pp != 0) pp--;
if (!ZERO)
{
if (pp == 0)
{
writed(10); // 0 on LCD
key[0]=0;
counter++;
}
pp=10000;
}
if (!ONE)
{
if (pp == 0)
{
writed(1); // 1 on LCD
key[1]=1;
counter++;
}
pp=10000;
}
}

//-------main KEYS-----------//
void KEYS (void)
{
unsigned count_c=0;
unsigned char addr_H=0,addr_L=0;

if (pp != 0) pp--;
if (!ACCEPT) // accept input data(end of inputting data)
{
if (pp == 0)
{
if (counter == 1) // 1 digit
{


counter=0;
//..

}
if (counter == 2) // 2 digits
{
counter=0
//..
}
}
pp=10000;
}
Подскажи, пожалуйста, не совсем понял!



Re: Проблема с преобразованиями
Главный Технолог
Зарегистрирован:
01.07.2011 19:44
Из: Тольятти
Сообщений: 305
Не в сети
if (!TWO)
{
if (pp == 0)
{
writed(2); // 2 on LCD
key[2]=2;
counter++;
}
pp=10000;
}
if (!THREE)
{
if (pp == 0)
{
writed(3); // 3 on LCD
key[3]=3;
counter++;
}
pp=10000;
}
if (!FOUR)
{
if (pp == 0)
{
writed(4); // 4 on LCD
key[4]=4;
counter++;
}
pp=10000;
}
if (!FIVE)
{
if (pp == 0)
{
writed(5); // 5 on LCD
key[5]=5;
counter++;
}
pp=10000;
}
if (!SIX)
{
if (pp == 0)
{
writed(6); // 6 on LCD
key[6]=6;
counter++;
}
pp=10000;
}
if (!SEVEN)
{
if (pp == 0)
{
writed(7); // 7 on LCD
key[7]=7;
counter++;
}
pp=10000;
}
if (!EIGHT)
{
if (pp == 0)
{
writed(8); // 8 on LCD
key[8]=8;
counter++;
}
pp=10000;
}
if (!NINE)
{
if (pp == 0)
{
writed(9); // 9 on LCD
key[9]=9;
counter++;
}
pp=10000;
}
Подскажи, пожалуйста, как все эти 9 клавиш обработать?



Re: Проблема с преобразованиями
Модератор
Зарегистрирован:
26.01.2010 23:26
Из: Тирасполь
Сообщений: 3926
Не в сети

Вот,для начала, простенькая функция опроса кнопок

unsigned char IsKeyPressed(void)
{
 static unsigned char KeyPressed[NUM_MAX_KEY];

// 0
 if (KeyPressed[0]==FALSE)
    {
     if (!ZERO)
        {
         delay_ms(10);
         if (!ZERO)
            {
             KeyPressed[0]=TRUE;
             return 0;
            }
 
         }
     } else
           {    
            if (ZERO)
               {
                delay_ms(10);
                if (ZERO) KeyPressed[0]=FALSE;
               }
           }
    
// 1

 if (KeyPressed[1]==FALSE)
    {
     if (!ONE)
        {
         delay_ms(10);
         if (!ONE)
            {
             KeyPressed[1]=TRUE;
             return 1;
            }
 
         }
     } else
           {    
            if (ONE)
               {
                delay_ms(10);
                if (ONE) KeyPressed[1]=FALSE;
               }
           }

//...
}

 




Re: Проблема с преобразованиями
Главный Технолог
Зарегистрирован:
01.07.2011 19:44
Из: Тольятти
Сообщений: 305
Не в сети
А дальше как сохранять в 16 бит. перемнную все эти цифры?
Я алгоритм действий понимаю. Но только вот как програмно это ореализовать= ступор(((



Re: Проблема с преобразованиями
Главный Технолог
Зарегистрирован:
01.07.2011 19:44
Из: Тольятти
Сообщений: 305
Не в сети
и получить коненчное чило в 16-битной пер., которое было введено пользователем.



Поиск по форуму


Расширенный поиск

Разное

Интересно

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