andy8mm Пост: 297408 От 26.Mar.2011 (15:33) ДедИван, да, пора наступить на мк-грабли.
Надеюсь подключатся спецы по контроллерам, живее будет и всем интереснее.
Давайте отделим котлеты от мух.
По контроллеру все сюда.
Угу.
У тебя там куча мелких ошибок.
Я уж не стал там заострять на них- главное это идея- все остальное решаемо.
Чего подсказать- смотри сначала про флаги.
второе - хитрее, я и сам тут путаюсь иногда , у 15 тинек счетчик считает до числа записанного в А , а у следующих тинек как положено по идее до В . а сигнал с А меняет состояние выхода на указанное.
Если укажешь О , то он в ноль и пойдет, неважно что было до этого.
А если ноль и был?
Момент- выключаем искру- все наоборот.
Это выключается накачка, закрывается полевик и возникает искра.
Не недо никаких шевелений по счетчику В.
А по переполнению это правильно- я и сам чтобы не гадать какой счетчик до
куда считает- тоже ставлю прерывание на переполнение.
Так уже без разницы- по А или В.
"
По ДШ вроде-бы так, как я понял. Так он зараза не хочет так работать ! Может студия глючит ? Или я ? Отладчик показывает что счётчик досчитав до OCR0B (он ведь у нас меньше OCR0A) вылазит прерывание сравнения с OCR0B, а счётчик считает далее. Досчитав до OCR0A он только тогда обнуляется и опять вылазит 2 прерывания, сравнения и переполнения, причём переполнение вызывается первым а не сравнение Да и состояние выхода (на выводе) всегда в 0 почему-то ..."
Все правильно работает, если я понял суть. И авр правильно работает, ты в ручном режиме проверяешь в АВР как там выход работает, так реализован аппаратно ШИМ в контроллере, и он изначально счетчик гоняет по полной(только первый раз) это сделано что бы избежать глюков(сбоев), например при занесении нового значения для сравнения. А потом все работает как надо, одного понять не смог , зачем дергать портами в ручную (в обработке прерываний) порты автоматически блокируются, когда включаем ШИМ режим, и смысл ручного управления теряется.
Исправил На работе студия показывала совсем по-другому, поэтому и порт дёргал вручную. Качал вроде-бы последнюю, т.к. влом было из дому её тащить на работу. Дома перепроверил, да действительно, состояние выхода меняется. Отсчитываются положенные 30 циклов, и баеньки ...
ДедИван - сейчас так ?
Это что-бы у тебя новенький программатор не дЖардЖавЭл
За-одно и заливать в таракана прогу научишься.
Дед молчит, почему-то... Видимо уже ждёт решения задачки, а у мну на работе немного завал образовался После выходных помозгую и могет чего ни-ить сваяю...
И ещё, по выложенной последней версии. У нас получается ВЕСЬ цикл 30 мкс, с паузой ВКЛЮЧИТЕЛЬНО ! Т.е. 25 мкс накачка, и 5 мкс откл-е сост-е ! Нам именно так нужно было ? Или 5 мкс в весь цикл не должно входить ? Если не должно, придётся менять частоту у таймера, в сторону понижения.
ДедИван - диспетчера делаем на втором таймере ? А если 13-й МК ? В нём нет второго таймера Перенастройка режимов в первом ? Так ?
JohnZ Пост: 307148 От 13.May.2011 (12:24)
А если 13-й МК ?
А я тебе о чем говорил? Виндовс получается....
Первый таймер у нас работает аппаратно- как раз для защиты от помех.
И второй должен работать в то же самое время.
Ну или выворачивайся- считай одним, и суммируй время когда он был искорками занят.
Смысла не вижу- для этого и выпускаются разные тараканы с разным набором периферии. Для удобства.
Хотя чисто из спортивного интереса можно и гланды череж жо...
Как показатель мастерства.
JohnZ Пост: 307163 От 13.May.2011 (14:17)
, чё ДВАЖДЫ повторять ?
Ну на самом деле не очень и сложно.
Как Билл Гейтс обходится одним таймером.
Но это только в конкретной задачке - последовательно два таймера запускать. Так что тут все как раз правильно предлагаешь.
А у нас есть еше другие задачи- и им тоже нужен таймер.