![]() |
Модераторы: PILOT, ManiaK, Mazzi |
![]() ![]() ![]() |
|
kaspersky89 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 7.12.2007 Репутация: 1 Всего: 1 |
Тут пытался колдовать с прерываниями
на INT0 от внешнего положительного импульса происходит прерывание, переменная ROT увеличивается на единицу, а в подпрограмме которая запускается в цикле for (;;) { klapan_on_off(); } в зависимости от числа в переменной ROT устанавливается 1 или 0 на одну из ног порта. проблема в том что диод на ноге загорается не после пяти прерываний на ноге INT0 а сразу же. В следствии чего вопрос как настроить таимер на увеличение сётчика по внешнему прерыванию. Из каких регистров считывать значение, как их обнулять. А то информации много, а пока разберусь крыша поедет. ![]() (Покромсайте этот код если кто помочь захочет.) ![]() ******************************************************************************* #include <avr/io.h> #include <avr/interrupt.h> #include <avr/stdint.h> #include <stdlib.h> #include <avr/signal.h> #include <avr/wdt.h> #include <math.h> #include <inttypes.h> void IO_init(void); void interrupt_init(void); void klapan_on_off(void); char lecture,out,clock,vcap; volatile uint8_t rot; int main(void) { rot=0; IO_init(); interrupt_init(); for (;;) { klapan_on_off(); } return(0); } void IO_init(void) { DDRD=0x00; //set all pin of PORTD as input DDRB=0xFF; //set all pin of PORTB as output DDRC=0xFF; //set all pin of PORTB as output } void interrupt_init(void) { EICRA=0x0F; //Настройка прерываний INT0 and INT1 , прерывание происходит при высоком уровне сигнала(лог1) EIMSK=0x03; SREG=0x82; } ISR(INT0_vect) { rot++; } ISR(INT1_vect) { PORTB=0<<PB1; } void klapan_on_off(void) { if (rot==5){ PORTB=1<<PB1; } } |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 8 Всего: 99 |
1. По прерыванию INT1 все правильно происходит? Диод гаснет? 2. Уверен, что дребезга на INT0 нет? -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
kaspersky89 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 7.12.2007 Репутация: 1 Всего: 1 |
Набросал тут схему, и мне кажется с транзистора на INT0 наверно реально дребезг идёт, как мне потделать схему?
|
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 8 Всего: 99 |
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
kaspersky89 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 7.12.2007 Репутация: 1 Всего: 1 |
Кстати в ходе экспириментов возник ещё один вопрос, а экранирует ли кто микруху, а то по моему на входные ноги МК очень сильно действуют наводки, т.е. наверно нужна оптимизированая разводка платы(кратчайшие пути) + постройка входного каскада с учётом этого бага.
У кого какие мысли? |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 8 Всего: 99 |
А кто там есть? А вообще не думаю, лучше проверь четкость импульсов для прерываний... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
kaspersky89 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 7.12.2007 Репутация: 1 Всего: 1 |
Тут попытка сделать входной каскад заработает ли незнаю, но попробовать стоит. По идеи чёткость и устойчивость импульсов должна быть жёсткой до безобразия
![]() |
|||
|
||||
kaspersky89 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 7.12.2007 Репутация: 1 Всего: 1 |
Наконецто свершилось ЧУДО!!! Поставил защиту от дребезга на двух резисторах и конденсаторе, а также для дополнительной защиты старую микруху 155ЛН2 . Теперь работает как часы, всё точно и чётко. После определённого количества нажатий происходит нужное мне событие.
ПАНАЦЕЯ ОТ ВСЕХ ПРОБЛЕМ - ПРОСТЕЙШАЯ ЗАЩИТА ОТ ДРЕБЕЗГА!!! Смысл защиты от дребезга прост, он фрмирует короткий отрицательный импульс длительностью гдето 7нано или мили секунд (сорри забыл). есть ссылка в этой ветке на описание этой схемы с временными диаграммами. сейчас обьяснять и писать лень. Ещё разбирался с даташитом на Mega48 хорошо что английский неплохо знаю(даже собираюсь в Канаду на подработку свалить) там регистр весьма интересный и подлый ![]() внизу привожу схему входного каскада окончательный вариант, буду разрабатывать его под новую плату, так как то что сейчас есть это печатка полностью покоцаная от экспериментов. И тутже код на WinAVR который на данном этапе полностью функционален. Большая работа проделана(по крайней мере для меня полного новичка в МК и регистрах), подучил Си-шник, что такое регистры и т.д. Всётки приятно както становится от прилива новых знаний, уже чувствуешь себя гением ![]() Дальше будет больше, Теперь надо разбираться с таймером по переполнению, 16-битный или 8-битный, делитель на 1025, 256 и т.д. Покачто обовсём этом я имею смутное представление , так что надо изучать. Надеюсь до нового года успею всё сделать, иначе после празднованья и веселья наверно умрут последние мозговые клеткки окончательно ![]() ![]() Добавлено через 4 минуты и 32 секунды Забыл код добавить
|
|||
|
||||
kaspersky89 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 7.12.2007 Репутация: 1 Всего: 1 |
Меня смущает ещё конденсатор на входном каскаде, будут ли через него проходить импульсы, и зачем он там вообще нужен(просто тупо скопировал из одной схемы)?
Может его вообще убрать? Я поставил красный фирмовый кондёр WIMA на 0.1mf |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 8 Всего: 99 |
Форматируй нормально код, чтобы читался и выбирай правильную подсветку кода!
1024 Думаю объяснение тоже как и здесь http://electronix.ru/forum/index.php?s=&am...st&p=298189 А вообще: поздравляю! ![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Den64 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 6.4.2006 Где: Курск Репутация: 1 Всего: 2 |
Первый раз прочитал эту тему.... Както игнорировал всегда... Название наверно неинтересное. Если б было названо: "Устройство для ..." или "Схема таковато устройства".
Меня вобще смущает вся схема... Я б поставил 2 RC ФНЧ последовательно и усилитель на одном транзисторе... А какие переметры импульсов? (Форму импульсов видел на рисунке) И какие параметры катушки зажигания? Добавлено через 3 минуты и 34 секунды По идее схема хорошо должна пропускать дребезг а не полезный сгнал... --------------------
Инагда пишу звуками. |
|||
|
||||
kaspersky89 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 7.12.2007 Репутация: 1 Всего: 1 |
Поверь мне, я на экспириментах с фнч по твоей идее спалил пару транзисторов(ставил и транзистор с фнч и наоборот вариантах в 5-ти гдето), изуродовал печатку, а в результате дребезг так и шёл, так что единственно рабочий вариант правдо опробованый пока-что только от кнопки это последняя схема входного каскада А полную печатку первого варианта сейчас делаю , через пару часов скину на эту ветку Добавлено через 3 минуты и 3 секунды
Форму импульсов смотри в посте выше там до 300в гдето сигнал с ужасным дребезгом |
||||
|
|||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 3 Всего: 154 |
Можно использовать какой-нить фильтр низких частот, а потом формирователь импульсов (хотя-бы триггер шмидта).
|
|||
|
||||
kaspersky89 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 7.12.2007 Репутация: 1 Всего: 1 |
Ну вот как и обещал базовая простейшая версия, без LED-дисплея? кнопок и т.д.
Надеюсь заработает иначе поедет крыша точно ![]() ![]() ![]() ![]() ![]() |
|||
|
||||
Den64 |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 6.4.2006 Где: Курск Репутация: 1 Всего: 2 |
Значит неправильно элементы ращитал... Кстати у тебя на выходе конденсатор 220пФ и резистор 3.6к - ФВЧ настроенный на частоту среза > 3 Мгц по уровню 3 дБ. Краме дребезга ничего непропустит. Только если у тебя импульсы с частотой 3МГц, то они пройдут.
Какей частоты импульсов? --------------------
Инагда пишу звуками. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |