Sign in to follow this  
wapster

Msp430. Функция Опроса Клавиатуры

2 posts in this topic

wapster    0

Прощу помощи, т.к. уже весь мозг себе взорвал. Пытаюсь сделать кодовый замок на клавиатуре, состоящей из 3 кнопок. Все примеры в сети только для клавиатур 4х4 или 3х4. Нашёл неплохой пример кода под авр на сайте http://datagor.ru/mi...yjj-zamok..html Хочу попробовать портировать его под msp430, но никак не могу понять функцию опроса клавиатуры.

char key_press()				 // функция опроса клавиатуры
{
while(1)
{
while((~PIND & 0b01111000)!=0); // ничего не делать, пока не отпустят кнопку
for(i=0;i<3;i++)				 // перебор столбцов
{
PORTD=0xff & ~(0x01 << i);
for(j=3;j<7;j++)			 // пребор строк
{
 if((PIND & (0x01 << j))==0) // проверка нажатия на кнопу
 {
 delay_ms(100);			 // пауза для исключения дребезга контактов
 if(buttons[i][j-3]=='*')	 // дополнительная проверка для кнопки смены пароля
 {
 for(k=0;((PIND & (0x01 << j))==0 && k<100);k++)
 {
 delay_ms(50);
 }
 if((PIND & (0x01 << j))==0) // если удерживаем кнопку смены пароля больше 5 сек
 {
 state=1;				 // то устанавливаем состояние 1 (смена пароля)
 return 0;				 // и выходим из функции, возвращая вместо символа ноль
 }
 else return buttons[i][j-3]; // если меньше 5 сек, то возвращаем символ
 }
 if((PIND & (0x01 << j))==0) return buttons[i][j-3]; // возвращаем символ
 }
}
}
}
}

Буду очень благодарен, если кто-нибудь сможет объяснить как переделать это под мою задачу. Смена пароля в моём случае не требуется.

Edited by wapster

Share this post


Link to post
Share on other sites
Zer    553

