14.08.2020, 22:00
|
|
Почётный гражданин KAZUS.RU
Регистрация: 16.05.2015
Адрес: Болгария
Сообщений: 1,460
Сказал спасибо: 286
Сказали Спасибо 1,125 раз(а) в 540 сообщении(ях)
|
Re: Помогите с TMR1 на PIC16F873
PIC16F873 давно в музее
Не то что плохой, бедный
|
|
|
|
15.08.2020, 03:41
|
|
Гражданин KAZUS.RU
Регистрация: 10.06.2010
Сообщений: 584
Сказал спасибо: 222
Сказали Спасибо 232 раз(а) в 152 сообщении(ях)
|
Re: Помогите с TMR1 на PIC16F873
to ТС , во вложении примеры работы таймера
три варианта :
в первом таймер работает с перезапуском с задержкой отключения
во втором включение по нажатию кнопки
в третьем пока нажата кнопка переключает выход , короче мигалка.
|
|
|
|
15.08.2020, 15:54
|
|
Почётный гражданин KAZUS.RU
Регистрация: 14.11.2008
Адрес: Литва
Сообщений: 1,913
Сказал спасибо: 534
Сказали Спасибо 1,829 раз(а) в 824 сообщении(ях)
|
Re: Помогите с TMR1 на PIC16F873
Сообщение от ptrots
|
OakRidge,
Вообще то в реале используется PIC16F73. Он гораздо дешевле. Просто в ПРОТЕУСе нет этой модели. Приходится использовать "близнеца" PIC16F873.
|
Я использую PIC16C73B - полный аналог для симулирования.
|
|
|
|
15.08.2020, 16:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
|
Re: Помогите с TMR1 на PIC16F873
Для отладки пофиг какой использовать. Я обычно сначала отлаживаю на 16F877 или 18F4620 а потом уже переношу на то что требуется. Для отладки использую LCD 20x4 дисплей, кнопки, энкодер. Удобно смотреть за регистрами.
|
|
|
|
15.08.2020, 16:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,490
Сказал спасибо: 401
Сказали Спасибо 2,216 раз(а) в 1,314 сообщении(ях)
|
Re: Помогите с TMR1 на PIC16F873
"Архигениально", блин... Только зачем левой пяткой чесать правое ухо?
|
|
|
|
15.08.2020, 17:12
|
|
Прописка
Регистрация: 25.11.2006
Адрес: Харьков
Сообщений: 295
Сказал спасибо: 25
Сказали Спасибо 71 раз(а) в 60 сообщении(ях)
|
Re: Помогите с TMR1 на PIC16F873
Цитата:
|
У меня еще используется PORTA. RA0 и RA3 входы, а RA2 выход. Видимо я их неправильно добавил. MpLab на мои строчки ругается. пришлось их за комментировать. Подскажите, как выйти из положения.
|
Вы пытались для порта А присвоить те же имена, что и для других портов. Потому и "ругается". Назначьте порту А другие имена, например, PORTA_BUTTON, PORTA_LED
|
|
|
|
15.08.2020, 17:26
|
|
Частый гость
Регистрация: 18.09.2005
Сообщений: 26
Сказал спасибо: 72
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Помогите с TMR1 на PIC16F873
А вот так можно?
#define BUTT01 PORTA,0
#define LED9 PORTA,2
#define BUTT9 PORTA,3
MPLAB не ругается.
|
|
|
|
15.08.2020, 18:35
|
|
Прописка
Регистрация: 25.11.2006
Адрес: Харьков
Сообщений: 295
Сказал спасибо: 25
Сказали Спасибо 71 раз(а) в 60 сообщении(ях)
|
Re: Помогите с TMR1 на PIC16F873
Сообщение от ptrots
|
А вот так можно?
#define BUTT01 PORTA,0
#define LED9 PORTA,2
#define BUTT9 PORTA,3
|
Так можно, но только для непосредственных операций с портом. Если же нужно сохранять текущее и предыдущее состояние порта, как было сделано для портов B и C, то такое определение не подойдет.
|
|
|
|
15.08.2020, 23:10
|
|
Гражданин KAZUS.RU
Регистрация: 10.06.2010
Сообщений: 584
Сказал спасибо: 222
Сказали Спасибо 232 раз(а) в 152 сообщении(ях)
|
Re: Помогите с TMR1 на PIC16F873
Сообщение от ptrots
|
А вот так можно?
|
можно, вопрос зачем и что потом с ними вы будите делать. в конструкции
Код:
|
;Биты кнопок Button, ButtonOld, PORTB
#define PORT_BUTTON PORTB
#define BUTT1 0
#define BUTT2 1
#define BUTT3 2
#define BUTT4 3
#define BUTT5 4
#define BUTT6 5
#define BUTT7 6
#define BUTT8 7 |
обозначенные биты это биты переменных Button, ButtonOld, ButtonJastPressed, ButtonJastReleased , порт PORTB здесь только для показать откуда берутся данные.
Посмотрите внимательно код функции Task_Button: в ней PORTB читается только один раз за итерацию и в коде больше не участвует, сделано это
для того что бы в процессе выполнения кода изменение состояния PORTB не повлияло на логику работы.
Цитата:
|
#define BUTT01 PORTA,0
#define LED9 PORTA,2
#define BUTT9 PORTA,3
MPLAB не ругается.
|
я вам давал ссылку на опрос кнопок , на Си вы писать не хотите, но с упорством пытаетесь превратить АСМ в Си подобный язык командами авто-замены препоцессора , где логика?
для большего кол-ва кнопок нужно в Task_Button: отвязать биты переменных от конкретных битов портаБ , ну и увеличить их разрядность с 8ми до 16 бит.
Цитата:
|
Кроме того, в моей программе присутствует логика на включение, ну пусть будут LEDxx. BUTTON1 должен включать LED1 и LED2. BUTTON2 - LED2 и LED3 и т. д. Ну это я как нибудь осилю, а вот следующее условие, если включен LED3, то есть BUTTON3 активен, то LED2 включаться не должен, ни от BUTTON2, ни от BUTTON1. Вот это куда вкрячить в Вашем варианте.
|
Эх, а начиналось-то все с "покажите как сделать задержку", а далее как в присказке " дайте воды попить, а то есть так хочется , что переночевать негде..." , а вообще это обычная логика И-ИЛИ-НЕ.
изучайте код, все операции по изменению состояния порта проводятся в виртуальном порте TempLED, путем записи текущего состояния PORT_LED в начале задачи и записи в порт из TempLED в конце задачи.
ничего не мешает вообще отказаться от чтения PORT_LED .
те в начале итерации читаем состояние кнопок, проводим все проверки и изменения в виртуальном порте ,после выполнения всех задач загружаем итоговое значение в реальный порт в конце итерации
|
|
|
|
16.08.2020, 03:22
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,981
Сказал спасибо: 0
Сказали Спасибо 4,939 раз(а) в 2,369 сообщении(ях)
|
Re: Помогите с TMR1 на PIC16F873
Сообщение от ptrots
|
Основной задачей является создание автономных кусков транспортера, состоящих из 8 участков
|
вы так и не указали модель омрона и наличие свободных входов/выходов. кстати, 8 участков прекрасно ложатся в один цикл (ПО пишется для одного участка со всеми обработками ошибок и т.д. и вызывается 8 раз подряд), который вызывается по интервальному таймеру. в современных ПЛК отладку можно вести онлайн, наблюдая за процессом воочию, что гораздо проще поиска ошибок в симуляторе.
могу дать подсказку - на голубой пилюле есть возможность работать как на ПЛК Мицубиши со всеми плюсами среды программирования на языках МЭК61131, не занимаясь пиками и ассемблером
Сообщение от ptrots
|
Если хотите могу показать, как это работает сейчас. Модель в Протеусе
|
нет у меня протэзов и пока без них обхожусь
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:36.
|
|