Перейти к содержанию
    

pic16f627 проблемы со стартом TMR0

Да не намного там сложнее в автомобилях. Датчика положения коленвала более чем достаточно для определения угла поворота коленвала. Может еще добавляться датчик положения распредвала, но частота его импульсов иная. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, yoric сказал:

Не могу понять смысла усложнения, заморачиваясь с CCP

Во-первых, упрощения, а во-вторых, смысл — решить задачу гарантированно и в разумные сроки, можно за полдня всё переписать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На схеме указан PIC16LF648, а вы симулируете PIC16F627. Несмотря на то, что они довольно похожи, но всё-таки, они чем-то да различаются. За давностью лет, я не помню, чем именно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/22/2024 at 4:34 PM, yoric said:

иногда не стартует TMR0

может ошибка в вычислениях проскакивает? 

поскольку проблема не очевидная, врядли ктото будет глубоко анализировать код.

из советов - поискать условия в которых ошибка проявляеца.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 час назад, EdgeAligned сказал:

Да не намного там сложнее в автомобилях.

На картинках не сложнее.

 

21 час назад, EdgeAligned сказал:

Датчика положения коленвала более чем достаточно для определения угла поворота коленвала.

Ну тогда расскажите как с одним датчиком коленвала, выработать искру в 1м цилиндре.

 

21 час назад, EdgeAligned сказал:

Может еще добавляться датчик положения распредвала

А может добавляться и 8 датчиков, ибо мир не остановился на запорожце. Открою вам секрет, можно работать по датчику распредвала без коленвала.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, Vasily_ сказал:

можно работать по датчику распредвала без коленвала

Спасибо за срывание покров, тогда это будет снова один датчик вращения.

Напомню, разговор идет исключительно о датчиках вращения коленвала (или распредвала, если угодно), а не вообще о любых датчиках, коих может быть и "8", как говорите.  Не надо считать меня глупее вас,  я и сам неплохо разбираюсь в теме. Я ж еще в юности "шестерку" и "десятку" своими руками перебирал от и до. Так что уж знаю, что тут к чему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 минуты назад, EdgeAligned сказал:

Не надо считать меня глупее вас,  я и сам неплохо разбираюсь в теме. Я ж еще в юности "шестерку" и "десятку" своими руками перебирал от и до. Так что уж знаю, что тут к чему.

😂

4 минуты назад, EdgeAligned сказал:

Спасибо за срывание покров, тогда это будет снова один датчик вращения.

Вы так и не ответили на мой вопрос, тем более знаете что к чему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Свечи работают попарно, 1 - 4,  2 - 3. Искра в холостом цилиндре ничего плохого не делает. И только в каких-то навороченных моторах может стоять доп.датчик распредвала. Но всё это к вопросу топикстартера - НЕ относится. У него двухтактных двухцилинтровый моторчик. Вы знаете, как работает двухтактник? Загуглите

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 22.08.2024 в 16:34, yoric сказал:

Так вот подозрения, что почему-то иногда не стартует TMR0 (TMRA). уже я его и так и этак инициализирую, но без толку. Гляньте пож-ста.

Меня тоже терзают смутные сомнения...

strtTMRA: movfw	_TMRoff
	movwf	TMRA
	bcf	INTCON,T0IF
	bcf	INTCON,T0IE
	movfw	_pTMRoff
	Bank1
	movwf	OPTION_REG	; /RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS
	Bank0
	bsf	INTCON,T0IE	; старт TMRA _toff
exit.RrFr bsf	INTCON,GIE
	bcf	STATUS,RP1	; раз за цикл на всяк случай

Вы вставляете Bank1 или Bank0, а перед - movwf    TMRA - поставили Bank0? Я как-то не увидел, но и разобраться в коде с ходу не получается. Вроде бы есть - bcf    STATUS,RP1    ; раз за цикл на всяк случай - но если где-то там, в коде, есть сет RP0... Может где забыли.

bcf	INTCON,T0IF
bcf	INTCON,T0IE

Конечно, это не порты, где могут возникнуть некоторые неприятные моменты в связи с наличием защёлки, но мне моя паранойя говорила, что лучше в таких конструкциях ставить между - nop. На всякий случай. Или сразу выставить оба бита.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, Vlad_G сказал:

Может где забыли.

Всё там на этот предмет чётко, в симуляторе-то работает. Уж такое он не пропустит.

5 часов назад, Vlad_G сказал:

Или сразу выставить оба бита.

Попробую.

Но, кстати, в даташите не скажу что всегда, но часто так делают, бит за битом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/26/2024 at 2:05 PM, EdgeAligned said:

Свечи работают попарно, 1 - 4,  2 - 3. Искра в холостом цилиндре ничего плохого не делает. И только в каких-то навороченных моторах может стоять доп.датчик распредвала. 

Это если стоит отдельный блок катушек зажигания.
А если на каждый цилиндр своя катушка ?

И в наше время это не такой уж и навороченный двигатель, а вполне обыденный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что мешает их просто попарно включать?

"А если, а если". "А если я беременна" 🙂 А если у топикстартера двухтактный двухцилиндровый двиг?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 23.08.2024 в 13:00, Plain сказал:

Перевести блок CCP в режим защёлки, объединить сигналы датчиков диодным ИЛИ и подать на RB3, далее, в прерывании защёлкой, сохранить флагом, какой из двух сигналов в нуле, прибавить требуемый угол к CCPR, перевести блок CCP в режим прервания компаратором и выйти, затем, при прерывании компаратором CCP, выдать на нужный выход нужное, перевести блок CCP в режим защёлки и выйти. Всё, круг замкнулся, самостоятельная молотилка создана — теперь можно заняться написанием в основном цикле неспешных заумных алгоритмов вольным стилем.

Можно чуть поподробнее? Всё вроде понимаю, но зачем компаратор тут? Да ещё и CCP-компаратор?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Цитата

Each CCP (Capture/Compare/PWM) module contains a 16-bit register which can operate as a 16-bit capture register, as a 16-bit compare register or as a 10-bit PWM master/slave Duty Cycle register.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...