Свежие обсуждения
Микроконтроллеры

AVR начинающим - вопросы и ответы

1 59 68

Swamp_Dok: Скачал 4-ю, а там нет 328p
Есть. И особо не влияет на симуляцию такого кода.

 

Swamp_Dok: GM, с двумя включенными прерываниями - это был промежуточный вариант. Второе прерывание ни на что не влияет

Тут вы глубоко заблуждаетесь, в вашем промежуточном варианте второе прерывание очень даже влияет, поскольку таблица векторов прерываний у вас не заполнена. При возникновении прерывания int0 программа переходит на адрес 2: jmp EXT_INT0, а адрес EXT_INT0 есть адрес прерывания int1. Таким образом и при возникновении int0 и при возникновении int1 вы фактически переходите на один и тот же адрес EXT_INT0.

Теперь что будет происходить в системе. Вы не настроили прерывание int1 и оно по умолчанию прерывается по нулевому уровню на ножке, а ножка вами тоже не установлена, поэтому прерывание присутствует всё время. Что я и наблюдал, когда запустил вашу промежуточную программу в симуляторе аврстудио 4.18.

Ну а визуально вы ничего не увидите, поскольку ваши действия одни и те же: 0x81-> PORTB. Я ж вам советовал, поставьте out PINB,tmp и увидите изменения. Ну или введите честную подпрограмму обработки прерывания int1, а там введите другие действия, скажем, 0x7Е-> PORTB, изменения проявятся. Их я тоже наблюдал в симуляторе. Не забудьте про приоритет.

 

akl, я видимо какую-то неудачную версию четвертой студии скачал. Скачал именно 4.19 и у меня все заработало сразу. Обработчик вызывается без проблем.
Вот и скачивай последние версии с оффсайта. Очень странно это. Почему 6-я и 7-я версия некорректно работают? Они ведь вроде как должны даже лучше работать.

 

Требуется измерение напряжения на автомобильной АКБ с помощью МК ATmega328.
В даташите на МК сказано, что вход АЦП оптимизирован для выходного сопротивления источника напряжения до 10 КОм. Ну и само собой, чем меньше это сопротивление будет, тем лучше. Но...

АКБ будет подключен постоянно. По этому, чем меньше сопротивление делителя на входе МК, тем больше саморазряд АКБ.

Отсюда вытекают два варианта:
1) Высокоомный делитель на входе МК.
2) Буферный ОУ между высокоомным делителем и МК.

Хотелось бы обойтись без ОУ...

Вопрос:
При каком максимальном сопротивлении делителя напряжения на входе АЦП МК будет нормально измерять? Из практики? Кто пробовал?

 

Во, блин, засада... frown
Когда-то делал цифровые показометры на АВР-ках, так точно помню, что с такой проблемы не было:

 

Цитата из даташита на МК:

 
DWD: Ну и само собой, чем меньше это сопротивление будет, тем лучше. Но...

Но можно зайти с другой стороны и вспомнить что выходное  сопротивление делителя можно уменьшить банальным конденсатором, само собой интервалы считывания напряжения на этом конденсаторе должны быть больше чем время подзаряда этого конденсатора через высокоомный резистор делителя.

 

Мониторинг напряжения АКБ постоянный...

Так что, повесить электолит на 100 мкФ на вход АЦП и не ломать голову? sealed

 

Транзистор-тестер Маркуса делают кажется на таком микроконтроллере.
Там на входах МК  стоят резисторы 470 кОм.  

 

Вообще не ломать голову. Эти ваши 10 кОм автомобильному аккумулятору... даже и не знаю, что сказать.

Само устройство от чего питаться будет?