Зачем вам динамический опрос клавиатуры для 3-х кнопок?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Similar Content

    • By mine1
      Наткнулся на библиотеку hal_xxx.c от TI для MSP430.
      Ни как не могу найти, где взять взять полное семейство этих библиотек. Поделитесь ссылочной  
      hal_UCS.c
    • By Isaev_ivan
      Доброго времени суток всем!
      Недавно возникла потребность передачи данных из микроконтроллера в ПК. Написал код на ассемблере, опираясь на Code_examples от TI, и то, что получилось, приведено ниже:
      #include "msp430F1232.h"
      RSEG CSTACK
      DS16 0
      RSEG CODE
      ;---------------------------------------------------------------------
      ; Установка тактирования от кварца
      ;---------------------------------------------------------------------
      RESET mov #SFE(CSTACK),SP
      mov #WDTPW+WDTHOLD,&WDTCTL ;OSTANOVKA WDT
      BIC #OSCOFF, SR ; tAKTIROVANIE OT KVARCA
      BIS.B #XTS, BCSCTL1
      L1 BIC.B #OFIFG, &IFG1
      MOV #0FFh, R15
      L2 DEC R15
      JNZ L2
      BIT.B #OFIFG, &IFG1
      JNZ L1
      BIS.B #SELM_3, &BCSCTL2
      ;--------------------------------------------------------------------
      ; Инициализация USART
      ;--------------------------------------------------------------------
      mov.b #200,R7
      bis.b #SWRST,&UCTL0;
      bis.b #030h,&P3SEL; P3.4,5 - USART
      bis.b #UTXE0+URXE0,&ME2; Включение передачи и приема
      bis.b #CHAR, &UCTL0; Формат данных 8-разрядный
      mov.b #SSEL0, &UTCTL0; UCLK=ACLK
      mov.b #0100b,&UBR00; 5MHz/19200 = 260.4 = 100000100b
      mov.b #0001b,&UBR10;
      mov.b #0000, &UMCTL0; Без модуляции
      bic.b #SWRST,&UCTL0; Сброс USART не включен
      bis.b #URXIE0+UTXIE0,&IE2
      bis.b #UTXIFG0,&IFG2; Флаг гтовности к прерыванию
      Loop bis.w #LPM3+GIE,SR
      nop
      jmp Loop
      ;-------------------------------------------------------------------
      USART0TX_ISR;
      ;-------------------------------------------------------------------
      mov.b R7, &TXBUF0;
      reti
      ;--------------------------------------------------------------------
      ; Векторы прерываний
      ;--------------------------------------------------------------------
      COMMON INTVEC
      ORG RESET_VECTOR
      DW RESET
      ORG USART0TX_VECTOR
      DW USART0TX_ISR
      END.
      Из программы видно, что я просто хочу передать содержимое R7 в ПК. Трудность заключается в том, что это значение передается не всегда. Запускаю программу, которая считывает информацию с com порта (программа работает 100% правильно), она в тестовый файл записывает значение 200(правильное значение). В следующий раз, после перезапуска программы, в текстовый файл она записывает величину 14. Потом снова 200. И я не пойму, что с ней происходит! Кто знает, отзовитесь пожалуйста
    • By yang
      I am Chinese student, now studying in St. Petersburg. I'm here one year, so i am not very good in Russian,written in English. I would like to know some new friends like programming and design, I want to participate in some professional game in Russia or complete some projects with my friends. If you need, I can help you buy some cheap things in China.If you have spare time or want to learn Chinese, hope you can help me learn the Russian language.This is part of my profile.




    • Guest Duck
      By Guest Duck
      Стоит изучать MSP430?
      Как я понимаю cortex-m он превосходит только энергоэффективностью? Или уже нет?
    • By tim-ua
      Я совсем новичок в МК, столкнулся с проблемой при подключении msp430 к bluetooth модулю. Модуль раньше работал на ардуине но с этой платой ни как не заводится.
      Подключить модуль к планшету получается (в терминале на планшете приходят обратно вводимые символы если замкнуть на модуле RX и TX). Но как дальше его подключить к msp430 я не понял. Пробовал так: P1.1 -> TX, p1.2 -> RX , пробовал менять комбинацию перемычек SW uart \ HW uart.
      Прошивка:

      void setup() { Serial.begin(9600); } void loop() { Serial.println("Test"); delay(100); }
      Возможно ли их вообще подключить?

  • Сообщения

    • @terrakot добротный усилитель( в радиотехнике 101 стоит именно он ,но на советских деталях),менять темброблок не убрав главный источник проблемного звука-входной коммутатор на к190кт2п-смысла большого не вижу.предусилитель сделан на к157уд2(на них тов.Сухов делал пред с к.г. менее 0.008..-инфа его..но я думаю примерно соответствует действительности если убрать один нолик).я не думаю что у вас имеется акустика на которой вы услышите разницу между темброблоком на AD8XXX и родным.дело ваше.что я делал с ним я уже писал выше-человека устроило в полной мере(на то время-93 год примерно) и на те деньги по затратам.
    • Подскажите пожалуйста, что за деталь: сот-233, на нём одна надпись EASLY c чёрточками под и над надписью. Проверить нет возможности, т.к. с рабочего девайса не хочу выпаивать (затруднительно из-за плотного монтажа), а на сломанном эти детали отсутствуют. Детали стоят сразу за подводом питания.
    • Если чуточку погуглить, можно найти схему на датчик движения, из которой становится понятно, что фоторезистор просто шунтирует 9 ногу микросхемы датчика на общий провод и встроенный компаратор запрещает её работу. (Темновое сопротивление ФР несколько МОм, освещённое - несколько кОм.) Следовательно, можно завести в ДД вместо фоторезистора выход датчика освещённости, если он имеет соответствующие уровни или типа "открытый коллектор" либо применить дополнительный ключ на транзисторе.
      Как вариант - запаять таки фоторезистор и отрегулировать чувствительность резистором R8. Или не лезть в датчик, а управлять исполнительным устройством - ведь на выходе всё равно будет какой-то ключ с реле или что-то подобное.
    • прорисовал печатку ,устранил ошибки ,добавил еще по 1 тыс.мкф конденсатор ,гляньте - может что еще поправить ? увеличил зазор под землю - хочу попробовать стыки сделать припоем.
    • Растворить канифоль в спирте и наносить на место пайки кисточкой. Канифоли будет меньше, дыма тоже, пайка чище.
    • БП не уходит в защиту, а тупо вырубается, т.к. дежурка не держит нагрузку (какую, кстати?), а от неё запитан основной контроллер ШИМ и некоторые вспомогательные цепи. В дежурке всего пять конденсаторов, можно поменять, не дожидаясь ESR метра, т.к дежурка работает круглосуточно и деградация в ней максимальна.   
    • Тема про чудеса советской радиопромышленности http://rt21.getbb.ru/viewtopic.php?f=36&t=159401