FLOWCODE УРОК 6 прерывания

Поделиться
HTML-код
  • Опубликовано: 16 ноя 2024

Комментарии • 47

  • @anatolich3385
    @anatolich3385 Год назад

    Спасибо!👍

  • @serg_tolstiy87
    @serg_tolstiy87 4 года назад

    Вопрос такой. Функция прерывания стоит ДО ЦИКЛА. По идее прерывание должно стоять внутри цикла, чтоб исполняться несколько раз, иначе вся программа должна будет посчитать только одну секунду и всё.

    • @RADIOSOFT1
      @RADIOSOFT1  4 года назад

      функция ВКЛЮЧАЕТ прерывания и далее они работаю самостоятельно.

    • @serg_tolstiy87
      @serg_tolstiy87 4 года назад

      @@RADIOSOFT1 понял. спасибо

  • @andrewefimov4488
    @andrewefimov4488 6 лет назад

    Отлаживаю на макетке с 128 мегой с кварцем 8мгц. Флоукод 6. Добиться реальных секунд получилось выставив делитель таймера 1:1024 и сделав счетчик в прерывании до 244. Почему так получается не понятно.

  • @viktorfil5492
    @viktorfil5492 5 лет назад

    Здравствуйте. Изучаю Ваши уроки.
    Подскажите, пустой цикл Loop не должен совпадать с выбранной частотой МК?
    Частота в настройках МК и в Flowcode и Proteus в Attiny13 9.6 Мгц. Делаю в цикле вывод 1 на порт B0 и следом за ним вывод 0.
    В протеусе с помощью COUNTER TIMER замеряю частоту и вижу 960000 (не понятно почему не 9600000, фьюзы выставлены без деления частоты), я думал таким образом можно попробовать проверить на какой частоте работает МК.
    .

    • @RADIOSOFT1
      @RADIOSOFT1  5 лет назад

      Здравствуйте. Все операции в контроллере выполняются за 1 или более тактов контроллера, такт - это один импульс генератора, то есть 1/9600000 сек. команды которые вы используете для вывода на пин B0 на самом деле содержать в себе несколько простейших команд, вот и получается что один ваш цикл выполняется примерно за 10 тактов - в результате частота в десять раз меньше.

  • @AzAtom2
    @AzAtom2 6 лет назад

    "Properties" (пропертиз) это "Свойства", а не "Пропорции".
    В остальном всё хорошо и доступно рассказывается.

    • @augustusedgar6835
      @augustusedgar6835 3 года назад

      I realize it's quite off topic but do anybody know of a good website to watch newly released tv shows online ?

    • @magnuspayton3059
      @magnuspayton3059 3 года назад

      @Augustus Edgar flixportal xD

    • @augustusedgar6835
      @augustusedgar6835 3 года назад

      @Magnus Payton thank you, I went there and it seems to work :) I appreciate it!!

    • @magnuspayton3059
      @magnuspayton3059 3 года назад

      @Augustus Edgar happy to help xD

  • @master-sd
    @master-sd 3 года назад

    Здравствуйте. Вы не подскажите почему в функции delay значения только до 2000 у меня не получается из за этого сделать плавное диммирование Если ставишь например 3000 пишет в выскакивающем окне от 0-2000

    • @RADIOSOFT1
      @RADIOSOFT1  3 года назад

      в 5 версии такой проблемы нет

    • @master-sd
      @master-sd 3 года назад

      @@RADIOSOFT1 Спасибо

  • @masterkit9517
    @masterkit9517 8 лет назад +1

    подскажите, с легкостью перелетело прерывание на страницу "2page" по нажатию INT0 (кнопка поставлена на INT0 и вызывает успешно прерывание отправляя на "2page" но если код программы "2 page" разместить в LOOP происходит "забывание" как вернуться назад в MAIN.
    просмотрел 2 урока, так и не заставил Flowcode вернуться в MAIN назад, если в LOOP происходит все, без LOOP он сам знает назад дорогу, прыгает назад в MAIN сам успешно выполнив все, а если в LOOP то это пропавший без вести код, который остался в LOOP из которого даже еще одно прерывание размещенное в LOOP не может выйти, да и даже не дает выбрать "Main", а если добавить "page3" туда не выпрыгивает, хоть и добавив "решение" видит что ему нажали INT0 и срабатывает "да" но прерывание и LOOP какая то безвозвратная долина и билет в один конец. А требовалось не так и много, при нажатии прерывания заставить мигать лампочку, именно мигать а не гореть. Если лампочку заставить гореть, то прерывание работает без вопросов. Но как только добавить мигание лампочкой вкл.выкл порт через DELAY или без DELAY то взамен отваливается прерывание этому миганию которое там же в LOOP еще добавлено. Решение его видит, что INT0 нажимается, но при нажатии INT0 из LOOP выхода нет как из пропасти. Выход был убрать LOOP, но очень нужно мигание, а не горение лампочки. Код простейший, отлично работает - нажав кнопку включается лампочка, нажав повторно - выключается. Все работает четко. Но если добавить "помигать" а это ну очень нужно (даже убрав мигать оставив LOOP - это безвыходный результат), то отваливается прерывание словно его и нет в коде. Оно в коде есть, но не хочет работать, как муляж. Почему LOOP и прерывание невозможно подружить ? Как мигать без LOOP, в уроках 6 и 7 не нашли ответ сами. LOOP от жадности не дал прерыванию уйти назад в MAIN и на другие макросы не пустил. Мы в тупике из за этого LOOP. Помогите найти выход) Спасибо большое ! Или прерывание в LOOP это билет в один конец. Но очень нужно мигать именно лампочке, и единственная проблема это это прерывание, которое "застряло" хоть и отлично видит что LOOP его понимает, даже решение делает а выходить и не собирается, как и не замечает что там стоит прерывание и пора назад в MAIN из LOOP вернуться.

    • @RADIOSOFT1
      @RADIOSOFT1  8 лет назад +2

      потому что нельзя ставить бесконечный цикл LOOP. как он из него выйдет? программа которая выполняется по прерыванию должна быть максимально короткой и в идеале не содержать пауз DELAY. в этом суть прерывания.
      в программе почти всегда должен быть ТОЛЬКО ОДИН бесконечный цикл. все остальные операторы LOOP должны иметь условие, по которому цикл прекращается

    • @masterkit9517
      @masterkit9517 8 лет назад

      RADIOSOFT
      большое пребольшое спасибо, попробуем 2 микросхемы) вместо прерывания 2 микросхема получит сигнал на выполнение команды мигать или не мигать диодом, а первая обработает нажатие кнопки, 2 шт. atmega8 не так и много) разделим получившуюся прошивку на 2 микросхемы, получив активный вход вторая микросхема сработает как вкл-выкл мигание, но еще дешевле решение кнопка с залипанием и 1 микросхема, а если без залипания, то только 2 микросхемы, причем с 2 микросхемами даже интереснее выйдет, портов там много,

    • @RADIOSOFT1
      @RADIOSOFT1  8 лет назад +1

      master kit
      можно сделать и на одной, просто грамотно использовать прерывания и задержки

    • @masterkit9517
      @masterkit9517 8 лет назад

      RADIOSOFT
      вполне возможно сделать без loop, добавив счетчик x=x+1 циклов, delay 1сек, каждый цикл выйдет 1сек. и удастся мигать сделав счетчик скорее всего, пришла идея заказать attiny13 они за 10шт. 2.7$ и сделать на их прошивку

  • @АзаматУрынбаев-н5о
    @АзаматУрынбаев-н5о 4 года назад

    Здравствуй, не могу разобратся с прерыванием по таймеру TMR0 overflow на Аттини85 .
    Не происходит компиляция, пишет вот такое - error: 'TIMSK0' undeclared (first use in this function)
    .
    error: (Each undeclared identifier is reported only once.
    error: for each function it appears in.

  • @madmax2872
    @madmax2872 6 лет назад

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

  • @Александр-о7х8я
    @Александр-о7х8я 4 года назад

    а вот для пик прерывания нужно выбрать вот так
    ibb.co/DwnMxtN
    иначе не эмулирует ни в железе, ни в протеусе

    • @vasilhrudzko
      @vasilhrudzko 4 года назад

      Поясните, пожалуйста, что имелось ввиду. У меня при выборе прерываний по таймеру все паузы увеличиваются в разы. Если в коде 250 мс, то реально это 1 сёк. Почему так?

    • @Александр-о7х8я
      @Александр-о7х8я 4 года назад

      вот в моей программе сделато как в примере в протеусе все работает ibb.co/mGrFnw4
      в железе то же пробовал простой секундомер до 9 все работает
      могу скинуть файл

    • @Александр-о7х8я
      @Александр-о7х8я 4 года назад

      сейчас проверил да действительно не совпадает с реальным временем, по моему скрину где zachel надо поставить 15 а не 30 походу столько времени тратится на вывод индикатора на LCD такого не заметил.

    • @Александр-о7х8я
      @Александр-о7х8я 4 года назад

      блин я кварц изменил на 4 мгц поэтому и 15 надо выставить
      вот пример cloud.mail.ru/public/31m1/2vi9bQk7M
      работает в железе

    • @Александр-о7х8я
      @Александр-о7х8я 4 года назад

      А что бы эмуляция была совсем точная то кварц нужен 3,932100

  • @tlakm
    @tlakm 3 года назад

    sao của bạn có ngắt UART vậy?

  • @vadimbuba2665
    @vadimbuba2665 8 лет назад

    у меня в протеусе не работает, считает первую секунду и дальше стоит на месте

    • @RADIOSOFT1
      @RADIOSOFT1  8 лет назад

      +Vadim Buba
      а счетчик времени в самом низу программы что в этот момент показывает? продолжает считать или останавливается?

    • @vadimbuba2665
      @vadimbuba2665 8 лет назад

      +RADIOSOFT счётчик внизу протеуса считает дальше, значит контроллер не висит, но и секунды не считает. Я уже и программу передирал Вашу один в один.

    • @vadimbuba2665
      @vadimbuba2665 8 лет назад

      +RADIOSOFT
      В моем Flowcod в выборе прерываний нет прерывания от компаратора. Может все дело во Flowcod? У меня ломаная версия 5.5.

    • @RADIOSOFT1
      @RADIOSOFT1  8 лет назад

      +Vadim Buba
      там прерывания не по компаратору, я неправильно назвал. у меня отличается потому что менял некоторые файлы программы. пришли мне свой флоукодовский файл и протеуса

    • @vadimbuba2665
      @vadimbuba2665 8 лет назад

      +RADIOSOFT
      Прерывания в программе ставил по переполнению счетчика, как в уроке. Я просто описал отличия своего фловкода от вашего. Файлик сброшу позже, т.к. пишу с телефона, не дома.

  • @madmax2872
    @madmax2872 6 лет назад

    кури матчасть , только что написал таймер всё он эмулирует как надо