cebotor 0 17 января, 2009 Опубликовано 17 января, 2009 · Жалоба а в CAVR что решит проблемы? использовал ф-цию delay_ms(10) дык вместо формирования меандра с Ти=10мс почему то Ти=2,5мс, т.е. приблизительно в 4 раза быстрее. Кварц. генератор = 2Мгц, МЦУ = Мега88. ЧТо посоветуете? Писать новую функцию, запихивать в нее nop-ы путём подбора с осциллографом? Задача выдавать импульсы с погрешностью хотя бы 1мс - и с delay_ms такой облом. При помощи счетчиков не хотелось бы заморачиваться. если delay_ms - это функция компилятора - то скорее всего вы декларируете ему не ту тактовую. делать задержки в _милисекундах_ без прерываний - это когда "очень хочется странного", ели счетчик это вы про прерывания - то мороки минут на несколько . заставьте таймер щелкать с частотой 2 килогерца внутри декрементируйте счетчик и вуаля - погрешность 1 милисекунда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Halfback 0 17 января, 2009 Опубликовано 17 января, 2009 · Жалоба если delay_ms - это функция компилятора - то скорее всего вы декларируете ему не ту тактовую. декларирую точно ТУ тактовую - сделал даже отдельный проект для проверки. Остаётся только "крошить батон" на CAVR. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
plombir 0 17 января, 2009 Опубликовано 17 января, 2009 · Жалоба ... Кварц. генератор = 2Мгц, МЦУ = Мега88. ... Хитрый у Вас кварц. А биты генератора, случаем, не на внутренние 8Mhz настроены? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться