Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 16.08.2020, 11:58  
vavan1983
Почётный гражданин KAZUS.RU
 
Аватар для vavan1983
 
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
vavan1983 на пути к лучшему
По умолчанию Re: Помогите с TMR1 на PIC16F873

jump, МЭК61131 структура написания как у ASM?
Реклама:
vavan1983 вне форума  
Непрочитано 16.08.2020, 12:10  
ptrots
Частый гость
 
Регистрация: 18.09.2005
Сообщений: 26
Сказал спасибо: 72
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
ptrots на пути к лучшему
По умолчанию Re: Помогите с TMR1 на PIC16F873

Сообщение от DmitriyVDN Посмотреть сообщение
для большего кол-ва кнопок нужно в Task_Button: отвязать биты переменных от конкретных битов портаБ , ну и увеличить их разрядность с 8ми до 16 бит.
Простите опять за тупой вопрос. А как это сделать?
Кажется я взялся за непосильную задачу. Наверное придется придумывать что то другое.
ptrots вне форума  
Непрочитано 16.08.2020, 12:47  
OakRidge
Почётный гражданин KAZUS.RU
 
Аватар для OakRidge
 
Регистрация: 16.05.2015
Адрес: Болгария
Сообщений: 1,460
Сказал спасибо: 286
Сказали Спасибо 1,125 раз(а) в 540 сообщении(ях)
OakRidge на пути к лучшему
По умолчанию Re: Помогите с TMR1 на PIC16F873

Pic16F1xxx
Ядро новое сохраняет автоматом важные регистры в прерывании
Цена доллар за 14 ног
Пока идет выпуск так себе По 200 штук PIC10F200
PIc 18 на очерди. заказчик любит смотетрь в потолок желаний
Копейки считает,
Нормально, не в первый раз
Пройдет
OakRidge вне форума  
Непрочитано 16.08.2020, 13:05  
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,981
Сказал спасибо: 0
Сказали Спасибо 4,939 раз(а) в 2,369 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Помогите с TMR1 на PIC16F873

Сообщение от vavan1983 Посмотреть сообщение
МЭК61131 структура написания как у ASM?
ознакомьтесь, можно обсудить в другой теме
jump вне форума  
Непрочитано 16.08.2020, 13:20  
DmitriyVDN
Гражданин KAZUS.RU
 
Регистрация: 10.06.2010
Сообщений: 590
Сказал спасибо: 222
Сказали Спасибо 232 раз(а) в 152 сообщении(ях)
DmitriyVDN на пути к лучшему
По умолчанию Re: Помогите с TMR1 на PIC16F873

Сообщение от ptrots Посмотреть сообщение
А как это сделать?
в дефайнах
Код:
;Биты реальных кнопок   PORTB,PORTA
#define  PORT_BUTTON1  PORTB,0
#define  PORT_BUTTON2  PORTB,1
#define  PORT_BUTTON3  PORTB,2
#define  PORT_BUTTON4  PORTB,3
#define  PORT_BUTTON5  PORTB,4
;.....
;.....
;.....
#define  PORT_BUTTON9   PORTA,0
#define  PORT_BUTTON10  PORTA,2
;.....
;.....
#define  PORT_BUTTON16  PORTA,5

;Биты виртуальных кнопок  PortButton, PortButtonOld, 
; ButtonJastPressed,ButtonJastRelased
#define  BUTT1   0
#define  BUTT2   1
#define  BUTT3   2
#define  BUTT4   3
#define  BUTT5   4 
#define  BUTT6   5
#define  BUTT7   6
#define  BUTT8   7

