attiny13 и PCINT0 в железе

Обсуждаем контроллеры компании Atmel.
Ответить
Прорезались зубы
Сообщения: 217
Зарегистрирован: Ср янв 11, 2012 11:55:51

Сообщение Land »

[uquote="parovoZZ",url="/forum/viewtopic.php?p=3998756#p3998756"]Ну а зачем так делать? Сразу целиком писать весь регистр без его предварительного чтения. Ведь какие прерывания необходимы, а каие нет - известно. Тоже самое и регистрами флагов. Там всего 2 флага. Ну так и пиши туда сразу 0xFF. Зачем его читать???[/uquote]
ну, хотя бы потому, что такая конструкция гораздо нагляднее. Когда через год или десять, я открою этот код, я не задамся вопросом "а нафига я тут в регистр 0xFF" записал. Впрочем это спор а-ля "делать ли отступы и если делать, то сколько" :) Если б бился за каждый так процессорного времени, тогда да. А так...
Тем более, что вряд-ли это к сути проблемы может иметь отношение.

Добавлено after 4 hours 19 minutes 18 seconds:
Радиоэлектроника -- наука о контактах. Короче, начал я выпаивать кнопку и два вывода просто остались на контактных дорожках. С новой кнопкой все работает. Так что слухи о том, что в прерываниях нельзя использовать вызовы других функций (в частности записи в eeprom) несколько преувеличены. Большое спасибо всем откликнувшимся. Но wdr я тоже убрал ;)
Если кому интересно, это был велофонарь с али плюс вибродатчик и датчик освещенности
Изображение
Вложения
Велофонарь.rar
(111.34 КБ) 133 скачивания
Реклама
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

Открою вам маааленький секрет. В прерывания можно делать что угодно. Всё зависит от задачи. Когда ты знаешь возможности мк.
Кнопка, вам кажется, вы решили проблему? Нет. Вы её обошли. Десятой дорогой. Лично я никогда не вешал кнопки на прерывания. Нет такой задачи, чтобы за несколько тактов отреагировать. Я не Flesh, не супермен. Оперировать на уровне нескольких тактов. И повешу кнопку на внешнее прерывание в одном единственном случае. Когда мне потребуется энергосбережения.
Контактная информация:
Реклама
Прорезались зубы
Сообщения: 217
Зарегистрирован: Ср янв 11, 2012 11:55:51

Сообщение Land »

Demiurg, к чему столько пафоса? Ну не вешаете вы кнопки на прерывания -- и не вешайте. Ну кажется вам, что я "обошел" проблему -- бога ради. Зело любопытно, как бы вы программно "обходили" проблему микротрещин в выводах кнопки.
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Сообщение parovoZZ »

"а нафига я тут в регистр 0xFF"
Пиши битами. Зачем я в регистр флагов записал 255, я и через десять лет не буду вопросов задавать. И так понятно, что для сброса всех флагов.

Добавлено after 50 seconds:
Радиоэлектроника -- наука о контактах.
А причём здесь радио, если речь о цифровой технике???

Добавлено after 4 minutes 26 seconds:
Лично я никогда не вешал кнопки на прерывания.
Я вешаю, если нет каких-то других внешних воздействий, ибо я всегда сплю, когда МК ничем не занят. Но опять-таки AVR крайне тухлый вариантв этом плане - нельзя тактировть таймеры и при этом находится в глубоком сне. Даже в новых AVR. Вот на хера так делать???
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Сообщения: 1978
Зарегистрирован: Ср июл 17, 2013 13:55:57

Сообщение NStorm »

[uquote="Land",url="/forum/viewtopic.php?p=3998865#p3998865"]Так что слухи о том, что в прерываниях нельзя использовать вызовы других функций (в частности записи в eeprom) несколько преувеличены[/uquote]
Да хватит уже. Никто не говорил "нельзя". Си прекрасно позволяет стрелять себе в ногу, если вы этого хотите. Просто говорили о том, что это плохая идея/практика и даже объяснили почему.
Реклама
Прорезались зубы
Сообщения: 217
Зарегистрирован: Ср янв 11, 2012 11:55:51

Сообщение Land »

[uquote="parovoZZ",url="/forum/viewtopic.php?p=3999356#p3999356"]
Радиоэлектроника -- наука о контактах.
А причём здесь радио, если речь о цифровой технике???[/uquote]
вы это серьезно? :shock: Оксфордский словарь дает такое определение
Радиоэлектроника -- Общее название отдельных отраслей знания, развившихся из радиотехники и электроники.
Хотя вы, само-собой, можете считать, что ЦТ не имеет ни малейшего отношения к электронике.

