Умножитель частоты
Re: Умножитель частоты
выставил фьюзы без ckdiv8. на выходе получил такой шим.
при выключении шима на входе, шим на выходе продолжает выходить 1 секунду, но опять же в различном виде: то норм, то измененный.- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Умножитель частоты
Хм, что-то я не вижу ошибок в программе. Может камень ресетится из-за болтающихся в воздухе входов? На всякий случай вот прошивка с включенными подтягивающими резисторами:
По-поводу ckdiv8 - если его включить - изменится только то, что всё станет в 8 раз медленнее, то есть допустимая частота на входе уже будет не 1..600 Гц, а 0,125..75 Гц.
По поводу того, что после отключения входного сигнала, на выходе продолжает некоторое время оставаться сигнал, - так и будет, от этого нельзя избавиться, можно только уменьшить длительность этого сигнала, обрезав минимальную измеряемую частоту. Я в статье писал, что выходной сигнал по фазе сдвинут на 360 градусов относительно входного. То есть мы на выход выдаём то, что намерили в предыдущем цикле. А о том, что сигнал пропал, узнаём только по переполнению таймера, а пока он не переполнится - выдаём на выход то, что в предыдущем цикле измерения получили.
З.Ы. Придётся наверное самому в железе потестить
Чем во время тестов сигнал на входе задавался? Чем контроллер питался? Свободные входы просто в воздухе висели? Схематично можешь изобразить тестовую схему?По-поводу ckdiv8 - если его включить - изменится только то, что всё станет в 8 раз медленнее, то есть допустимая частота на входе уже будет не 1..600 Гц, а 0,125..75 Гц.
По поводу того, что после отключения входного сигнала, на выходе продолжает некоторое время оставаться сигнал, - так и будет, от этого нельзя избавиться, можно только уменьшить длительность этого сигнала, обрезав минимальную измеряемую частоту. Я в статье писал, что выходной сигнал по фазе сдвинут на 360 градусов относительно входного. То есть мы на выход выдаём то, что намерили в предыдущем цикле. А о том, что сигнал пропал, узнаём только по переполнению таймера, а пока он не переполнится - выдаём на выход то, что в предыдущем цикле измерения получили.
З.Ы. Придётся наверное самому в железе потестить
С уважением, администрация сайта.
Re: Умножитель частоты
входящий сигнал формируется ne555, которая управляет транзистором, а транзистор через подтягивающий резистор садит ногу на землю. остальные ноги attiny в воздухе.
питается все от акб 12 вольт(мотоциклетный акб)
проверить прошивку смогу только вечером.
согласен, что может быть и мой косяк, но я не пойму где.
питается все от акб 12 вольт(мотоциклетный акб)
проверить прошивку смогу только вечером.
согласен, что может быть и мой косяк, но я не пойму где.
Re: Умножитель частоты
проверил прошивку. установил фьюз ckdiv8. на выходе сигнал тот, что и был(с одним паразитным всплеском). нюансы остались те же.
rhf-admin, если у вас будет возможность, потестите в железе самостоятельно. а вдруг какой косяк у меня, и мы так и будем ходить кругами. я готов ждать сколь угодно долго.
rhf-admin, если у вас будет возможность, потестите в железе самостоятельно. а вдруг какой косяк у меня, и мы так и будем ходить кругами. я готов ждать сколь угодно долго.
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Умножитель частоты
Собрал-таки в железе. Интересное получается кино. У меня картинка получилась такая же. Короче, умножает он правильно, только ШИМ-сигнал формирует неправильно. Там где он должен выдавать единицу - он выдаёт единицу, а вот там, где он должен выдавать ноль - он почему-то выдаёт импульсы. Причём, в зависимости от частоты - разное количество.
Ладно, будем думать над этим.
Ладно, будем думать над этим.
С уважением, администрация сайта.
Re: Умножитель частоты
во второй версии прошивки (за 12 ноября) с нулем было всё впорядке.
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Умножитель частоты
Та прошивка тоже глючная. Но это не важно, в последней версии я нашёл ошибку. Ошибка в сравнении OC и IOUT. Причём алгоритм-то правильный, а реализован криво.
В программе сейчас так:
Но! То, что старший байт OC не меньше старшего байта IOUT ещё не даёт основания сравнивать младшие байты, поскольку OC_H в этом случае может быть либо больше IOUT_H (и это сразу значит, что OC>IOUT), либо равен IOUT_H (и тогда как раз для выяснения кто больше нужно сравнивать младшие байты, как в программе).
Короче, правильно будет так:
Завтра буду тестить, но теперь вроде бы ошибок больше нет.
В программе сейчас так:
Код: Выделить всё
cp OC_H, IOUT_H ; OC_H - TOUT_H
brlo Lower ; jump if lower
cp OC_L, IOUT_L
brlo Lower
Короче, правильно будет так:
Код: Выделить всё
cp OC_H, IOUT_H ; OC_H - TOUT_H
brlo Lower ; jump if OC_H lower IOUT_H
brne HierOrEqual ; jump if OC_H bigger IOUT_H
cp OC_L, IOUT_L ; compare if OC_H equal IOUT_H
brlo Lower
С уважением, администрация сайта.
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Умножитель частоты
Ну вот, потестил. Теперь всё работает.
Прошивка в архиве, который в статье, уже новая, можете качать. Вечером выложу скрины с осциллографа.
З.Ы.Все черновые версии прошивки с форума потёр, чтоб народ не путался.
Прошивка в архиве, который в статье, уже новая, можете качать. Вечером выложу скрины с осциллографа.
З.Ы.Все черновые версии прошивки с форума потёр, чтоб народ не путался.
С уважением, администрация сайта.
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Умножитель частоты
Вход 10 Гц:
На выходе получаем 20 Гц с таким же коэффициентом заполнения:
С уважением, администрация сайта.