На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (18) « Первая ... 2 3 [4] 5 6 ...  17 18 все  ( Перейти к последнему сообщению )  
    > Разбираемся с IAR , Обсуждаем небольшие коды на IAR.
      Цитата
      bizar, 16.01.04, 18:15
      У меня в клаве имеется микроконтроллер
      Очень вряд ли, что там PIC.
      Скорее всего там клон Intel i8048
        Цитата trainer @ 16.01.04, 22:15
        Цитата
        bizar, 16.01.04, 18:15
        У меня в клаве имеется микроконтроллер
        Очень вряд ли, что там PIC.
        Скорее всего там клон Intel i8048

        Там точно не PIC (аналог Intel i8048)
        Я думаю совецкого производства.
          potor - ты не прав. Можно повесить очень мощные, если управляешь нулями, т.е. например..
          PIC
          ___
          | PB.7 LED ___
          |------|<|--|___|-----* +5v
          | '' 330 Ом
          |
          |
          |
          |
          |
          |
          ____
            2SimpleSoft
            тут вот какое дело, максимальный ток стока для PORTB, PORTA по документации 200мА.
            ты предлагаешь вкльчить 13 диодов по 15мА- это 195мА(почти предел), я бы не рекомендовал так издеваться над контроллером, во всяком случае греться он будет как электроплитка и долго не проработает:(
              Теперь нужно чтобы контроллер ждал
              когда мы нажмём на кнопку (то есть два порта RB соединяться)
              и после этого он начнёт их зажигать.
                в общем цепляем кнопку одним контактом на RB1, этот же контакт через 100кОм на питание, второй контакт кнопки на 0
                в программе изменяем:
                TRISB = 2;// RB1 настраиваем на вход, остальные разряды PORTB на выход
                далее перед while(1) добавляем строчку
                while(PORTB & Bit(1));
                и вся любовь:)
                  А если я хочю чтобы он ждал нажатие у нескольких
                  кнопок, и выполнял при каждем нажатии определённое
                  включения светодиодов.
                    хороше, ты только напиши, куда планируешь подключит кнопки, и куда светодиоды
                      1 кнопка RA2 RA4
                      2 кнопка RA2 RA3
                      3 кнопка RA4 RA3

                      Светодиоды подрубил к RB0,RB1 RB2, RB3, RB4, RB5, RB6, RB7, RA1.
                        Если нажимаем (RA2, RA4).
                        Выполняется...
                        main()
                        {
                        TRISB = 0;
                        PORTB = 0xfc;
                        while(1)
                        {
                        tick();
                        switch(PORTB)
                        {
                        case 0x1c : PORTB = 0xfc;
                        break;
                        case 0xfc : PORTB = 0xf3;
                        break;
                        case 0xf3 : PORTB = 0xcf;
                        break;
                        case 0xcf : PORTB = 0x3f;
                        break;
                        case 0x3f : PORTB = 0x1c;
                        }
                        }

                        Если нажимаем (RA4, RA3).
                        Выполняется...

                        main()
                        {
                        TRISB = 0;
                        PORTB = 0xfe;
                        while(1)
                        {
                        tick();
                        switch(PORTB)
                        {
                        case 0x1d : PORTB = 0xfe;
                        break;
                        case 0xfe : PORTB = 0xfd;
                        break;
                        case 0xfd : PORTB = 0xfb;
                        break;
                        case 0xfb : PORTB = 0xf7;
                        break;
                        case 0xf7 : PORTB = 0xef;
                        break;
                        case 0xef : PORTB = 0xdf;
                        break;
                        case 0xdf : PORTB = 0xbf;
                        break;
                        case 0xbf : PORTB = 0x7f;
                        break;
                        case 0x7f : PORTB = 0x1e;
                        break;
                        case 0x1e : PORTB = 0x1d;
                        break;
                        case 0x1d : PORTB = 0xfe;
                        }
                        }
                          батенька, вы совсем обленились:)
                          ну попытайся, хоть что нибудь сам написать, иначе ты ничему не научишься, тем более задача простенькая
                          в общем лови подсказку:
                          1)switch(PORTA)
                          ...
                          2)TRISA = 0x04;// настройка RA2 на ввод, остальное на вывод
                          3)TRISA = 0x08;// настройка RA3 на ввод, остальное на вывод
                          попробуй написать сам, вышли свой вариант, укажу на ошибки, ну если уж совсем туго, напишу как правильно, просто обьясняю еще раз, пока не начнеш писать сам не научишься:)
                            Да лень вперёд меня родилась.
                            Попробую сам, только скажи как
                            настроить RA0 и RB2 на ноль, а
                            остальные на единицу. КАК RB c RB
                            и RA c RA разобрался, не могу понять как
                            RA с RB.
                              Все просто
                              только ты не забывай, что помимо этого часть ног PORTA тебе нужно настраивать на вход, часть на выход и при опросе матрицы кнопок менять эти настройки.
                              вот пример RA0,RA1 на выход. RA0 настраиваем на ноль RA1 на единицу, остальные RA не важно, т.к. Настраиваем их на выход. PORTB весь на выход RB2 в 0, остальные разряды PORTB в 1:
                              TRISA = 0xfc;// настраиваем RA0, RA1 на выход
                              PORTA = 0xfe;// запиисываем в RA0 0, в остальные разряды PORTA 1(в частности нас интересует RA1 а,
                              // т.к остальные мы настроили на вход, по барабану, что туда писать)
                              TRISB = 0;// весь PORTB на выход
                              PORTB = 0xfb; //в RB2 0, в остальные разряды 1
                                Кнопки цепляем по этой схеме.
                                (проверь правельно ли я подрубил кнопки)
                                Прикреплённый файлПрикреплённый файлCVET.rar (5.65 Кбайт, скачиваний: 462)
                                  можно так, я думал ты хотел их в матрицу объединить.
                                  в зтом случае соответствующие разряды PORTA просто программируешь на ввод, дерзай дальше:)
                                  на сегодня я побежал...

                                  Добавлено в :
                                  маленькое замечание, зачем ты взял нормально замкнутые контакты??? чтобы тока больше жрали??
                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                  0 пользователей:
                                  Страницы: (18) « Первая ... 2 3 [4] 5 6 ...  17 18 все


                                  Рейтинг@Mail.ru
                                  [ Script execution time: 0,0352 ]   [ 15 queries used ]   [ Generated: 28.04.24, 00:42 GMT ]