| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Вопрос по прерываниям ATtiny2313.
27.08.2008, 21:53
|
|
|
Временная регистрация
Регистрация: 10.02.2007
Адрес: Default city
Сообщений: 65
Сказал спасибо: 3
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Вопрос по прерываниям ATtiny2313.
Вопрос вот в чем делаю реверсивный счётчик на 2313, использую внешние прерывания (сигналы int0, int1) в зависимости от того на какой вход приходит сигнал сначала счётчик либо складывает либо вычитает.
Так вот в чём проблема, она не обрабтывает прерывания. сигналы оба стоят на вход, режим срабатывания по переднему фронту, подаю импульсы а реакция ноль. Иногда он берёт и сам срабатывает, типа как с опозданием.
Что нужно сделать?
Понимаю что этой информации маловато, но не знаю что именно нужно, если что-то ещё нужно, только скажите.
|
|
|
|
27.08.2008, 23:21
|
|
|
Прописка
Регистрация: 08.02.2008
Сообщений: 150
Сказал спасибо: 22
Сказали Спасибо 19 раз(а) в 19 сообщении(ях)
|
прерывание отконфигурировано правильно? все регистры по даташиту запрограммировали?
попробуйте просто тогда написать программу для проверки, когда на ножке, соответствующей прерыванию единица, то выводим на светодиод (или в порт или еще чего) какое-то значение... и посмотрите, будет ли работать все?
на чем пишете? С или асм? какой компилятор?
|
|
|
|
Сказали "Спасибо" Superki
|
|
|
28.08.2008, 10:04
|
|
|
Гражданин KAZUS.RUN
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Выложите лучше кусок кода...
|
|
|
|
Сказали "Спасибо" dimonbest
|
|
|
28.08.2008, 18:37
|
|
|
Временная регистрация
Регистрация: 10.02.2007
Адрес: Default city
Сообщений: 65
Сказал спасибо: 3
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Всё, кажется сам разобрался, хотя и не понимаю почему так. Подсадил входы int0, int1 на землю через резисторы сопротивлением 2кОм (думаю можно и другие, но что первое нашёл) и всё заработало наура.
Поворюсь, почему так не понял, может есть какой-то програмный способ этого избежать. Если кто знает поделитесь.
|
|
|
|
29.08.2008, 09:11
|
|
|
Прописка
Регистрация: 08.02.2008
Сообщений: 150
Сказал спасибо: 22
Сказали Спасибо 19 раз(а) в 19 сообщении(ях)
|
ООО))) у меня такая же шняга была.. решил абсолютно также... ну я для себя решил так - ножки в высокоимпедансном состоянии находятся, то есть у них очень большое входное сопротивление.. а если они находятся в воздухе, то есть никуда не подключены, то там может быть любой потенциал, который может возникнуть из-за любых мелочей... например рядом на плате идет дорожка с питанием, а плату не промыли после пайки и так далее.. поэтому всегда надо приводить потенциал входа к какому-то значению.. в Вашем случае так и сделали)))
программного способа нету... и наверно быть не может)))
|
|
|
|
Сказали "Спасибо" Superki
|
|
|
29.08.2008, 09:46
|
|
|
Заблокирован
Регистрация: 05.05.2008
Сообщений: 121
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
На этом мк сам программировал прерывания, все работало отлично. Читайте литературу.
|
|
|
|
29.08.2008, 09:47
|
|
|
Частый гость
Регистрация: 30.09.2006
Сообщений: 45
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
а что подключено на ножки? программно можно подвесить эти входы на плюс, все зависит от того, что приходит на вход, если там например стоит кнопка, которая замыкает контакт на плюс, то собственно ничего и не произойдет, так как если кнопка отпущена, то будет плюс через резистор, если нажата, то будет плюс через контакт кнопки, и прерывание не возникнет, тогда тут логично, что при подсаживании инт0, инт1 на землю все начинает работать.
|
|
|
|
Сказали "Спасибо" Ura_SX1
|
|
|
29.08.2008, 10:27
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.10.2007
Сообщений: 2,758
Сказал спасибо: 1,100
Сказали Спасибо 1,033 раз(а) в 568 сообщении(ях)
|
Вообще-то ещё до разработки схемы нужно почитать, как устроен вход - какое у него сопротивление, про защитные диоды, про pullup резисторы (включаемые программно). Потом, если спрашиваете, прилично нарисовать схему, чтобы было понятно, откуда берётся сигнал.
Вы нашли решение - надо его себе обьяснить. Потому что метод тыка даёт результат в одном конкретном случае, но абсолютно не гарантирует работу при малейших изменениях условий (включая настроение людей  )
Читайте литературу. Успехов.
|
|
|
|
Сказали "Спасибо" makakus
|
|
|
29.08.2008, 10:45
|
|
|
Временная регистрация
Регистрация: 10.02.2007
Адрес: Default city
Сообщений: 65
Сказал спасибо: 3
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Я когда думал над этим, пришёл к тому же выводу что и Superki.
Хотя на это я не расчитывал, привык что если на выводе ничего нет, то там ноль.
|
|
|
|
29.08.2008, 11:07
|
|
|
Частый гость
Регистрация: 30.09.2006
Сообщений: 45
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
ноль или не ноль, так думать нельзя, все зависит от реализации. например 155 серия если вход болтается в воздухе, то там как раз единица.
|
|
|
|
Сказали "Спасибо" Ura_SX1
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
ATtiny2313 и Proteus 7.1
|
rocky7 |
Микроконтроллеры, АЦП, память и т.д |
1 |
23.03.2009 23:30 |
|
Проблема с ATtiny2313
|
kvark85 |
Микроконтроллеры, АЦП, память и т.д |
28 |
26.02.2009 14:34 |
|
AT90S2313 vs Attiny2313-20
|
Edward_tlt |
Микроконтроллеры, АЦП, память и т.д |
68 |
20.03.2008 23:11 |
|
Програмирование attiny2313
|
Gorgic |
Микроконтроллеры, АЦП, память и т.д |
1 |
15.12.2007 00:00 |
|
Проблема с USART в ATTiny2313
|
Фокс |
Микроконтроллеры, АЦП, память и т.д |
4 |
09.04.2005 20:02 |
Часовой пояс GMT +4, время: 08:13.
|
|