#define  BUTT9   0 
#define  BUTT10  1
#define  BUTT11  2
#define  BUTT12  3
#define  BUTT13  4 
#define  BUTT14  5
#define  BUTT15  6
#define  BUTT16  7
в описании переменных делаем размерность 16бит
[SPOILER]
Код:
Button      :2    ; регистр текущие состояние кнопок 
ButtonOld   :2    ; регистр предыдущие состояние кнопок 
ButtonJastPressed :2 ; только что нажатые кнопки
ButtonJastRelased :2 ; только что отпущеные кнопки
в коде
Код:
;************************************************
;
;************************************************
;Button          ; регистр текущие состояние кнопок 
;ButtonOld       ; регистр предыдущие состояние кнопок 
;ButtonJastPressed ; только что нажатые кнопки
;ButtonJastRelased ; только что отпущеные кнопки
Task_Button:
    banksel PORTB
	    clrf Button
		clrf Button+1
        btfss PORT_BUTTON1
          bsf Button,BUTT1	
        btfss PORT_BUTTON2
          bsf Button,BUTT2
        btfss PORT_BUTTON3
          bsf Button,BUTT3
        btfss PORT_BUTTON4
          bsf Button,BUTT4
        btfss PORT_BUTTON5
          bsf Button,BUTT5
        btfss PORT_BUTTON6
          bsf Button,BUTT6	
        btfss PORT_BUTTON7
          bsf Button,BUTT7
        btfss PORT_BUTTON8
          bsf Button+1,BUTT8
        btfss PORT_BUTTON9
          bsf Button+1,BUTT9
        btfss PORT_BUTTON10
          bsf Button+1,BUTT10
        btfss PORT_BUTTON11
          bsf Button+1,BUTT11	
        btfss PORT_BUTTON12
          bsf Button+1,BUTT12
        btfss PORT_BUTTON13
          bsf Button+1,BUTT13
        btfss PORT_BUTTON14
          bsf Button+1,BUTT14
        btfss PORT_BUTTON15
          bsf Button+1,BUTT15		  
        ; определяем только что нажатые кнопки
        movfw Button            ; W = Button
        xorwf ButtonOld,w       ; W ^= ButtonOld
        andwf Button,w          ; W &= Button
        iorwf ButtonJastPressed,f ; ButtonJastPressed = W
		
        movfw Button+1            ; W = ButtonH
        xorwf ButtonOld+1,w       ; W ^= ButtonOldH
        andwf Button+1,w          ; W &= ButtonH
        iorwf ButtonJastPressed+1,f ; ButtonJastPressedH = W		
		
        ; определяем только что отпущеные кнопки
        movfw Button            ; W = Button
        xorwf ButtonOld,w       ; W ^= ButtonOld
        andwf ButtonOld,w       ; W &= ButtonOld
        iorwf ButtonJastReleased,f ; ButtonJastPressed = W

        movfw Button+1            ; W = ButtonH
        xorwf ButtonOld+1,w       ; W ^= ButtonOldH
        andwf ButtonOld+1,w       ; W &= ButtonOldH
        iorwf ButtonJastReleased+1,f ; ButtonJastPressedH = W		
        ; обновляем станоезначение кнопок
        movfw Button
        movwf ButtonOld
        movfw Button+1
        movwf ButtonOld+1

Последний раз редактировалось DmitriyVDN; 16.08.2020 в 14:33.
DmitriyVDN на форуме  
Сказали "Спасибо" DmitriyVDN
ptrots (16.08.2020)
Непрочитано 18.08.2020, 13:36  
OakRidge
Почётный гражданин KAZUS.RU
 
Аватар для OakRidge
 
Регистрация: 16.05.2015
Адрес: Болгария
Сообщений: 1,460
Сказал спасибо: 286
Сказали Спасибо 1,125 раз(а) в 540 сообщении(ях)
OakRidge на пути к лучшему
По умолчанию Re: Помогите с TMR1 на PIC16F873

btfss PORT_BUTTON14
bsf Button+1,BUTT14
btfss PORT_BUTTON15
bsf Button+1,BUTT15
; определяем только что нажатые кнопки
movfw Button ; W = Button
xorwf ButtonOld,w ; W ^= ButtonOld
andwf Button,w ; W &= Button
iorwf ButtonJastPressed,f ; ButtonJastPressed = W

