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

Starichok

Moderators
  • Постов

    11 782
  • Зарегистрирован

  • Посещение

  • Победитель дней

    7

Весь контент Starichok

  1. понятно. но у каждого свои приемы и привычки программирования. у меня в разных проектах "разметка" времени сделана по разному, но везде привязка к реальному времени по таймеру. например, с динамической индикацией таймер работает по 2 мс, и в прерывании выводится очередной разряд индикации. потом счетчик-таймер по 10 мс (5 х 2 мс) - для тех дел, которые нужно делать почаще, интерфейс с компом, обработка кнопок и что-нибудь другое. потом счетчик-таймер по 1 секунде (100 х 10 мс) - именно для работы в реальном времени. тут может быть секундомер, если он нужен, и остальная ежесекундная работа. а есть регулируемый БП (есть моя тема на этом форуме), где таймер тикает по 1/512 секунды. и по таймеру делается 256 измерений напряжения и 256 измерений тока. то есть, 512 измерений за 1 секунду. но и там есть счетчик для "короткого" цикла для "частых" дел (по 1/64 секунды == 15,625 мс).
  2. Starichok

    Юмор

    у меня когда-то были сделаны 2 конструкции из коробков 10х5. а на картинке 6х6.
  3. картинка из даташита на АТмега32 сигналы - это то, что написано около стрелок. а PA6, PB0... и т.д. - это названия выводов (портов) МК. а если ты собрал и работает, то все сигналы ты подключил правильно.
  4. идея использования, как регистры флагов, понятна. а GPIOR1 и GPIOR2 разве нельзя использовать, как регистры флагов? у меня, как раз, используется TWI для вывода на экран 1602 через модуль I2C. но идея понятна. а в АТмега8 можно использовать флаг Т в регистре SREG. но устанавливать его после восстановления SREG перед выходом из прерывания. или коротко, как у тебя: set reti но такое можно делать, если обработка события (прерывания) может подождать. но такая отложенная обработка прерывания бывает очень редко. поэтому у меня даже в мыслях не было, чтобы отложить обработку прерывания.
  5. я не знаю, как пользоваться GPIOR. в АТмега8 такого регистра нет. я посмотрел даташит на АТмега88, там их 3 штуки - GPIOR0, GPIOR1, GPIOR2. а как ими пользоваться там не написано.
  6. дело даже не в гибкости, а в гораздо меньшем размере. ну, теперь ты знаешь про "собаку", и хелп можно не переписывать. а если тебе это хочется видеть в хелпе, то сам можешь дописать в файл помощи. а программа открывает этот файл и показывает его. и там разница не только в доступе к GPIOR, а еще ко всем регистрам USART, и вроде, еще к каким-то, которые используются в программе. если в АТмега8 все регистры доступны по in и out, то в АТмега88 некоторым регистрам следует применять lds и sts.
  7. часто в целом числе отделяют по 3 разряда. а если там написано MHz, то для меня это равно 1243134,6 МГц.
  8. когда я тестировал последние изменения (проверку ответа от МК), я сам выдергивал конвертер из гнезда. после этого при попытке заново установить соединение сначала мне показывало, что соединения нет, а со второй попытки показывало, что соединение установилось. получается, что комп принял сначала что-то другое, а со второго раза принял правильно. видимо, что-то подобное происходило и у тебя. по WDT. следует отключить его фьюз. скорее всего, со включенным фьюзом там после подачи питания получается маленькое время срабатывания "собаки". мне как-то лень переделывать кучу загрузчиков (8 штук) для разных МК, чтобы программно запретить "собаку". то есть ты сравнительно недавно занялся загрузчиком на АТмега 88? я в начале темы рассказал о разнице в длине загрузчика на ассемблере и на Си. получилось более, чем в 3,5 раза. разница между АТмега8 и АТмега88 - в доступе к некоторым регистрам. мне пришлось немного помучиться при переделке своего последовательного программатора с АТмега8 на АТмега88.
  9. интересно, сколько там МГц с тремя точками внутри числа? как такую фуету правильно прочитать?
  10. ну, я так понял, что он написал, и работало.
  11. а у меня к тебе возник вопрос. если ты сам писал загрузчик, то чем тебя заинтересовал мой загрузчик?
  12. выложил новые версии загрузчиков, архивы BootLoader15.zip и BootLoader Full20.zip. в оба загрузчика добавлены проверки ответа от МК после каждой команды. это понадобилось для своевременного обнаружения потери связи между МК и компьютером, а не ждать пока программа пытается впустую закончить выбранную операцию. в "легкой" версии я верификацию не делаю. если при записи на каждую команду пришел ответ от МК, я считаю, что всё сделано правильно. в полной версии есть верификация прочитанного отдельной кнопкой.
  13. у меня уже сгенерировано несколько загрузчиков под разные МК. из старых МК я не сделал только для АТмега16 и АТмега32. сейчас имеется 4 вида полных загрузчиков: АТмега8, АТмега88, АТмега168, АТмега328. наличие в конце разных буковок значения не имеет. а для неполных загрузчиков тип МК вообще не нужен. не нужна никакая кнопка в программе для генерации загрузчика. нет никаких проблем, чтобы в исходниках загрузчиков сразу прописать название МК, а в комповой программе добавить команду прочитать название МК. у меня структура функций записи и чтения построены так: при записи: 1а. команда принять пакет данных. 1б. передача в МК пакета, 128 байт. 1в. прием ответа от МК. 2а. команда задания начального адреса. 2б. прием ответа от МК. 3а. команда записать принятый блок данных. 3б. прием ответа от МК. при чтении: 1а. команда задания начального адреса. 1б. прием ответа от МК. 2а. команда прочитать блок данных, 128 байт. 2б. прием ответа от МК. 3а. команда передать в комп блок данных, 128 байт. 3б. прием блока данных, 128 байт. под приемом ответа от МК везде имеется в виду, когда МК передает принятую команду.
  14. я вернулся 22 апреля. существенное влияние времени ожидания появляется только в полной версии программы, когда нужно при чтении памяти получить пакет данных (у меня 128 байт). если прием не идет, то на 128 байт получается большое время ожидания. а на весь объем чтения получится вообще до хрена секунд. а при записи программа передает пакеты без задержки. но там все равно появляется время ожидания, так как после выполнения операции МК дает ответ. у меня команда состоит из 4 байт, и МК в ответ отправляет эти же 4 байта команды. мне было просто лень делать на каждую команду сравнение ответа с отправленной командой. теперь я собираюсь сделать такую проверку для каждой команды. у меня, вот, стал плохой контакт конвертера в гнезде ноута, и я уже несколько раз наблюдал у себя разрыв соединения. но без контроля ответа приходилось долго ждать окончания операции. а с контролем ответа выполнение операции прервется сразу, если ответ не поступит. по поводу сигнатуры - такая возможность есть не у всех МК. поэтому чтение сигнатуры для определения типа МК я сделать не могу. у всех старых нет и у АТмега48/88/168 тоже нет. а у АТмега48Р/88Р/168Р и у АТмега48РА/88РА/168РА такая возможность уже есть. и у АТмега328/328Р тоже есть.
  15. схема не для АТмега32. нужно смотреть даташит, и там смотреть куда подключаются все сигналы.
  16. если представить входное напряжение на конденсаторе С2, как двухполярное с амплитудой Uвх/2, а этот выпрямитель будет самым натуральным удвоителем. а так, в приведенной тобой схеме, это можно назвать "повторителем" с потерей напряжения на двух диодах.
  17. я однажды тоже делал такой же выпрямитель для получения -3 Вольта для отрицательного питания ОУ.
  18. это индуктивность рассеяния, разряжаясь, "переворачивает" напряжение.
  19. Starichok

    Юмор

    в оригинале было, прошел месяц. Холмс так и не отвык от трубки, и Ватсон тоже не смог от нее отвыкнуть.
  20. инверсные фьюзы бывают только у тех, у кого мозги инверсные.
  21. Starichok

    Юмор

    У одной женщины было 3 дочери. Отдала мать их замуж практически одновременно. Девушки улетели в свадебные путешествия, но перед этим мать взяла с них обещание, что они расскажут ей о своем первом сексуальном опыте. Через 2 дня получает она первую телеграмму, на ней всего одно слово: Nescafe! Женщина озадачена.Идет на кухню, берет банку кофе и читает: Хорош до последней капли! Мать счастлива. Через несколько дней получает она сообщение от второй своей дочери: Rothmanns. Ну мама уже знает, что делать-бежит в магазин и покупает пачку сигарет. На ней написано: Extra Long. King Size. Мама смущена, но тем не менее счастлива! Третья дочь не подает признаков жизни 2 недели. Наконец приходит открытка и от нее. На ней дрожащей рукой нацарапано: South African Airlines. Мама хватает газету, в рекламном разделе находит: Южно-африканские авиалинии. 7 дней в неделю, 10 раз в день. По всем направлениям!!!
  22. моя программа делает расчет стандартного выпрямителя с нормальным дросселем. я со схемой из этой темы не знаком, а как ранее сказал thickman, тут не стандартная схема, к тому же с резонансом. поэтому вполне естественно, что для этой конкретной схемы моя программа делает неправильный расчет. а теперь я понял, что мы говорили о совершенно разных вещах. но мне не трудно извиниться, что я, не зная схемы, зря взялся доказывать, что моя программа считает правильно. могу только добавить, что некорректное применение моей программы к нестандартной схеме не является поводом обвинять мою программу в неправильных расчетах. и на самом деле, обвинять ты должен себя за неправильное использование моей программы. предлагаю на этом "базар" о моей программе закончить.
×
×
  • Создать...