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    244
9 часов назад, perec200 сказал:

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

Зачем? :)

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


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

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

  • Одобряю 2

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


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

Найдите миллионы труднодоступных

электронных компонентов

IMXO    1 344

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

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

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

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

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

    • Автор: KseniaSam
      Требуется смонтировать 162 платы:
      ·      18 плат 165х55 мм, ~700 точек пайки (на каждой плате)
      ·      18 плат 210х172 мм, ~500 точек пайки
      ·      126 плат 68х156 мм, ~80 точек пайки
      Монтаж выводной и поверхностный с преобладанием SMD. 
      Активные компоненты преимущественно в корпусах LQFP, SOIC, DIP, TO-220 и т.п. 
      Пассивные компоненты 0603 и крупнее.
      Желательно наличие собственного оборудования для монтажа. 
      50 тыс. руб. за выполненную работу 
      По всем вопросам пишите на почту assistant@cyberxwear.com
    • Автор: Dandan He
      Здравствуйте, Уважаемые форумчане!
      TOMTOP – интернет-магазин, специализирующийся на продажах товаров китайского производства. Магазин TOMTOP не является новичком на рынке – он был основан ещё в 2004 году. К 2017 году портал завоевал репутацию заботливого и ответственного торговца высококачественной продукции, а также получил признание такого «гиганта» продаж, как Alibaba. В 2006 году Alibaba пожаловала продавцу TOMTOP статус «золотого поставщика» — очень почётный для азиатского рынка.
      Доступные способы оплаты
      Российским покупателям магазин TOMTOP даёт возможность оплачивать товары множеством способов:
      С банковских карт Visa и MasterCard. Оплата происходит через защищённый сервер платежей Alipay – риск того, что деньги попадут к мошенникам и не дойдут до продавца, сведён к нулю.
      Посредством PayPal. Именно этот способ оплаты считается наиболее безопасным — покупатель, прибегнувший к услугам PayPal, может быть уверен: если он вдруг станет жертвой мошенников, ему вернут деньги. Однако сервис PayPal неудобен для оплаты дорогостоящих товаров — если сумма единовременного платежа превосходит 1000 $, платёж наверняка будет задержан на несколько дней для проверки транзакции.
      С электронных кошельков. TOMTOP ведёт сотрудничество с 3-мя ведущими отечественными платёжными системами – QIWI, Яндекс.Деньги, WebMoney. Комиссия при оплате с кошельков перечисленных систем не берётся.
      Доставка товара
      Покупатель вправе выбрать один из 2-х способов доставки: почтовая (дёшево и сердито) или экспресс (для тех, кому срочно). Доставка посредством авиапочты является бесплатной – в этом плане магазин TOMTOP «заткнул за пояс» даже площадку AliExpress, которая в 2017 году за пересылку многих товаров в Россию стала требовать деньги.
      Стоимость экспресс-доставки зависит от того, какого рода товар и с какого склада он отправляется. За быструю доставку гаджета с китайского склада покупателю придётся заплатить порядка 4 тыс. рублей. Экспресс-доставка смартфона / планшета со склада, размещённого в России, обойдётся примерно в 1 тыс. рублей. Если речь идёт о каком-либо мелком и дешёвом товаре (например, о светодиодной Wi-Fi лампочке), экспресс-доставка с отечественного склада может оказаться бесплатной.
       
      Основной сайт: https://www.tomtop.com/
      Служба поддержки: service@tomtop.com
      ПАРТНЕРСКАЯ ПРОГРАММА : https://www.tomtop.com/help/affiliate-program.html
      Как присоединиться к нашей партнерской программе?
      Выберите партнерские сети и зарегистрируйтесь как партнер или издатель.
      Найдите идентификатор программы Tomtop.
      Подать заявку, чтобы присоединиться к нам и ждать нашего одобрения.
      Получите наши ссылки для продвижения и просмотра комиссионных.

    • Автор: Сергей Скопинцев
      Нужно разработать циклическую программу сбора информации от 10 измерительных источников. Период повторения цикла - одна секунда
      Источники:
       М - тензопреобразователь давления. Мостовая схема питается постоянным напряжением, выходной сигнал от 0 до 100 милливольт
       Т, ТМ, ТА- три канала измерения изменения напряжения в диапазоне от 400 до 600 милливольт (тоже нужен мост?)
       ЛМ - анализатор максимума напряжения (от 0 до 5 Вольт) по 10 точкам более-менее распределённых в измерительном цикле. Найденный максимум потом должен участвовать в анализе, постепенно уменьшаясь на 20% каждый цикл
       ВЛ - измерить напряжение на Малой емкости (50 пФ) с помощью емкостного делителя по алгоритму:
                         Снять Землю со средней точки емкостного делителя, подать на емкостной делитель положительный Импульс
                         Замерить нужное нам напряжение в средней точке делителя
                         Снять положительный Импульс с делителя, посадить на землю среднюю точку делителя
      - остальные каналы К7...К10  служебные
      Разрядность данных - 16 двоичных.

      Результаты писать на MicroSD текстовым файлом, на первом месте в строке текущее время в секундах, остальные каналы разделены пробелами
      Порядок каналов:
      Т - М -ТМ - Вл - ЛМ -...
      Коэффициенты усиления по каждому информационному каналу должен иметь возможность изменить оператор по формуле y = Ax + B
      Прибор автономный, питается от + 5 Вольт.
       
    • Автор: Aven
      Распродажа ненужных остатков от производства:
      STM32L151C8T6 - 10шт. 150руб. шт.
      Вибра 3В 10мм (см. фото) - 50шт. 20руб. шт.

      GSM модули quectel M66 - 4шт. 150руб. шт.
      TXB0102DCUR - 3000шт. (полная бабина) - 25руб. шт.
       
      Отправка по России за счет покупателя.
    • Автор: Ru_s
      Здравствуйте. Подскажите пожалуйста, возможно ли на attiny13 реализовать такую штуку. Мне в процессе работы программы нужно поменять режим работы таймера/счетчика с fast PWM на обычный счёт, отсчитать длительный промежуток времени и опять вернутся в режим ШИМ. Т.е. я подаю на ногу сигнал ШИМ и когда он в максимальном значении, я его отключаю, и тупо подаю на ногу высокий лог. уровень. В это время Т/С по идее свободен, и мне надо посчитать время работы выхода на максимальном лог. уровне, при достижении какого-то значения времени нужно перевести т/с обратно в ШИМ. Возможно ли это? И как приблизительно это реализовать