Автор Тема: Таймер на PIC16F628A  (Прочитано 19272 раз)

Samopalkin

  • Newbie
  • *
  • Сообщений: 8
    • Просмотр профиля
Таймер на PIC16F628A
« : Февраль 23, 2011, 21:22:32 »
Всем доброго времени суток. Не могу сказать, что я совсем глупый во FlowCode. У меня есть уже с десяток наработок в этой программе. Я уже "проходл" всякие мигалки, схемы управления шаговыми двигателями для световых приборов с аудиоконтролем, сочинил программу для светодиодных картинок на колёсах велосипеда. Последним сделал пару вариантов схем для намоточного станка. Но вот решил собрать себе таймер с обратным отсчётом, да сломался уже на процессе установки стартового времени. Никак не могу понять, каким образом вводить минуты и секунды, не мешая динамической индикации. А уж использование таймера по прерыванию - для меня совсем тёмный лес. Вот и решил я попросить у вас, знающих людей, совета и помощи. Знаю, что за меня никто ничего делать не станет. Просто подскажите, с какой стороны подойти к проблеме. Мне нравится PIC16F628A и у меня есть 4-разрядный индикатор. Спасибо тем, кто откликнется.  :sad:

mim

  • Hero Member
  • *****
  • Сообщений: 2700
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #1 : Февраль 23, 2011, 21:33:14 »
В этом промере есть все и индикация, и прерывание, и таймер. Только таймер скорректируешь точней и переделаешь под себя, а лишнее уберешь Пример

Samopalkin

  • Newbie
  • *
  • Сообщений: 8
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #2 : Февраль 23, 2011, 21:39:44 »
Mim, спасибо. Прежде чем напрягать людей, мне следовало сначала внимательно просмотреть все темы форума.

dps

  • Newbie
  • *
  • Сообщений: 15
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #3 : Февраль 25, 2011, 17:40:43 »
Могу выложить свой проект часов. Используется прерывание, клавиатура 3х2, вывод вот только на ЖК 16х2, но зато как по настоящему, т.е. с нулем если цифра меньше 10, вот так - 15:01:08. Клава выставляет раздельно часы, минуты, секунды и коррекцию хода. В железе все работает, но так и не смог добиться точности хода.  :fool:

Samopalkin

  • Newbie
  • *
  • Сообщений: 8
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #4 : Март 10, 2011, 21:50:38 »
DPS, выложи, пожалуйста. Буду благодарен :o

dps

  • Newbie
  • *
  • Сообщений: 15
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #5 : Март 14, 2011, 20:19:31 »
Вот такая получилась прога. В попытке уменьшить размер кода я сократил имена переменных до одной буквы. Меньше не стало, а исправлять обратно уже нет сил. Так же замечен клюк с отображением секунд. После выставления их с клавиатуры при невыясненных обстоятельствах может появится негасимый ноль правее правой цифры секунд. Еще я не смог прикрутить в эмуляции клаву 3х2 от FC и поэтому пришлось кое-как симулировать ее тремя тумблерами и двумя светодиодами. Диоды кажут как сканируется клава, а тумблера выставляют часы, мин и сек раздельно, по две кнопки на каждый тип времени:

час- мин- сек- ...верхний светодиод
час+ мин+ сек+ ...нижний светодиод

Обработку клавы сначала сделан на функции Switch, что довольно просто и наглядно, но потом, в очередной попытке уменьшить код, переписал на условных переходах. Опять же ничего не сэкономил.

Введена коррекция хода, которую можно регулировать.
нажимать "час-" + "сек-" = "кор-" и "час+" + "сек+" = "кор+". Значение переменной коррекции также отображается на дисплее. Но, как я писал, не смотря на все мои ухищрения, добиться точности хода не получилось.

Для попытки внести ясность в работе проги, я наставлял пояснений.

Будет интересно услышать мнение и советы опытных флоуководов о моих трудам.

Samopalkin

  • Newbie
  • *
  • Сообщений: 8
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #6 : Март 19, 2011, 17:45:43 »
DPS, спасибо. Буду разбираться и учиться.

volk-dnepr

  • Newbie
  • *
  • Сообщений: 20
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #7 : Апрель 07, 2011, 21:58:13 »
:)) Что с таймером?Получился?Занят сейчас такой же проблемой.Как идут дела?

Pathfinder

  • Newbie
  • *
  • Сообщений: 18
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #8 : Апрель 11, 2011, 22:53:18 »
Создал программу для таймера обратного отсчета.
Секунды устанавливаются до 59 и минуты до 59. По кнопке Стоп/Старт запуск и остановка таймера. При остановленном счете можно устанавливать время. По окончании времени срабатывает светодиод на 30 сек.
Можете проверить все ли правильно сделано?
Просто при компиляции в hex и моделировании в Proteus не работает.

Taska

  • Hero Member
  • *****
  • Сообщений: 1801
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #9 : Апрель 12, 2011, 08:08:49 »
1. У тебя заведено прерывание на 3906,250 и ты в условии проверяешь если >=75- это как??? какие велечины ты отсчитываешь???
 Ты должен поставить 61,035 и в условии написать >=61, тогда ты будешь отсчитывать секунды и условие проверки перенеси с основного цикла в прерывание есть же примеры таймеров http://flowcode.info/index.php/examples-menu/24-examples-code-flowcode/155-18-tmr0-use-for-count

2. При твоих паузах по 5мс у тебя частота обновления индикатора приблизительно составит 45-50Гц - это будет мерцать. уменьш до 2мс.

Ну а дальше будем разбираться выкладывай схему с протеуса