Например TDA7294

Форум РадиоКот • Просмотр темы - Использование ноги Reset без RSTDISBL
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт янв 29, 2026 05:51:14

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 22 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Пн окт 27, 2014 16:38:55 
Потрогал лапой паяльник

Зарегистрирован: Сб май 25, 2013 11:52:14
Сообщений: 364
Рейтинг сообщения: 0
Attiny13. Ассемблер.
Вопрос такого характера. Возможно ли после подачи низкого уровня на ногу Reset начинать программу не с начала, а с другого места?
Суть в том, что не хватает ноги, а бит RSTDISBL ставить не хочется.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Пн окт 27, 2014 17:07:46 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 782
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 5000
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
:))) что то мне подсказывает, что просто сбросится и начнет программу сначала... 8)

Только если в самой программе где-то сохранять в ПЗУ какую-нибудь переменную типа флага. А при инициализации после сброса ее проверять. И если она стоит, то переходить на другое место программы. Только как это отслеживать... не знаю...

_________________
Станислав


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Пн окт 27, 2014 17:25:45 
Потрогал лапой паяльник

Зарегистрирован: Сб май 25, 2013 11:52:14
Сообщений: 364
Рейтинг сообщения: 0
А строка прерывания .org0 rjmp reset?
И метку Reset поставить там, где нужно, а не вначале кода? Игнорируется ли эта строка при простой подаче питания на МК?
P.S. Я бы поэкспериментировал, но пока нет возможности


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Пн окт 27, 2014 17:28:37 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 782
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 5000
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Viper115 писал(а):
Игнорируется ли эта строка при простой подаче питания

Нет не игнорируется. Все будет последовательно.
Все равно при включении МК происходит сброс по резет. Там даже фьюзы есть подобные, которые его на земле держат, пока питание не выравняется. И плюс к ним еще более медленная цепь сброса из резистора на плюс и конденсатора на минус...( а в особо ответственных случаях, даже микросхемы применяют, которые питание замеряют очень быстро и резет жмут)... Специально, чтобы стабильнее запускался, без помех и т.д. Т.е. по сути резет, как первое прерывание. ))) Поэтому и говорю, что тока обработка флага из ПЗУ при инициализации... Но в ПЗУ медленно записывает, да и как угадаешь, что именно в этот момент можно нажимать на резет?

Может проще рассмотреть вариант с каким-либо дешифратором???? У которого много кнопок и пара выходов на МК? Тогда можно много кнопок нацеплять. Или матричная клавиатура?

_________________
Станислав


Последний раз редактировалось СКАЗОЧНИК Пн окт 27, 2014 18:07:21, всего редактировалось 2 раз(а).

Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Пн окт 27, 2014 17:32:45 
Потрогал лапой паяльник

Зарегистрирован: Сб май 25, 2013 11:52:14
Сообщений: 364
Рейтинг сообщения: 0
Придется собирать фьюз-доктор?))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Пн окт 27, 2014 17:34:26 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 782
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 5000
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Если вы отключили РЕЗЕТ, то вам только высоковольтный программатор поможет... :facepalm:

http://eldigi.ru/articles/prostoi_parallelnyi_programmator_dlya_avr
http://radiokot.ru/forum/viewtopic.php?f=20&t=65008

_________________
Станислав


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Пн окт 27, 2014 17:53:38 
Потрогал лапой паяльник

Зарегистрирован: Сб май 25, 2013 11:52:14
Сообщений: 364
Рейтинг сообщения: 0
Наполовину собран вот такой http://www.getchip.net/posts/059-isprav ... it-doctor/


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Пн окт 27, 2014 18:00:45 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 782
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 5000
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ну, да. Этот поможет.

_________________
Станислав


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Пн окт 27, 2014 18:02:03 
Потрогал лапой паяльник

Зарегистрирован: Сб май 25, 2013 11:52:14
Сообщений: 364
Рейтинг сообщения: 0
Ладно, спасибо. Тогда не буду изобретать велосипед


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Пн окт 27, 2014 18:04:42 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 782
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 5000
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Viper115 писал(а):
не буду изобретать велосипед

