|
1 / 1 / 0
Регистрация: 26.03.2011
Сообщений: 45
|
||||||
Первый опыт с аналоговым компаратором05.11.2011, 18:54. Показов 4862. Ответов 16
Метки нет (Все метки)
Всем привет,
Решил изучить компаратор ATtiny2313. Подаю 2.5V на AIN1, а вход AIN0 подключаю к переменному резистору. Исходный код
То есть, почему-то не срабатывает прерывание. Что я делаю не так? :)
0
|
||||||
| 05.11.2011, 18:54 | |
|
Ответы с готовыми решениями:
16
Первый опыт Первый опыт На суд. первый опыт |
|
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 931
|
|
| 05.11.2011, 19:23 | |
|
А переменник правильно подключен (крайние к + и к земле соответственно, а средний вывод на порт мк)?
ЗЫ Код проверил, в студии работает.
0
|
|
|
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,283
|
|
| 05.11.2011, 19:34 | |
|
Частота UART правильно настроена?
0
|
|
|
1 / 1 / 0
Регистрация: 26.03.2011
Сообщений: 45
|
||
| 05.11.2011, 19:36 | ||
А на вторую я пробовал подавать 0/2.5/5, никакой разницы, прерывание не срабатывает.
0
|
||
|
1 / 1 / 0
Регистрация: 26.03.2011
Сообщений: 45
|
||
| 05.11.2011, 19:37 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 213
|
|
| 05.11.2011, 21:20 | |
|
а если глобальную "x" объявить как volatile?
0
|
|
|
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 494
|
||
| 05.11.2011, 21:22 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 213
|
||
| 05.11.2011, 21:24 | ||
а какой получится?
0
|
||
|
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 494
|
|
| 05.11.2011, 21:29 | |
|
получится непонятно какой, там в оптимизации фишка - когда обращаешься к не volatile переменной из основной программы - все нормально, комилятор предусмотрит, чтобы в момент когда ты ей пользуешься она была доступна, а в остальное время она может быть запакована, даже удалена (если есть присваивание значения, при первом обращении) итд. А вот вызов переменной из прерывания - штука внезапная, от переменной может быть только адрес, а по адресу дырка (или другая переменная). Поэтому если к глобальной переменной обращаются из прерывания - её всегда объявляют как volatile
0
|
|
|
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 213
|
|
| 05.11.2011, 21:32 | |
|
а ну глобальные переменные, к которым доступ из двух потоков я знал, поэтому и посоветовал ее так объявить. Но то что она может не существовать по своему адресу какое то время догадывался, но еще пока не до конца вкурил в логику оптимизации глобальных переменных)
пару раз обжигался на таких вещах, теперь это сразу глаза режет)
0
|
|
|
1 / 1 / 0
Регистрация: 26.03.2011
Сообщений: 45
|
|
| 05.11.2011, 21:34 | |
|
Точно! Votatile помогло :)
Не знал, что изменение переменной внутри прерывания считается компилятором за внешнее изменение.
0
|
|
|
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 494
|
||
| 05.11.2011, 21:44 | ||
Программа выполняется строго последовательно: с ресета прыгает в main() и дальше в порядки очереди. а прерывание - это внешняя подпрограмма (просто она описана в том же файле) и выполняется она когда МК захочет, а не основная программа
0
|
||
|
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 931
|
|
| 05.11.2011, 21:54 | |
|
Странно тогда чего у меня заработало без volatile (avr studyo 4.19, optimizotion -Os)?
0
|
|
|
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 494
|
||
| 05.11.2011, 21:55 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 931
|
|
| 05.11.2011, 22:00 | |
|
Не, так я взял код топикстартера без изменений, и скомпилил в студии. И студия сама положила "x" в ROM, и прога работала как хотел автор (проверял только в той же студии). Получается либо у него другой билд или оптимизация.
0
|
|
|
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 494
|
|
| 05.11.2011, 22:03 | |
|
версия компилятора? погода? DEBUG? именно поэтому нужно ставить volatile. Чтобы избавиться от прихотей оптимизатора
0
|
|
|
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 931
|
|
| 05.11.2011, 22:06 | |
|
Да как мне давно говорила училка, хочешь не делать ошибок проверяй чужие работы.Сам если бы писал поставил бы volatile, а так в чужом коде и не заметил, а тут еще и студия решила по доброму поступить.
0
|
|
| 05.11.2011, 22:06 | |
|
Помогаю со студенческими работами здесь
17
Первый опыт с FPGA Первый опыт знакомства с Qt Первый опыт с OpenGL Класс || первый опыт Моддинг - первый опыт Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|