Добавлено after 2 minutes 40 seconds:
[uquote="NStorm",url="/forum/viewtopic.php?p=3999399#p3999399"][uquote="Land",url="/forum/viewtopic.php?p=3998865#p3998865"]Так что слухи о том, что в прерываниях нельзя использовать вызовы других функций (в частности записи в eeprom) несколько преувеличены[/uquote]
Да хватит уже. Никто не говорил "нельзя". Си прекрасно позволяет стрелять себе в ногу, если вы этого хотите. Просто говорили о том, что это плохая идея/практика и даже объяснили почему.[/uquote]
Такое впечатление, что вам очень обидно, что все работает, хотя не должно, потому, что вы так сказали :))) Расслабьтесь.

Добавлено after 2 minutes 7 seconds:
[uquote="parovoZZ",url="/forum/viewtopic.php?p=3999356#p3999356"]Я вешаю, если нет каких-то других внешних воздействий, ибо я всегда сплю, когда МК ничем не занят. Но опять-таки AVR крайне тухлый вариантв этом плане - нельзя тактировть таймеры и при этом находится в глубоком сне. Даже в новых AVR. Вот на хера так делать???[/uquote]
да в общем-то совершенно очевидно. Потому, что это не будет режимом "глубокого сна" (Power Down). Для того, чтобы таймеры тикали, есть другие режимы энергосбережения.
Реклама
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

Land. Осади. Тебе объяснили что и как. Делай выводы сам. А мы сами разберёмся, что нам делать в прерываниях.
Контактная информация:
Прорезались зубы
Сообщения: 217
Зарегистрирован: Ср янв 11, 2012 11:55:51

Сообщение Land »

[uquote="Demiurg",url="/forum/viewtopic.php?p=3999434#p3999434"]Land. Осади. Тебе объяснили что и как. Делай выводы сам. А мы сами разберёмся, что нам делать в прерываниях.[/uquote]
ой, обиделся бедный :)))
[uquote="Demiurg",url="/forum/viewtopic.php?p=3998612#p3998612"]1 - кнопки это человекоинтерфейс. Реакция человека десятки, сотни миллисекунд. Реакция микроконтроллера, если кнопка повешана на прерывание - несколько тактов. Хочется спросить, куда вы так торопитесь, все равно не успеете.
На прерывание есть смысл вешать кнопки только в случае энергосбережения, спящего режима. Ещё в случае экономии ввода вывода. И то варианты.
2 - дребезг контактов.
3 - режим внешнего прерывания, по уровню или фронту.
Как здесь уже правильно подметили, могут быть неучтенные отложенные прерывания.
Вывод, разберитесь что такое дребезг контактов. Какие режимы внешнего прерывания, как правильно инициализировать внешние прерывания. И нужно ли вешать кнопки на внешние прерывания, если нет энергосбережения.[/uquote]
Вывод: одна вода, ничего конкретного.
СпойлерЧем отличаются русский, американский и еврейский форумы?
- на американском форуме вы задаете вопрос и вам дают ответ
- на еврейском форуме вы задаете вопрос и вам задают встречный вопрос
- на русском форуме вы задаете вопрос и вам долго объясняют почему вы такой мудак.
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Сообщение dgrett »

{позволяет стрелять себе в ногу,}
Если в ногу - так и ХсН. Вот если, например, надо обновлять индикатор каждые 3 мС, а епром пишет 10 мС, то это как и яйца отстрелить.
Я всё-всё узнAю и стану профессором.
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Сообщение parovoZZ »

Хотя вы, само-собой, можете считать, что ЦТ не имеет ни малейшего отношения к электронике.
К радиотехнике - так точно. Это отдельный пласт.
Просто говорили о том, что это плохая идея/практика и даже объяснили почему.
Я так и не увидел объяснения. Просто отсылки на практику и не более того.

Потому, что это не будет режимом "глубокого сна" (Power Down). Для того, чтобы таймеры тикали, есть другие режимы энергосбережения.
Можно подумать, что их много. Всего-то один - IDLE. Но это у AVR так. В MSP430 совершенно иначе. Асинхронный таймер тикает себе и тикает, потребляя менее микроампера. AVR такое и не снилось даже.
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

Land. Если ты так себя ведёшь, ты сам себе злобный Буратина. Мне вообще на тебя накласть. Это походу ты какие то свои обидки на нас проецируешь.
Контактная информация:
Ответить

Вернуться в «AVR»