А иной раз изобретение велосипеда может дать неожиданные находки ))))

МОжет еще кто придет, да посоветует чего-нибудь умного. ))))

_________________
Станислав


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Пн окт 27, 2014 18:19:33 
Опытный кот
Аватар пользователя

Карма: 6
Рейтинг сообщений: 54
Зарегистрирован: Ср июн 11, 2014 09:43:13
Сообщений: 721
Откуда: США
Рейтинг сообщения: 0
Если питание не пропадает, то даже по нажатию ресета содержимое регистров общего назначения и ОЗУ сохраняется. Так что можете держать флаг в одном из регистров. Или в оперативке.

_________________
Fucking static initialization order fiasco


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Пн окт 27, 2014 18:22:54 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 782
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 5000
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Pink-Pank писал(а):
держать флаг в одном из регистров. Или в оперативке.


Ну, вот. ))) Можно и без ПЗУ обойтись.

В любом случае, сильно бы не рассчитывал на надежность таких решений.

_________________
Станислав


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Пн окт 27, 2014 18:56:28 
Опытный кот
Аватар пользователя

Карма: 6
Рейтинг сообщений: 54
Зарегистрирован: Ср июн 11, 2014 09:43:13
Сообщений: 721
Откуда: США
Рейтинг сообщения: 0
Поверьте, достаточно надежно. ) ОЗУ сохраняет свои значения до нескольких секунд после пропажи питания. ;) Не зря СИшные компиляторы принудительно зануляют объявленные переменные в стартовом коде. )
Ну, а если все-таки боитесь - команды SPM и LPM Вам помогут. ;)

_________________
Fucking static initialization order fiasco


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Пн окт 27, 2014 19:35:41 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18454
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Pink-Pank писал(а):
ОЗУ сохраняет свои значения до нескольких секунд после пропажи питания. ;) Не зря СИшные компиляторы принудительно зануляют объявленные переменные в стартовом коде.
cbiyst компиляторы делают это вовсе не из-за того, что ОЗУ долго сохраняет данные (что по большому счету неверно), а для обеспечения всегда одного и того же предсказуемого состояния программы при старте.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Пн окт 27, 2014 22:02:43 
Опытный кот
Аватар пользователя

Карма: 6
Рейтинг сообщений: 54
Зарегистрирован: Ср июн 11, 2014 09:43:13
Сообщений: 721
Откуда: США
Рейтинг сообщения: 0
Прям так и чешется язык поспорить. )))
А Вы не задумывались о том, почему компиляторы принудительно инициализируют ОЗУ, но не делают этого с периферийными регистрами? ) (Брать во внимание генератор кода так не любимого Вами CodeVision во внимание не будем. ;) ) Наверное, есть на то веская причина... :dont_know: А точно! Компилятор умеет предсказывать состояние периферии при старте! ) :tea:

_________________
Fucking static initialization order fiasco


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Вт окт 28, 2014 09:54:07 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 238
Зарегистрирован: Пт янв 29, 2010 10:27:40
Сообщений: 3868
Откуда: Москва
Рейтинг сообщения: 2
Viper115 писал(а):
Attiny13. Ассемблер.
Вопрос такого характера. Возможно ли после подачи низкого уровня на ногу Reset начинать программу не с начала, а с другого места?

СКАЗОЧНИК писал(а):
сохранять в ПЗУ какую-нибудь переменную типа флага. А при инициализации после сброса ее проверять.

Это и вправду будет велосипед... Причем с квадратными колесами :)))
Код:
   IN   R16,MCUCR ;читаем регистр состояния
   SBRS   R16,EXTRF   ;проверяем бит внешнего сброса
   RJMP   NO_EXT_RES ;если не было внешнего сброса, переход
;
;делаем что-то, если внешний сброс был
;
   RJMP   EXIT
NO_EXT_RES:   
;
;делаем что-то, если не было внешнего сброса
;
EXIT:

