Микроконтроллеры | AVR начинающим - вопросы и ответы |
|
---|---|---|
По практическим результатам лучше всего иметь хороший бп +5.125V с плавной и точной установкой вых напряжения многооборотным борнсиком. Это было даже практичнее при -40 +40 температуры. А с этими LM285 проблемы с пересчётом на дробные цифры для 8-разрядника где сразу будет теряться точность при арифметических вычислениях этих дробей и приведения сразу теряется больше чем процент, и малый диапазон напряжения. Для Мег перебор. Для 32-х разрядов есть смысл может быть. ИМХО. Выставляете напряжение питания +5.125 и работаете уже не с кодами внутри программы мк или дробями, а с напряжениями 1 в 1 и ничего не теряется. 5.125/1024=0.005004V Проверяется бп при всех темп и нагрузках и делается вывод, а нужен ли Vref такой точности или от бп достаточен и нет резко сильноточных нагрузок. LM1086-ADJ остановились на ней, и как бп и как Vref достаточный. |
|
|
Проц взял Мегу, т. к. хорошо их знаю. По делу хорошо бы конечно STM32 освоить, но на это надо время. Так что лучше я STMы дома "на кошках" как-нить изучу, а тут пойду по известному пути. |
|
|
Здравствуйте. |
|
|
На самом деле у вас срабатывает прерывание INT1 по низкому уровню, а прерывание по INT0 не работает. |
|
|
Замечу, что SEI стоит не там; установку адреса вв, не доступного командой OUT, можно сделать проще .def tmp = r16 jmp RESET EXT_INT0: RESET: ldi tmp, 0xFF clr tmp ;;;;;;;;; ; clr ZH ;;;;;;;;; sei ; Enable interrupts MAIN: |
|
|
Спасибо за команду STS. |
|
|
В моей студии 4.19 build 730 работает. |
|
|
Swamp_Dok: Оно срабатывает (флаг загорается), но обработчик не вызывается. А код Вы прогоняете в симуляторе студии ? Если да, то следует иметь в виду, что обработка внешних событий в симуляторах редко когда поддерживается адекватно. Залейте код в МК и тогда посмотрите. |
|
|
Swamp_Dok: Перечитал даташит (часть про внешние прерывания) - у меня все верно. Включаю только нулевое прерывание Тут вы немного лукавите - раньше вы включали ОБА внешних прерывания. Теперь про наступление внешнего прерывания в симуляторе. Поскольку прерывание внешнее, то симулятор попросту не знает, когда оно наступит, вы должны сами в любой момент либо создать перепад 0-1 в порту Д2, записав туда 1, либо просто установив флаг прерывания (1->EIFR). Ну и для визуального контроля в теле прерывания замените команду out PORTB,tmp на команду out PINB,tmp, тогда при наступлении очередного прерывания порт Б будет переключаться с 0х00 на 0х81 и обратно. |
|
|
Тестировал код в 6-й студии. GM, с двумя включенными прерываниями - это был промежуточный вариант. Второе прерывание ни на что не влияет. Склоняюсь к тому, что студия некорректно симулирует работу МК. Попробую поставить другую версию. О результатах отпишусь. В 7-й студии тот же результат. Скачал 4-ю, а там нет 328p. Тогда остается только в железе проверить. |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |