-
- Ну разумеется, счетчик секунд no_init volatile unsigned long. Чтобы стартап его не трогал после очередного JUMP 0. Так же как и буфера для связи. Ведь связь-то не должна страдать из-за того, что какой-то чучел пишет такие программы)) - Юра(01.09.2013 21:04, )
- А вы уверены, что это startup значения в регистрах затирает, а не они сами аппаратно обнуляются при ресете? - Ксения(01.09.2013 21:06)
- не затирает. Делал программные часы - все норм, только нужно ловить начало пропадания основного питания и быстро улетать в power save. Ессно если делать много рестартов то накапливается ошибка. - zeleny(01.09.2013 22:28)
- Ну, регистры RTC стартап точно не трогает. RTC даже не заметит что программа сделала jump 0. А счетчик секунд - это переменная в SRAM, инкрементируемая при каждом прерывании RTC. Она защищается чтобы очередной стартап после jump 0 ее не затер. Юра(284 знак., 01.09.2013 21:26, )
- Тогда куда же число девается? :) Аппаратный ресет разрушает SRAM? - Ксения(01.09.2013 21:29)
- Не "число", а предделитель таймера и настройки часового кварца. Читаю этот топик и прусь. Автор даже точность часов не обозначил - одни глубокие мысли ;) Зарядить WDT с минимальным временем в прерывании таймера, взвести битик асинхронного таймера Гyдвин(272 знак., 01.09.2013 21:57)
- Это, конечно, хорошо. Только Вы, наверно, думаете что счетный регистр RTC сохранит своё значение после сброса по WD? Я так не думаю. Он обнулится, и появится первая погрешность. Плюс у меня внешний кварц, и время нарастания питания хрен ее знает, Юра(202 знак., 01.09.2013 23:28, )
- Нихт шиссен! Все. Сдаюсь... - Гyдвин(01.09.2013 23:35)
- Это, конечно, хорошо. Только Вы, наверно, думаете что счетный регистр RTC сохранит своё значение после сброса по WD? Я так не думаю. Он обнулится, и появится первая погрешность. Плюс у меня внешний кварц, и время нарастания питания хрен ее знает, Юра(202 знак., 01.09.2013 23:28, )
- Счетчик секунд имеете в виду? Никуда не девается. Лежит как миленький в no_init SRAM. Инициализуется начальным значением при POR, а все остальные источники аппаратных или программных сбросов ему по боку. Инкрементируется каждый раз в обработчике Юра(225 знак., 01.09.2013 21:41, )
- А вы тогда запускайте RTC при старте. Если произойдет сброс, то МК рестартует и снова запустит RTC. Но если вы аппаратный сброс делаете периодически, да еще и с периодом в несколько секунд, то вы сами себе злобный Буратино, и Атмел в том не Ксения(12 знак., 01.09.2013 22:13)
- Если это укладывается в алгоритм работы, то почему бы и нет? Я в прошлом году делал автомобильный датчик, работающий в таком режиме - 7 сек. Там длинный провод, который должен идти по внешней стороне кузова (и не только). Тем более, что в MSP430G2 Гyдвин(32 знак., 01.09.2013 22:23)
- Так мне и странно, что это за алгоритм такой, чтобы МК надо было каждые 7 секунд ресетить? Разве нельзя зациклить алгоритм так, чтобы он ходил по кругу, не требуя ресета? - Ксения(01.09.2013 22:28)
- Это известный способ повышения надежности. Например, нажатие любой кнопки вызывает сброс. - Vladimir Ljaschko(01.09.2013 22:34)
- А зачем, если со сбросом надежнее? - Гyдвин(01.09.2013 22:32)
- Так мне и странно, что это за алгоритм такой, чтобы МК надо было каждые 7 секунд ресетить? Разве нельзя зациклить алгоритм так, чтобы он ходил по кругу, не требуя ресета? - Ксения(01.09.2013 22:28)
- Если это укладывается в алгоритм работы, то почему бы и нет? Я в прошлом году делал автомобильный датчик, работающий в таком режиме - 7 сек. Там длинный провод, который должен идти по внешней стороне кузова (и не только). Тем более, что в MSP430G2 Гyдвин(32 знак., 01.09.2013 22:23)
- А вы тогда запускайте RTC при старте. Если произойдет сброс, то МК рестартует и снова запустит RTC. Но если вы аппаратный сброс делаете периодически, да еще и с периодом в несколько секунд, то вы сами себе злобный Буратино, и Атмел в том не Ксения(12 знак., 01.09.2013 22:13)
- Не "число", а предделитель таймера и настройки часового кварца. Читаю этот топик и прусь. Автор даже точность часов не обозначил - одни глубокие мысли ;) Зарядить WDT с минимальным временем в прерывании таймера, взвести битик асинхронного таймера Гyдвин(272 знак., 01.09.2013 21:57)
- Тогда куда же число девается? :) Аппаратный ресет разрушает SRAM? - Ксения(01.09.2013 21:29)
- А вы уверены, что это startup значения в регистрах затирает, а не они сами аппаратно обнуляются при ресете? - Ксения(01.09.2013 21:06)
- Ну разумеется, счетчик секунд no_init volatile unsigned long. Чтобы стартап его не трогал после очередного JUMP 0. Так же как и буфера для связи. Ведь связь-то не должна страдать из-за того, что какой-то чучел пишет такие программы)) - Юра(01.09.2013 21:04, )