_________________
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Вт окт 28, 2014 10:04:01 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18454
Откуда: Новочеркасск
Рейтинг сообщения: 2
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Pink-Pank писал(а):
Прям так и чешется язык поспорить. )))
А Вы не задумывались о том, почему компиляторы принудительно инициализируют ОЗУ, но не делают этого с периферийными регистрами?... Наверное, есть на то веская причина... :dont_know: А точно! Компилятор умеет предсказывать состояние периферии при старте! ) :tea:

чешется чаще всего от нечистоплотности - помойте язык мылом.
периферия при сбросе (начале работы) инициализируется АППАРАТНО, поэтому нет никакой нужды инициализировать ее принудительно.
кроме того, язык Си придуман не для микроконтроллеров и не обязан предпринимать какие-то меры по работе с какой-то там ПЕРИФЕРИЕЙ.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Вт окт 28, 2014 10:08:42 
Опытный кот
Аватар пользователя

Карма: 6
Рейтинг сообщений: 54
Зарегистрирован: Ср июн 11, 2014 09:43:13
Сообщений: 721
Откуда: США
Рейтинг сообщения: 0
Цитата:
чешется чаще всего от нечистоплотности - помойте язык мылом.

:))) 5 баллов! ))
Так и в PC-шке память - по сути набор конденсаторов, который хранит свое последнее значение после прекращения питания еще какое-то время. ) Поэтому и инициализируют принудительно - чтобы неожиданностей не было. ) Если бы память, как и периферия автоматом сбрасывалась - никто бы не усложнял так жизнь. Согласитесь! )
К тому же, есть стартовый код, который с самим языком СИ вообще никак не связан. А завязан как раз на особенности конкретной платформы.

_________________
Fucking static initialization order fiasco


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Вт окт 28, 2014 11:31:01 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18454
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
мда, не получается у вас понять смысл сказанного... попробую по полочкам разложить:
1. программа в своей работе должна опираться на некую однозначную, т.е. не зависящую от разных внешних условий, опору. иначе говоря, состояние статических переменных должно быть каким-то однозначно определенным, чтобы программист мог на это опираться в своей работе.
2. по стандарту языка все статические переменные обнуляются. main по стандарту - самая первая функция - как же обнулить переменные еще до обращения к первой функции? стандарт об этом умалчивает - просто обнуляются и все. в случае с PC все просто - сегменты данных со всем начальным содержимым могут быть размещены прямо в ЕХЕ-файле и оттуда попадут в оперативку, это обеспечивает загрузчик ОС. а в случае с МК загрузчик отсутствует, поэтому придумали некий startup-код, который выполняет эти операции до того, как начнет работать main.
3. все эти проблемы возникли именно из-за того, что состояние ОЗУ после подачи питания непредсказуемо. об этом я писал сразу же.
ARV писал(а):
компиляторы делают это вовсе не из-за того, что ОЗУ долго сохраняет данные (что по большому счету неверно), а для обеспечения всегда одного и того же предсказуемого состояния программы при старте.


из вышесказанного можно сделать только один вывод: обнуление статических переменных делается только потому, что того требует стандарт языка Си. что я и пытаюсь вам объяснить. если стандарт не требует обнулять локальные переменные - они по умолчанию и не обнуляются.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Использование ноги Reset без RSTDISBL
СообщениеДобавлено: Вт окт 28, 2014 12:00:32 
Опытный кот
Аватар пользователя

Карма: 6
Рейтинг сообщений: 54
Зарегистрирован: Ср июн 11, 2014 09:43:13
Сообщений: 721
Откуда: США
Рейтинг сообщения: 0
Да, нашел эти пункты в стандарте. Вынужден согласиться. )
Но вот по поводу 3-го пункта хочу уточнить. )
Цитата:
все эти проблемы возникли именно из-за того, что состояние ОЗУ после подачи питания непредсказуемо.

Непредсказуемо потому, что явно не инициализируется аппаратно. Но ведь всем известно, на каких физических принципах строится оперативка. И что с ней бывает по пропаже питания. А у нас здесь даже не пропажа питания. А просто системный сброс. Поэтому вся ОЗУ и РОНы будут хранить свои последние значения, которые были до сброса, до тех пор, пока не будут изменены на другие. Вот именно это я и предлагал использовать.

_________________
Fucking static initialization order fiasco


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  1,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y