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

Pathfinder

  • Newbie
  • *
  • Сообщений: 18
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #20 : Апрель 14, 2011, 15:25:12 »
Максим пишет:
Цитировать
То что ты изменил с кнопками это хорошо, но это вариант подходит если кнопки подтянуты к минусу и активный уровень-высокий, а у тебя наоборот на всех пинах 1, а активный-низкий.
Ты опрашиваешь порт по маске у тебя получается если не нажаты клавиши то переменная 0b00011111 если ты нажимаешь кнопку старт то получится 0b00011110 это в десятичной системе 30, но не как не 1.
Я надеюсь ты теперь поймешь почему у тебя не работают кнопки.


Изменил значение переменной при опросе кнопок, но теперь эмуляция в Flowcode не работает. Может не то что то делаю?
(Значение присваиваемое переменной В, после опроса портов В по маске, идет со значением 0. Поэтому Элемент Switch и не реагирует на значения. Хотя в начале выставляем все порты В в единицу (В=255)).

Taska

  • Hero Member
  • *****
  • Сообщений: 1801
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #21 : Апрель 14, 2011, 15:54:30 »
Не бери SwitchBank- ты все равно этим макросом не пользуешься, а возьми 5шт Switch и в расширенных свойтсвах укажи полярность-Активный низкий.
Ну если хочещь оставить так то переключись с кнопок на тумблера и включи их все, а при выключении тумблера это будет равносильно нажатию твоей кнопки

Pathfinder

  • Newbie
  • *
  • Сообщений: 18
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #22 : Апрель 14, 2011, 21:34:33 »
Переделал опрос кнопок.

Taska

  • Hero Member
  • *****
  • Сообщений: 1801
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #23 : Апрель 14, 2011, 21:37:00 »
Молодец! А теперь вставляй задержку на нажатие кнопки.

Pathfinder

  • Newbie
  • *
  • Сообщений: 18
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #24 : Апрель 14, 2011, 21:42:21 »
Воооот... В чем у меня и сомнения в расчете.
В каком месте вставить и как расчитать правильно?

Taska

  • Hero Member
  • *****
  • Сообщений: 1801
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #25 : Апрель 14, 2011, 22:15:18 »
Смотри макрос Switch и внимательно его изучи я сделал опрос кнопки с защелкой т.е. ты кнопку нажал и пока ее не отпустишь результата не будет.
Можно конечно сюда еще счетчик впихнуть.

Steve Key

  • Jr. Member
  • **
  • Сообщений: 86
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #26 : Апрель 15, 2011, 11:18:41 »

Pathfinder

  • Newbie
  • *
  • Сообщений: 18
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #27 : Апрель 17, 2011, 15:16:35 »
Максим, подскажите...
Возникла новая проблема. Выполнил опрос кнопки Стоп на главной странице, для остановки отсчета. Эмуляция работает правильно, а вот в Proteus ни какой реакции на нажатие кнопки стоп после запуска отсчета.

И второй вопрос про компиляцию в hex.
При использовании компилятора HI-TECH, ругается на переходы в коде.

Taska

  • Hero Member
  • *****
  • Сообщений: 1801
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #28 : Апрель 17, 2011, 16:25:12 »
1. И не будет работать ты забыл кое, что
 
2. По поводу точек перехода у меня нет HI-TECH и  не начем проверить, но как вариант попробуй сделай так, чтоб во всей программе название точек перехода не повторялось, т.е. в макросе switch переименнуй точку А на точку С

Pathfinder

  • Newbie
  • *
  • Сообщений: 18
    • Просмотр профиля
Re:Таймер на PIC16F628A
« Ответ #29 : Апрель 17, 2011, 18:00:04 »
Спасибо.
Выставил на портах еденицы при опросе кнопки. В Протеусе заработало.

Название точек перехода поменял, а в свойствах точки перехода так и осталась А, которую изменить не возможно.

И компилятор HI-TECH Pro и Lite разное количество ошибок находят, Pro сообщает так же об ошибке значения переменной. Видимо это связано с разным процессом оптимизации кода у версий компиляторов, flowcode вообще без ошибок компелирует.