perec200

Как остановить выполнение кода в pic16?

5 сообщений в этой теме

perec200    0

Здравствуйте! По нажатию на кнопку (1) срабатывает прерывание INTF (RB0) необходимо вывести надпись и так она должна отображаться до тех пор, пока я не нажму на (2) кнопку и сработает прерывание RB7 которое напечатает другую надпись. 
Решено было использовать задержки, но в тот момент пока вызвана задержка, не срабатывает другое прерывание.
Как мне вывести надпись на экран и чтобы она не пропадала, до тех пор пока не будет вызвано другое прерывание?

void interrupt isr(){
    if(INTF){
        INTF = 0; // reset interrupt flag/
        Lcd_Clear();
        Lcd_Set_Cursor(1,1);
        Lcd_Write_String("1.");
        Lcd_Set_Cursor(1,3);
        Lcd_Write_String("Hello");
        __delay_ms(1000);
    }
    if(RBIF){
        if(RB7){
            activeItem++;
            Lcd_Clear();
            Lcd_Set_Cursor(1,1);
            Lcd_Write_String("RB7");
            __delay_ms(1000);
        }
        RBIF = 0;
    }
}

VirtualBox_OwnWIQAVM_07_04_2018_22_05_17.thumb.png.a37d1745c3a41bcddb0e5c50b2c81c04.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Vovka    29

В прерывании должны находиться как можно меньше времени!!!!!!

В прерывании устанавливайте флаги, а в главном цикле их обрабатывайте

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexter    192
9 часов назад, perec200 сказал:

Решено было использовать задержки

Зачем? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зачем тут вообще прерывания? В майне ай бутон на первую кнопку - индикация первой надписи. В тело этой индикации проверка нажатия второй кнопки - индикация второй надписи.

  • Одобряю 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 255

1. для вашей задачи прерывания на не нать.

2. в нормально построенной программе код не останавливается

3. и к пикам ваш вопрос относится только потому, что их надо программировать, программирование это в первую очередь алгоритм работы устройства и вот с этим у вас проблемы, попробуйте посмотреть курс лекций на ютубе будет намного полезней, чем плодить бестолковые темы , за это здесь наказывают :spiteful:

рекомендую  послушать

4. когда изучите пункт3 вся ваша задача сведется к использованию оператора case

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Михаил Савин
      Добрый день. Подскажите есть устройство на плате для регулирования дроссельной заслонки от Калины. Довольно специфическое, индивидуальная разработка, аналогов не купить. Основывается на микроконтроллере ATXMEGA128A3U AU 1651. Возможно ли скопировать залитый в него код что бы изготовить данное устройство ? Или это невозможно в принципе ?
    • Автор: ficus216
      Здравствуйте всем. Такая проблема. Дорожка работала, при беге в максим. 10км/ч резко прибавила скорость до 12 наверное ( хотя только до 10 максимум она разгоняется)
      попытался убавить скорость но ничего не срабатывало, можно только переключать между табло "каллории" "скорость" "расстояние""время" ничего убавить нельзя. Дальше вытаскиваю магнит (обычно дорожка автоматически выключается после этого) в этом случае нет, она дальше работала на полной скорости.
      Снизу находится общий включатель, раньше если его вкл то пока старт не нажмешь ничего не будет. а сейчас нажимаю этот вкл снизу и сразу на 12шке херачит.
      Тестором все прозвонил, сгорел микропроцессор я так понимаю. В магзиине мне сказали. что только если на али заказать. Название сгоревшего sonyx sn8p2624kb на али нет в точности с таким названием. прилагаю ссылку
      можно ли заказать этот или любой другой с другим названием ? что делать дальше ? не нужно потом это все прошивать ? и как ?https://clck.ru/DQhDh



    • Автор: Krokodil007
      Продам постсоветские массажёры ЭЛЕКТРОНИКА МРЭ-1, произведены 1993-1994г.в., новые, в упаковках, с хранения.
      По 800 руб/шт.
      Саратовская обл.
      Возможна отправка почтой.
       








    • Автор: Сибирский кот
      Здравствуйте! Мой знакомый отдал мне по ненадобности пульты для заправочной станции модели "Сапсан". В одном пульте стоял микроконтроллер ATMEL AT89S51-24PU и в другом-AT89C51-24PU. Искал схемы в интернете,но ничего не нашел,кроме даташиты. Не знаю,что делать с этими микроконтроллерами-пустить в дело или в утиль. Сможете подсказать?
    • Гость andrwgldmn
      Автор: Гость andrwgldmn
      Прощу помощи в построении схемы устройства которое будет сравнивать входные числа с заданными и производить над ними арифметические действия. Желательно в среде Multisim 12.0.1
      ОЗУ 35F
      A=23
      B=34
      C=44
      Если A<C то A+B
      Если A>C то A-B
      Должны быть использованы микросхемы серии К555, КР1533, КР185 и их зарубежные аналоги.
      Спасибо!