Свежие обсуждения
Микроконтроллеры

помогите начинающиму

1 2 3

Он у Вас точно в ассемблере или в hex коде.

 


viczai: Он у Вас точно в ассемблере или в hex коде. Да сам я её писал в ассемблере.

 

rubilnik
сегодня, 17:56 Если кто то хочет помочь могу выложить исходник программы на Ассемблере для пресса где надо применить этот алгоритм.И схему.

Надо посмотреть.

 

Нужен алгоритм ,пресс пошёл вперёд и если не дошёл до концевика за 10сек отключился

 

Нужен алгоритм ,пресс пошёл вперёд и если не дошёл до концевика за 10сек отключился

 

Нужен алгоритм ,пресс пошёл вперёд и если не дошёл до концевика за 10сек отключился

 

надо обязательно на контроллере или лучше "на рассыпухе" ?
контроллер может помехи ловить от сильноточных цепей.
алгоритм примитивный - можно на логике сделать.

 

pictele: Если кто то хочет помочь могу выложить исходник программы на Ассемблере для пресса где надо применить этот алгоритм.И схему.
Во и мне интересно посмотреть. Как это так, раньше писал, теперь не могу?

Алгоритм простой. Вешаешь кнопку "пуск" на RB0 (аппаратное прерывание по int) и ждешь. Кнопка замкнулась/разомкнулась (как удобно), переходишь в обработчик прерываний. Запоминаешь контент, запускаешь таймер выдержки 10с, зажигаешь светодиод, проверяешь состояние кнопки стоп. Кнопка не сработала - декремент
счетчика выдержки, проверяешь счетчик =0 или нет, нет - проверяешь кнопку стоп. Кнопка сработала - гасишь светодиод, возвращаешь контент, выходишь из прерывания в основной цикл проверки кнопки пуск. Аналогично и по обнулению счетчика 10с. Как-то так примерно.

 

не могу прикрепить архив

 

AnSi: надо обязательно на контроллере или лучше "на рассыпухе" ?
контроллер может помехи ловить от сильноточных цепей.
алгоритм примитивный - можно на логике сделать.
Схема уже работает нормальо от помех не срабатывает

Splav56: переходишь в обработчик прерываний. Запоминаешь контент, запускаешь таймер выдержки 10с, зажигаешь светодиод, проверяешь состояние кнопки стоп. Кнопка не сработала - декремент
счетчика выдержки, проверяешь счетчик =0 или нет, нет - проверяешь кнопку стоп. Кнопка сработала - гасишь светодиод, возвращаешь контент, выходишь из прерывания в основной цикл проверки кнопки пуск. Аналогично и по обнулени
Непонятно нет опыта работы с прерыванием .Напиши несколько строк. Архив втавить неполучается посмотри кусок программы. контроллер 16F877A
;---------------------------------------------------------------------------------------
; прижим вперёд
;---------------------------------------------------------------------------------------
prigim1 Movlw .3 ; Сколько раз повторять процесс работы прижима
Movwf Reg_4 ; если не дойдёт за 10 сек до концевика.
prigim0 Btfss PortD,4 ; Опрос концевика прижим впереди
Goto b0 ; если впереди идём дальше.
Call Adreb ; антидребизг
Btfss PortD,4 ; Опрос концевика прижим впереди
Goto b0 ; если впереди идём дальше.

Bsf PortD,0 ; включить селеноид прижим вперёд
Bsf PortA,3 ; включить селеноид 80 бар(медленно)
Bsf PortA,2 ; включить селеноид 200 бар
;Goto Pause2 ; Идем на измерения времени хода прижима.
Ostop1 Btfsc PortD,4 ; Опрос концевика прижим впереди
Goto Ostop1
Call Adreb ; антидребизг
pst Btfsc PortD,4 ; Опрос концевика прижим впереди
Goto Ostop1
Bcf PortA,2 ; выключить селеноид 200 бар
Bcf PortA,2 ; выключить селеноид 80 бар.
Bcf PortD,0 ; выключить селеноид прижим вперёд
b0 Return