movfw Button+1 ; W = ButtonH
xorwf ButtonOld+1,w ; W ^= ButtonOldH
andwf Button+1,w ; W &= ButtonH
iorwf ButtonJastPressed+1,f ; ButtonJastPressedH = W

; определяем только что отпущеные кнопки
movfw Button ; W = Button
xorwf ButtonOld,w ; W ^= ButtonOld
andwf ButtonOld,w ; W &= ButtonOld
iorwf ButtonJastReleased,f ; ButtonJastPressed = W


Я в ужасе
OakRidge вне форума  
Непрочитано 18.08.2020, 14:07  
DmitriyVDN
Гражданин KAZUS.RU
 
Регистрация: 10.06.2010
Сообщений: 590
Сказал спасибо: 222
Сказали Спасибо 232 раз(а) в 152 сообщении(ях)
DmitriyVDN на пути к лучшему
По умолчанию Re: Помогите с TMR1 на PIC16F873

от чего?, что не так?
DmitriyVDN на форуме  
Непрочитано 18.08.2020, 16:07  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,504
Сказал спасибо: 401
Сказали Спасибо 2,218 раз(а) в 1,316 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Помогите с TMR1 на PIC16F873

Вероятно потому, что в реальности там нет кнопок - там оптические датчики, автор же об этом писал в начале.
Ну и да, повторный вход по факту срабатывания отсекается установленным флагом (битом) при первом входе. Этот бит сбрасывается только при распознавании исходного состояния.
В оптических датчиках дребезга, подобного механическим кнопкам, нет из-за гистерезиса триггера Шмита на входе в МК.

В этой конкретной задаче не надо вычислять нажатые или отпущенные кнопки. Нужно просто определить, перекрыт ли оптический датчик или нет.

Последний раз редактировалось NewWriter; 18.08.2020 в 16:09.
NewWriter вне форума  
Непрочитано 18.08.2020, 17:18  
DmitriyVDN
Гражданин KAZUS.RU
 
Регистрация: 10.06.2010
Сообщений: 590
Сказал спасибо: 222
Сказали Спасибо 232 раз(а) в 152 сообщении(ях)
DmitriyVDN на пути к лучшему
По умолчанию Re: Помогите с TMR1 на PIC16F873

Сообщение от NewWriter Посмотреть сообщение
В этой конкретной задаче не надо вычислять нажатые или отпущенные кнопки. Нужно просто определить, перекрыт ли оптический датчик или нет.
а таймер как запускать будите?...
DmitriyVDN на форуме  
Непрочитано 18.08.2020, 19:11  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,504
Сказал спасибо: 401
Сказали Спасибо 2,218 раз(а) в 1,316 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Помогите с TMR1 на PIC16F873

Так, как описал.
if ((ReadInput(IN1) == TRUE) && (blocked_in1 == FALSE)) { blocked_in1 = TRUE; StartTimer(TIMER1); }
else blocked_in1 = FALSE;

Последний раз редактировалось NewWriter; 18.08.2020 в 19:14.
NewWriter вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает прерывание от TMR1 Vadimkhl PIC 1 18.04.2016 05:02
Помогите настроить TMR1 Segriv Микроконтроллеры, АЦП, память и т.д 1 28.03.2012 21:47
Помогите русифицировать Anycall Samsung SEC SCHW770, SEC SCHW420, SEC SCHW2700, SEC SCHW570 Rusik_best Автоматика и аппаратура связи 0 27.12.2011 16:13
Помогите, пожалуйста, с PICом и дисплеем VaL_KX Proteus 4 15.11.2010 22:33
[Решено] Ошибка TMR1 в Proteus Виталий К. Proteus 5 17.06.2010 23:00


Часовой пояс GMT +4, время: 17:40.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot