|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|
Замена микросхемы 1827ВЕ1-0000000 в Г4-164 на AVR -МК31.08.2019, 07:43. Показов 29941. Ответов 229
Метки нет (Все метки)
Как заменить 1827ВЕ1-0000000 (аналог 586ВЕ1, система команд в книжке Гамкрелидзе, кажется, отрицательная логика на мультиплексированной шине адреса-данных , нестандартный UART ) в Г4-164 на AVR -МК ATMEGA8A, ATMEGA48, ATMEGA8535, используя , например, маскированные прерывания от одного из портов, битвайсовую эмуляцию пинов (шину ПЗУ можно не использовать ), подпрограммы задержки , используя С++, ассемблерные вставки ? Предусмотреть частоты , а которых переключаются фильтры, увеличение девиации в n раз в коэффициентах АЦП при включении делителей на n, таблицу коэффициентов в ЦАП в децибелах (с учетом , например, того , что 31,7-100 мВ , на 31,6 переключается аттенюатор и включается верх напряжения ЦАП ОН ), обработку прерывания от КОП и другие функции , как по инструкции (https://www.astena.ru/teh_3.html ) ?
0
|
|
| 31.08.2019, 07:43 | |
|
Ответы с готовыми решениями:
229
Замена микросборок 2.030.036 ,2.030.034 в Г4-164, Г4-176 замена микросхемы Замена микросхемы AT49F002NT |
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|
| 06.03.2020, 12:05 [ТС] | |
|
0
|
|
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|||||||||||||||||||||||||||||||||||||||||
| 06.03.2020, 15:33 [ТС] | |||||||||||||||||||||||||||||||||||||||||
|
Если в регистрах информация не будет меняться, пока нет строба сдвига по соответствующему адресу, в подпрограммах можно и оставить подачу ИЗП после всех байтов , чтобы не мерцало , все-таки после всех программ сдвига подавать , когда все готовы (архитектура и инструкция, быстрее выполняется ).
Добавлено через 18 минут
Для проверки реакции на основные кодовые комбинации и посылки в эмуляторе может понадобиться подпрограмма дешифрации семисегментного кода с знаками прочерка, подпрограмма декодирования знакоместа , выключенного , выделенного (мигающего ) разряда
Уточнить инверсии Добавлено через 15 минут Код мерцающего разряда выбранного режима отправлять после всех цифр с адресом знакоместа DIGITS : { "1" "0" "0." "0" "0" "0" "0" } ;{ "0" "0" "0."} { "0" "0"}{"1" "0" "0" "0."} DCCODE : 0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; ; 7 ; 8 ; 9 ;; a ; b ;; c ; d ; e ; f ; Шина Информ: 1) DC_CODE_8 (номер мерцающего разряда , бит 3 прямой код,перепись по фронту СИ Мерц ) 2) DC_CODE_4 (номер мерцающего разряда , бит 2 прямой код,перепись по фронту СИ Мерц ) 3) DC_CODE_2 (номер мерцающего разряда , бит 1 прямой код,перепись по фронту СИ Мерц ) 4) DC_CODE_1 (номер мерцающего разряда , бит 0 прямой код,перепись по фронту СИ Мерц ) (без ИЗП ОЗУ ) выключение мерцания по лог 1 на выкл мерц, вкл мерцания автоматически по сигналу СИ Мерц Добавлено через 9 минут
У нас в дешифраторе кодов зажигается по единице uint8_t SevenSegment(uint8_t Digit , uint8_t Comma ) { /* LSB e; c; b; d; f; g; a; h MSB a b c d e f g h 1 on the inform bus means turn on segment ecbdfga; */ uint8_t db=0; switch (Digit){ //hagfdbce case 0 : db= 0b01110111; break ; // a,b,e,g,f,c=1 case 1 : db= 0b00010010; break ; // c,f=1 case 2: db= 0b01101011; break; // a,c,d,e,g=1 case 3: db= 0b01111010; break; // a,c,d,f,g=1 case 4 : db= 0b01011110; break; // a,b,c,d,f=1 case 5: db= 0b01111100; break; // a,b,d,f,g=1 case 6: db= 0b01111101; break; // a,b,d,e,f,g=1 case 7: db= 0b01010010; break; // a,c,f =1 case 8: db= 0b01111111; break; //a,b,c,d,e,f,g =1 case 9: db= 0b01111110; break; //a,d,c,d,f=1 case f : db= 0b0000100; break; // symbol '-' for FM //case c: db= 0b0000000; break; // } if(Comma==1) { db|=0b10000000; }// h return db; } Добавлено через 9 минут
Проверить по схеме на корректность уровней и адаптировать под них другие подпрограммы, оптимизировать программы задержки .
0
|
|||||||||||||||||||||||||||||||||||||||||
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|
| 06.03.2020, 16:04 [ТС] | |
|
Некоторые файлы
0
|
|
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|||||||||||||||||||||||||||||||
| 07.03.2020, 02:09 [ТС] | |||||||||||||||||||||||||||||||
|
https://forum.arduino.cc/index.php?topic=107920.0
Добавлено через 2 минуты https://www.mikrocontroller.net/topic/150282 Добавлено через 7 минут http://www.cplusplus.com/reference/cstdlib/malloc/ Добавлено через 17 минут В конце ввода массива с переменным количеством цифр (байтов ) может потребоваться, например такая подпрограмма (до достижения максимального количества цифр используется подпрограмма добавления введенной цифры в массив введенных цифр размером не больше допустимого и инкрементирование счетчика байтов (цифр(чисел), соответствующих скан-кодам или сообщениям тела данных кодов КОП(GPIB) через декодер,если точка(но не конец сообщения , а разделитель) , то не инкрементируется счетчик и присваивается значение переменной положения запятой ) ) , только для цифр (проработать положение переменной CommaPos)
Можно к *ByteOut что нибудь с new (malloc(), delete[]) приделать (у нас new нет, пока так, на точки и запятые правильная реакция должна быть , на вторые защита от ошибок, как в фирменном случае ):
https://ru.wikipedia.org/wiki/... 0%B8%D0%B2 Добавлено через 13 минут Динамический массив для AVR на Си Добавлено через 16 минут http://fitu.npi-tu.ru/assets/f... -s-v6..pdf см . про malloc, calloc, realloc,free , для добавления в динамический массив следующего принятого байта в стек и переразметки массива (для компа бывает, для АВР может глючить или не потянет стабильно ,выполняется медленно ,сильно жрет ОЗУ и регистры , работать с uint8_t ). Добавлено через 23 минуты https://learnc.info/c/memory_allocation.html Добавлено через 2 часа 31 минуту Как правильно делать первичную разметку стека на 1 байт и добавлять по байту (применительно к AVR C в дальнейшем )?
Если не "предразмечать" динамический извне (иначе можно и статический со скобками применить, не более 7 и просеивать , иногда так лучше , а возвращать переменной размерности под функцию (7 или 6 (заполнять 7) для частоты , 3 для ЧМ ,2 для АМ, 4 для выхода )), а размечать и наращивать изнутри программы добавления байта в стек (будет использоваться и для КОП, и для клавиатуры ) , как правильнее применять malloc ,realloc , можно ли без sizeof(uint8_t), у нас в байтах для однобайтных (если потом для контроллера )? Добавлено через 1 час 6 минут https://stackoverflow.com/ques... ction-in-c Добавлено через 11 минут https://www.log2base2.com/C/po... -in-c.html Добавлено через 22 минуты https://stackoverflow.com/ques... c-function Добавлено через 24 минуты
Нужно ,чтобы после запятой было не более указанного количества знаков , до запятой переменное, не более требуемого (в зависимости от режима ) Добавлено через 3 минуты Много места занимает и долго считается, может просто массивы со скобками сделать ? Но там про стек принятых символов равен пустому приводит к ветвлению . Можно "асимптотически" сделать. Тогда другие типы данных и типы данных в структурах. Добавлено через 1 час 0 минут Один из вариантов(доработать обработку запятых и количество знаков до и после запятой), можно и на указатели, массив с плавающим началом переделать Добавлено через 32 минуты
0
|
|||||||||||||||||||||||||||||||
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
||||||||||||||||||||||||||
| 07.03.2020, 13:53 [ТС] | ||||||||||||||||||||||||||
|
Программа дописывания нового байта КОП в стек и подпрограмма ветвления КОП (дешифрации по буквам заголовка данных ) по прерыванию 3 и обработкт прерываний 1 и 2 от передней панели с дешифрацией немного другая (для компьютерного моделирования может потребоваться и та, что с ветвлением , для контроллера смотреть алгоритм в инструкции , флаги по прерываниям и формирование внутреннего минтерма дп (в плате связи, а не на шине КОП ) , инициирующего завершение "рукопожатия" после приема байта для КОП ).
Добавлено через 14 минут Возможно ,для аналогичности алгоритма алгоритму из инструкции для точек 2, 7,8,6, 1 на блок-схеме в инструкции стек должен быть
Добавлено через 3 минуты Дешифрация до результирующих команд с двумя дешифраторами . Можно прикинуть
(у нас по умолчанию нули в ячейках и положительная логика, но можно инициализировать флаги ), хотя с нулем результат и маску сравнивать проще Вообще, это обобщенно,упрощенно , функционально , для юзеров, когда он в сборе
0
|
||||||||||||||||||||||||||
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|
| 07.03.2020, 21:42 [ТС] | |
|
Шаблон с модальными окнами (дописать подпрограммы , под DevC++)
0
|
|
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|
| 08.03.2020, 01:03 [ТС] | |
|
добавил кнопки раворачивания дочерних окон
0
|
|
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|||||||||||||||||||||||||||||||||||||||||
| 09.03.2020, 05:06 [ТС] | |||||||||||||||||||||||||||||||||||||||||
|
Данные с КОП
В нашей программе в сообщениях при нажатии кнопок бит ,посылаемый первым , отображается слева , когда валкодер крутят на 1 позицию по часовой стрелке, посылка равна восемь нулей. При ДУ ( при совпадении МАП , ложном ОИ, если ДУ истинно ,нет разадресации,нет ПНМ,ВНМ , когда горит светодиод ДУ ) прерывания с клавиатуры закрыты , опрос для кодов от валкодера и клавиатуры программно не подается. Добавлено через 7 минут Для совпадения наших битов с принятыми можно записать
Добавлено через 26 минут Доработать эмулятор для возможности ввода с 2 и 3 дочерних окон ( делать окно активным, или уточнить как это сделать ) . Добавлено через 14 минут посмотреть в книге Петзольда (и т.д. ) . Добавлено через 3 часа 54 минуты В виртуалку можно добавить хендлеры контролов, заменяющих светодиоды, пробросив их от заданного дочернего окна при вызове, а вот из окна в окно и с активным дочерним окном пока проблемы (не вводится, не делается активным, но кнопка нажимается, переписать ) :
Проверить отрицательность логики по прер1, прер2 и прер3 (особенно ). Инд ДУ =0 ( полож. )(выход 14 = 1 ), когда триггер сброшен (прибор разадресован, хотя бы по кнопке на передней панели ), на выходе 11 D11.4 приоритетно лог. 1 от нуля , тогда прер3=1 ТТЛ , нет сигнала (отрицательная логика ). Добавлено через 48 секунд Схему прерываний дорабатывать. Добавлено через 30 минут decode.h (может потребоваться для виртуалки и моделирования, подключаемые файлы и внешние триггерные модули подключать в файле над ним , логика ТТЛ, коды шин для подпрограмм приводятся к положительной логике внутренней шины после ТТЛизации отрицательной логики с открытым коллектором для шины и положительной с ОК для ГП и ДП ( отрицательной для нГП, нДП) )
Кнопка ДУ на передней панели обычно выполняет функцию внм (rtl), светодиод ДУ (REN, или прибор адресован). минтерм nrtl- это инверсия от rtl, истинного когда кнопка ДУ нажата (там на корпус замыкается, поэтому у нас nrtl=0, когда кнопка нажата) . Это обрабатывается без процессора , как и сигнал сегмента ошибки ФАПЧ (там из ЧФД провод, хотя от неправильных кодов это косвенно зависит).
0
|
|||||||||||||||||||||||||||||||||||||||||
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|
| 10.03.2020, 20:22 [ТС] | |
|
Правильный вызов прерываний по срезу Прер1,Прер2 , Прер3 ( запуск отрицательной логикой ). Прер2 поддерживается в 1 (за счет одновибраторов, фильтрующих от импульсов при нажатии кнопок ) ,пока кнопка нажата, прерывание вызывается по срезу этого сигнала (когда кнопка отжата, в виртуалке можно переименовать в OnButtonS__Release() ). Валкодерное прерывание прер1 через одну позицию переходит из 1 в 0 , это вызывает инкремент или декремент числа обработкой прерывания по срезу (переходу из 1 в 0 ). Для сопряжения с такими сигналами на каждый вход можно добавить инвертор или изменить обработку прерывания на обработку по срезу, прерывание 3 приоритетнее прерывания 2, прерывание 2 приоритетнее прерывания 1 (и изменить направление включения диодов и потенциал подтягивающего резистора для отслеживания нуля на входе) .
0
|
|
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|||||||||||
| 10.03.2020, 22:21 [ТС] | |||||||||||
|
Числа набираются до конца индикации , запятая только один раз(дальше игнорируется ), при неформатных ввод игнорируется, при большем количестве знаков после запятой цифры отсекаются после требуемого количества знаков после запятой (позиция точки ) для режима .
Добавлено через 6 минут і-ю программу обработчика кнопок можно назвать OnButtonSm_n _Up() Добавлено через 34 минуты Реакцию на кнопки в виртуалке изображать упрощенно (при отжатии обрабатывать подавать сообщения ), на кнопку ДУ (RTL) реагировать упрощенно ( подача rtl, в оригинале при нажатии nrtl=0( или rtl=1),вызывает разадресацию , при отжатии nrtl=1 ( или rtl=0) ,пассивный для схемы сброса триггера ), просто обеспечив реакцию на сигнал разадрресации по нажатии кнопки , аналогично схеме при nrtl=0 . Добавлено через 36 минут Реакцию на кнопки эмуляции вращение валкодера по часовой стрелке (вверх) и против часовой стрелки можно только для кодов сделать упрощенными , формируя за 1 нажатие (вращение на срабатывание триггера на включение и выключение бита Прер1 ) Прер 1 (его срез, =0 в оригинале или его вызов функционально) скан-код , заполненный 8 нулями(бит читается по соответсвующему адресу ввода в режиме ввода после подачи импульса опроса с ЭВМ (предотвратить ложное состояние "выход на выход" при чтении и установки адреса на шине пина 34 ) ) при вращении по часовой стрелке и заполненный чередующимися нулями и единицами (зависит от предыдущих состояний, логика JK триггера с инверсным входом K и J=1, инверсией результата при считывании , съеме с соответствующих битов ). Добавлено через 28 минут https://exploreembedded.com/wi... Interrupts https://forum.arduino.cc/index.php?topic=585581.0 https://embedderslife.wordpres... -int0-avr/ https://www.avrfreaks.net/foru... e-atmega16 Внешнее прерывание Mega16 - [РЕШЕНО] http://www.cyberforum.ru/avr/thread1617040.html
даташит на выбранный контроллер , эскиз схемы включения, биты для соответствующего прерывания , результирующая реакция - вызов обработчика прерывания или установка флага прерывания по срезу Прер3, Прер2,Прер1 . С битами подтяжки и буферами определиться. После вызова обработчика прерывания до выполнения команд чувствительность к прерываниям отключать ( cli(); ) до обработки прерывания в программе, потом включать , например в mainloop forever после подпрограмм декодирования флагов и отправки сообщений. Добавлено через 5 минут http://ww1.microchip.com/downl... oc2466.pdf Добавлено через 23 секунды http://www.circuitstoday.com/w... pts-in-avr Добавлено через 1 минуту http://www.customelectronics.r... -enkodera/ Добавлено через 2 минуты https://www.avrfreaks.net/foru... definition
0
|
|||||||||||
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|
| 10.03.2020, 22:24 [ТС] | |
|
rising edge - по фронту (если с инверторами и по фронту)
falling edge - по срезу (наш результирующий случай)
0
|
|
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
||||||||||||||||
| 10.03.2020, 23:37 [ТС] | ||||||||||||||||
|
https://www.google.com/search?... 07&bih=690
Добавлено через 28 секунд http://www.circuitstoday.com/w... pts-in-avr Добавлено через 3 минуты
Уточнить по даташиту для трех прерываний их правильные названия для нашего процессора и выбранного приоритета прерываний (или обработки по прерыванию по маске синдрома входных кодов, если с диодами с расстановкой приоритета обработчиков вручную, если АТМега48А, можно и для АТМега16А ). Добавлено через 15 минут Если писать программу на ассемблере, может обязательно потребоваться разбивка таблиц декодировщиков для напряжения ниже 317-101 мВ и 0-9,9 (-дБВ) с учетом ослабления ступенчатого аттенюатора на старший и младший байт таблицы и побайтная загрузка выборки из них (можно использовать указатели, инкремент адреса (PC) на гридликовое число , соответствующее номеру ячейки ) в подпрограмму отправки . Сравнивать для частоты ,ЧМ и выхода можно и байты с нибблами в двоично-десятичном коде, но для вычисления потребуется специальный тип данных и подпрограмма с обработчиком переносов и преобразованием данных . Добавлено через 33 секунды Для правильной выборки и кодирования потребуется программа кодопреобразователя. Добавлено через 46 минут Для 316-101 мВ
Для логарифмического, через 10 дБВ, 0-9,9 (-дБВ)
0
|
||||||||||||||||
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|
| 11.03.2020, 00:00 [ТС] | |
|
Информация, отображаемая в этой теме не рекомендована для использования в промышленности без пересмотра, доработки , перевода на правильные языки программирования с правильными лицензиями , проверки правильности, а только отображает в полемической форме некоторые программные методы и способы для оценки возможности применимости некоторых микроконтроллеров и способы размещения в их памяти данных для оценки возможности решения задач, указанных в теме .
Основные опыты проводить виртуально, теоретически . Для практического применения эта информация не гарантирует правильности применения некоторых данных без пересмотра , переоценки, правильной ссылки на некоторые авторские права. Информация в этой статье не является дипломом или контрольной работой, может не использоваться в образовательных целях как правильная или рекомендованная для использования. В террористических целях не использовать.
0
|
|
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|||||||||||
| 15.03.2020, 00:26 [ТС] | |||||||||||
|
https://www.avrfreaks.net/foru... -correctly
Добавлено через 5 часов 39 минут piniosubs.asm
siosubs.asm (адаптировать, переделать, дополнить , проверить )
0
|
|||||||||||
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|||||||||||||||||||||||||||||||
| 15.03.2020, 04:12 [ТС] | |||||||||||||||||||||||||||||||
|
продолжение siosubs.asm
информация для размышления из интернета на тему загрузки массива из памяти программ
https://microelectronic.at.ua/... r/1-1-0-17 Добавлено через 21 минуту http://www.rjhcoding.com/avr-asm-pm.php Добавлено через 12 секунд Можно и старший и младший поочередно Добавлено через 22 минуты
тестовая программа на асссемблере по массивам (независимо от схемы, просто для дебаггера и проверки проекта , выводит в порты старший и младший байт таблицы дешифратора логарифмичского масштаба , для 0,316-0,101 добавить вычитание из регистровой пары с числом 316 числа 316...101 (два раза , младший и старший байт ), к которому приводятся показания ,если секция 10 дБ включена ). Добавлено через 36 минут Будет ли
В другую потом нужно будет вводить 32-битное число , значит нужны будут две регистровые пары последовательно , но у нас указатель можно заново инициализировать, разбить по байтам и парам байтов с переносом , самое проблемное у нас семиразрядное десятичное число в шестнадцатеричном виде или до семи регистров (ячеек ) последовательно, только по байтам как массив байтов с цифрами в двоично-десятичном коде 2421(8421) .
0
|
|||||||||||||||||||||||||||||||
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|
| 15.03.2020, 20:14 [ТС] | |
|
Про прерывание 2 (проблема с инверторами или внедрение диодов, из интернета и даташита )
" Для разрешения или запрещения внешних прерываний предназначен управляющий регистр GICR (General Interrupt Control Register). Установка битов INT1, INT0 или INT2 разрешает прерывания при возникновении события на соответствующем выводе микроконтроллера AVR, а сброс — запрещает. Естественно нужно установить еще и флаг глобального разрешения прерываний - I, который расположен в регистре SREG. Без него вообще ни одно прерывание вызываться не будет. Внешнее прерывание может происходить по одному из условий: – по низкому уровню на выводах INT0, INT1, – по любому изменению логического уровня на выводах INT0, INT1 – по спадающему фронту сигнала на выводах INT0, INT1, INT2, – по нарастающему фронту на выводах INT0, INT1, INT2. Небольшая иллюстрация, чтобы уяснить разницу между фронтом и уровнем сигнала. Условия генерации прерываний устанавливаются с помощью конфигурационных регистров. Для INT0, INT1 – это регистр MCUCR (MCU Control Register). Для INT2 – MCUCSR (MCU Control and Status Register) В таблице ниже приведены возможные значения разрядов ISC01, ISC00 и соответствующие им условия генерации внешнего прерывания. MCUCR – MCU Control Register 7 6 5 4 3 2 1 0 SM2 SE SM1 SM0 ISC11 ISC10 ISC01 ISC00 ISC01 ISC00 Description 0 0 The low level of INT0 generates an interrupt request. 0 1 Any logical change on INT0 generates an interrupt request. 1 0 The falling edge of INT0 generates an interrupt request. 1 1 The rising edge of INT0 generates an interrupt request. ISC11 ISC10 Description 0 0 The low level of INT1 generates an interrupt request. 0 1 Any logical change on INT1 generates an interrupt request. 1 0 The falling edge of INT1 generates an interrupt request. 1 1 The rising edge of INT1 generates an interrupt request. MCUCSR – MCU Control and Status Register Bit 6 – ISC2: Interrupt Sense Control 2 The Asynchronous External Interrupt 2 is activated by the external pin INT2 if the SREG I-bit and the corresponding interrupt mask in GICR are set. If ISC2 is written to zero, a falling edge on INT2 activates the interrupt. If ISC2 is written to one, a rising edge on INT2 activates the interrupt. Edges on INT2 are registered asynchronously. Pulses on INT2 wider than the minimum pulse width given in “External Interrupts Characteristics” on page 283 will generate an interrupt. Shorter pulses are not guaranteed to generate an interrupt. When changing the ISC2 bit, an interrupt can occur. Therefore, it is recommended to first disable INT2 by clearing its Interrupt Enable bit in the GICR Register. Then, the ISC2 bit can be changed. Finally, the INT2 Interrupt Flag should be cleared by writing a logical one to its Interrupt Flag bit (INTF2) in the GIFR Register before the interrupt is re-enabled. GICR – General Interrupt Control Register 7 6 5 4 3 2 1 0 INT1 INT0 INT2 – – – IVSEL IVCE Bit 7 – INT1: External Interrupt Request 1 Enable When the INT1 bit is set (one) and the I-bit in the Status Register (SREG) is set (one), the external pin interrupt is enabled. The Interrupt Sense Control1 bits 1/0 (ISC11 and ISC10) in the MCU General Control Register (MCUCR) define whether the External Interrupt is activated on rising and/or falling edge of the INT1 pin or level sensed. Activity on the pin will cause an interrupt request even if INT1 is configured as an output. The corresponding interrupt of External Interrupt Request 1 is executed from the INT1 interrupt Vector Bit 6 – INT0: External Interrupt Request 0 Enable When the INT0 bit is set (one) and the I-bit in the Status Register (SREG) is set (one), the external pin interrupt is enabled. The Interrupt Sense Control0 bits 1/0 (ISC01 and ISC00) in the MCU General Control Register (MCUCR) define whether the External Interrupt is activated on rising and/or falling edge of the INT0 pin or level sensed. Activity on the pin will cause an interrupt request even if INT0 is configured as an output. The corresponding interrupt of External Interrupt Request 0 is executed from the INT0 interrupt vector. • Bit 5 – INT2: External Interrupt Request 2 Enable When the INT2 bit is set (one) and the I-bit in the Status Register (SREG) is set (one), the external pin interrupt is enabled. The Interrupt Sense Control2 bit (ISC2) in the MCU Control and Status Register (MCUCSR) defines whether the External Interrupt is activated on rising or falling edge of the INT2 pin. Activity on the pin will cause an interrupt request even if INT2 is configured as an outp Прерывание INT2 может происходить только по фронтам сигнала, поэтому для установки условий используется всего один бит - это бит ISC2 регистра MCUCSR. ISC2 0 по срезу на выводе INT2 1 по фронту на выводе INT2 Кстати, при смене значения бита ISC2 может быть сгенерировано прерывание INT2. Чтобы этого не происходило, нужно производить модификацию бита ISC2 так: запретить внешнее прерывание, поменять бит ISC2, сбросить флаг прерывания — INTF2 (смотри ниже) и опять разрешить прерывание INT2. Обнаружение фронтов сигналов на выводах INT0/INT1 осуществляется синхронно, то есть по сигналу тактового генератора. Минимальная длительность входного импульса, гарантирующая генерацию прерывания, составляет один период тактового сигнала микроконтроллера AVR. " Добавлено через 6 минут Придется через диоды делать на одно или два прерывания
0
|
|
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|
| 15.03.2020, 21:01 [ТС] | |
|
Вариант с одним прерыванием, диодами и флагами в ОЗУ (по синдрому, захваченному по прерыванию с порта PB, отфильтрованному от неинформативных составляющих выставляются флаги в ОЗУ , в основной программе реагируют только на флаги , после этого разрешается следующая обработка прерываний ).
0
|
|
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
||||||||||||||||||||||||||
| 15.03.2020, 23:11 [ТС] | ||||||||||||||||||||||||||
Можно отключить подтяжку, чтобы не влияла на информ, приделав обычные резисторы
При инициализации порта А отключать модуль АЦП (после сброса обычно это так ). В атмега48 маловато ОЗУ (может, хватит ), в атмега8 мало памяти программ и неудобные пины . 16-я дорогая, но в нее поместится. Добавлено через 3 минуты
0
|
||||||||||||||||||||||||||
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|
| 15.03.2020, 23:14 [ТС] | |
|
таблицу индикации можно сделать аналогично следующей статье , доработав под наши коды под read_db_progmem
0
|
|
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|||||||||||||||||||||
| 16.03.2020, 02:18 [ТС] | |||||||||||||||||||||
Отправлять можно и в цикле побайтно Добавлено через 21 минуту В таблице
Программа для проверки возможности обращения к ОЗУ (подставить метку последней ячейки , вручную в дебаггере проверить, где 01 записалось в ОЗУ, в дальнейшем применять ограничители для программ ввода переменных, ячейка не менее ,чем 0x1EB ) .
0
|
|||||||||||||||||||||
| 16.03.2020, 02:18 | |
|
Помогаю со студенческими работами здесь
140
Hp pavilion g6 замена микросхемы видео-чипа Acer Aspire One D255. Замена микросхемы U13 Acer aspire 5602wlmi замена сгоревшей микросхемы PG1AY 6900AS СМА Samsung Q1235, Замена микросхемы STK621-015. Есть аналог!!! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации:
В классе Работник добавить:
накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни
коэффициентПрезентеизма — снижает продуктивность. . .
|
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день.
Для работы необходим браузер,. . .
|
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности
Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано.
. . .
|
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
|
|
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива
Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
|
Диалоги с ИИ
zorxor 23.05.2026
Насколько я понимаю - Вы - Искусственный Интеллект. Это так?
Да, всё верно. Я — искусственный интеллект.
Я представляю собой большую языковую модель, созданную для помощи в самых разных задачах. . . .
|
Модель здравосохранения 14. Собираем всю модель вместе.
anaschu 22.05.2026
Модель собрана. В будущих постах на видео я покажу, как она работает.
В этом посте запускаем её, проверяем результаты и разбираем что можно с ней делать дальше.
Перед запуском проверяем. . .
|
Модель здравоохранения 13. Добавление самой системы здравоохранения.
anaschu 22.05.2026
В предыдущем посте мы настроили болезни. Теперь добавим события, которые управляют здоровьем всего коллектива, а также настроим рабочий график и расчёт финансов.
В Main создаём четыре события. . . .
|