| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Attiny2313 Analog Comparator
16.05.2010, 16:27
|
|
|
Вид на жительство
Регистрация: 12.04.2007
Сообщений: 339
Сказал спасибо: 2
Сказали Спасибо 34 раз(а) в 30 сообщении(ях)
|
Re: Attiny2313 Analog Comparator
Пайка? "Соплей" не наблюдается?
Прерывания все разрешены нужные?
__________________
Гидравлика + электроника = POWER
|
|
|
|
16.05.2010, 22:00
|
|
|
Частый гость
Регистрация: 07.06.2005
Сообщений: 29
Сказал спасибо: 1
Сказали Спасибо 2 раз(а) в 1 сообщении
|
Re: Attiny2313 Analog Comparator
Соплей нет, все правильно если верить даташиту 12-13 ноги входа компаратора корпус PDIP
Что еще не так, не знаю, обе микросхемы не работают. Выгнул с панельки 12 ногу на 13 ноге 4в через делитель, подаю +5 через 200 Ом на 12 ногу результат ноль убираю тоже ноль. Может что-то еще нужно разрешить?
// Analog Comparator initialization
// Analog Comparator: On
// Digital input buffers on AIN0: Off, AIN1: Off
ACSR=b_0000_1000;
DIDR=b_0000_0011;
interrupt [ANA_COMP] void ana_comp_isr(void)
{ PORTD.5=1; }
Кроме этого куска кода больше ничего не пишу. Может в codevisionavr нужно что-то поменять?
Последний раз редактировалось wowa_wa; 16.05.2010 в 22:03.
|
|
|
|
16.05.2010, 22:42
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,010
Сказал спасибо: 348
Сказали Спасибо 1,023 раз(а) в 551 сообщении(ях)
|
Re: Attiny2313 Analog Comparator
Может с этим поиграться???
|
Цитата:
|
|
// Digital input buffers on AIN0: Off, AIN1: Off
|
Из книги "CVAVR пособие для начинающих"
|
Цитата:
|
|
Disable Digital Input Buffer on AIN0(Запретить вход цифрового буфера на AIN0)- если выбрать эту опцию, то на выводе AIN0 будет запрещен вход цифрового буфера (Порта), таким образом, уменьшается энергопотребление чипа. В этом случае соответствующий бит в регистре PINx всегда будет читаться как 0
|
С AIN1 тоже самое...
Просто тут похожее поведение было на радиокоте с прерываниями на входах INTx, докопался я до проблемы, было именно связано с этими цифровыми буферами. Тут принцип аналогичный...Желаю удачи!
|
|
|
|
17.05.2010, 00:43
|
|
|
Частый гость
Регистрация: 07.06.2005
Сообщений: 29
Сказал спасибо: 1
Сказали Спасибо 2 раз(а) в 1 сообщении
|
Re: Attiny2313 Analog Comparator
С горем нашел где крыется проблема, но не знаю как решить.
Как только добавлю эти строки все компаратор не реагирует на изменение на ногах.
// External Interrupt(s) initialization
// INT0: On INT1: On
// INT Mode: Low level
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=b_1100_0000;
MCUCR=0;
EIFR=b_1100_0000;
Если ставлю так то все ок.
GIMSK=0x00;
MCUCR=0x00;
Но мне нужны внешние прерывания.
Пробывал менять Digital input buffers on AIN0:, AIN1: оба вкл оба выкл не помогает
Из даташита, я так понял что когда они выключены, то безполезно читать PINx но компаратор будет работать.
|
|
|
|
17.05.2010, 01:03
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,010
Сказал спасибо: 348
Сказали Спасибо 1,023 раз(а) в 551 сообщении(ях)
|
Re: Attiny2313 Analog Comparator
Сообщение от wowa_wa
|
|
Но мне нужны внешние прерывания
|
Тогда вам на страницу 57 вашего даташита, там таблица, что надо делать, чтобы правильно использовать альтернативные функции порта(пинов), расшифровку сигналов из колонки "Signal
Name", смотрите на стр 53 под рисунком
Вроде теперь вопросы должны отпасть...
|
|
|
|
17.05.2010, 09:46
|
|
|
Частый гость
Регистрация: 07.06.2005
Сообщений: 29
Сказал спасибо: 1
Сказали Спасибо 2 раз(а) в 1 сообщении
|
Re: Attiny2313 Analog Comparator
Сообщение от Saadov
|
|
Тогда вам на страницу 57 вашего даташита.
|
Чесно говоря толком и не понял что там написано.
Но вот знаю что INT1 и INT0 работает когда я добавляю те строчки отлично, но компаратор отрубается, и наоборот, без их не работает компаратор.
Компаратор у меня на PB0..1, прерывания PD2..3 одно другому мешать не должно, а не работатет.
|
|
|
|
17.05.2010, 09:56
|
|
|
Гражданин KAZUS.RUN
Регистрация: 03.12.2004
Сообщений: 932
Сказал спасибо: 822
Сказали Спасибо 609 раз(а) в 216 сообщении(ях)
|
Re: Attiny2313 Analog Comparator
как я понял, Вы не можете добиться даже проверки состояния ан. компаратора...
работал с этим МК, тоже мучился, пока не изменил состояние DIDR
Вот пример: (пишу на FastAVR)
DIDR=3 ' ОТКЛ digital in !!!
While acsr.5=1
Wend ' Ждем 0
Это же, но на ассме:
' ОТКЛ digital in !!!
ldi zl,byte1(3)
out DIDR,zl
' Ждем 0--
L0046:
sbis ACSR,5
rjmp L0047
L0048:
rjmp L0046
|
|
|
|
17.05.2010, 15:53
|
|
|
Частый гость
Регистрация: 07.06.2005
Сообщений: 29
Сказал спасибо: 1
Сказали Спасибо 2 раз(а) в 1 сообщении
|
Re: Attiny2313 Analog Comparator
Сообщение от aleksandr-zh
|
|
как я понял, Вы не можете добиться даже проверки состояния ан. компаратора...
|
У меня как и у вас.
// Analog Comparator: On
// Digital input buffers on AIN0: Off, AIN1: Off
ACSR=b_0000_1000;
DIDR=b_0000_0011;
Если компаратор срабатывает то он дергает ногу, проблема вот в этих строках насколько я понял.
GIMSK=b_1100_0000;
EIFR=b_1100_0000;
Емли 7 бит ставлю 0 и в GIMSK и в EIFR то работает и прерывание INT0 и компаратор, но тем самым отключаю INT1.
Для моей задачи этого достаточно, но все-же интересно почему так.
Последний раз редактировалось wowa_wa; 17.05.2010 в 15:55.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:02.
|
|