Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу выключить сторожевой таймер. tiny13 
:(
    Опции темы
Den64
  Дата 30.11.2009, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 6.4.2006
Где: Курск

Репутация: 1
Всего: 2



Сначала перезагружаю контроллер сл. образом:
Код

  SoftReset: ; 16 mSec
    ldi r16, (1 << WDE); | (1 << WDCE)
    out WDTCR, r16
    wdr
   while_Reset:
    rjmp while_Reset

Контроллер перезагружается. Но затем, при инициализации, сторожевой таймер не могу выключить.
Пишу следующее.
Код

  ldi r16, (1 << WDE) | (1 << WDCE)
  out WDTCR, r16
  ldi r16, 0
  out WDTCR, r16

Результата нет. WDE как был установлен, так и остаётся. Что не так делаю?

Это сообщение отредактировал(а) Den64 - 30.11.2009, 23:19
--------------------
Инагда пишу звуками.
PM WWW ICQ   Вверх
Mazzi
Дата 1.12.2009, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Правильный
**


Профиль
Группа: Комодератор
Сообщений: 825
Регистрация: 3.4.2003

Репутация: 9
Всего: 21



Вот из даташита:

WDT_off:
; Turn off global interrupt
cli
; Reset Watchdog Timer
wdr
; Clear WDRF in MCUSR
in r16, MCUSR
andi r16, (0xff - (1<<WDRF))
out MCUSR, r16
; Write logical one to WDCE and WDE
; Keep old prescaler setting to prevent unintentional time-out
in r16, WDTCR
ori r16, (1<<WDCE) | (1<<WDE)
out WDTCR, r16
; Turn off WDT
ldi r16, (0<<WDE)
out WDTCR, r16
; Turn on global interrupt
sei
ret


--------------------
Мне нужны помощники.
PM MAIL WWW   Вверх
Den64
Дата 1.12.2009, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 6.4.2006
Где: Курск

Репутация: 1
Всего: 2



Неа, не сбрасывается.. Делал как в датащите. Там какойто нюанс
--------------------
Инагда пишу звуками.
PM WWW ICQ   Вверх
Mazzi
Дата 1.12.2009, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Правильный
**


Профиль
Группа: Комодератор
Сообщений: 825
Регистрация: 3.4.2003

Репутация: 9
Всего: 21



Там ещё есть два режима работы сторожевого таймера, которые выбираются фьюзами. В одном режиме происходит аппаратный сброс, а во втором только прерывание.


--------------------
Мне нужны помощники.
PM MAIL WWW   Вверх
Den64
Дата 1.12.2009, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 6.4.2006
Где: Курск

Репутация: 1
Всего: 2



Фьюз WDTON сброшен.
А сторожевой таймер выключается только при снятии напряжения питания. А из программы не получается, проблему выше описал.
Включать включаю, а выключить немогу..
--------------------
Инагда пишу звуками.
PM WWW ICQ   Вверх
Mazzi
Дата 1.12.2009, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Правильный
**


Профиль
Группа: Комодератор
Сообщений: 825
Регистрация: 3.4.2003

Репутация: 9
Всего: 21



Дело в том, что при аппаратном сбросе сторожевой таймер должен выключаться сам, что собственно и происходит у тебя при сбросе по питанию. А фьюзов связанных со сторожевым таймером там на самом деле несколько. Мне лениво даташит рыть, возьми почитай, я думаю разберёшься.


--------------------
Мне нужны помощники.
PM MAIL WWW   Вверх
Den64
Дата 1.12.2009, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 6.4.2006
Где: Курск

Репутация: 1
Всего: 2



Перечитал и датащит и апноты, ответа не смог вычитать. Почитаю повнимательнее..
--------------------
Инагда пишу звуками.
PM WWW ICQ   Вверх
Eleman
Дата 1.12.2009, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 27.11.2009
Где: Россия , Тверь

Репутация: нет
Всего: нет



У меня была подобная бяка . Отключал питание платы , а сторожевой не сбрасывался . Отсоединил кабель программирования  и  кабель питания --  всё сбросилось !!! 
PM MAIL ICQ Skype   Вверх
Den64
Дата 1.12.2009, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 6.4.2006
Где: Курск

Репутация: 1
Всего: 2



Цитата(Eleman @  1.12.2009,  19:02 Найти цитируемый пост)
У меня была подобная бяка . Отключал питание платы , а сторожевой не сбрасывался . Отсоединил кабель программирования  и  кабель питания --  всё сбросилось !!! 

У меня не в этом проблема. Не могу програмно выключить сторожа. Какраз при выключении питания всё нормально сбрасывается.
--------------------
Инагда пишу звуками.
PM WWW ICQ   Вверх
Eleman
Дата 2.12.2009, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 27.11.2009
Где: Россия , Тверь

Репутация: нет
Всего: нет



wdt_enable(value)  --  включаем 

wdt_disable() - выключаем . 

 WDR - сброс .

так программно управляем  "псом"
 
в фьюзах  WDTON  - если  "0"  сторожевик всегда включён ., по умолчанию в заводских установках "1".





PM MAIL ICQ Skype   Вверх
Den64
Дата 3.12.2009, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 6.4.2006
Где: Курск

Репутация: 1
Всего: 2



В фьюзах, если WDTON = 0 то режим работы определяется битами WDE и WDTIE. Если WDTON = 1, то работает всегда и при переполнении сброс. По умолчанию в заводских установках "0".
--------------------
Инагда пишу звуками.
PM WWW ICQ   Вверх
Eleman
Дата 3.12.2009, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 27.11.2009
Где: Россия , Тверь

Репутация: нет
Всего: нет



"При программировании необходимо установить фьюзы (поставить "галки"): CKSEL0, SUT0, CKDIV8, BODLEVEL1. Остальные фьюзы должны   быть сброшены.
Я пользовался программатором STK 200/300 и программой, встроенной в среду разработки CodeVisionAVR. Можно пользоваться любым программатором, который понимает ATtiny13.
Будьте осторожны. В некоторых программах, в частности в UniProf, всё с точностью до наоборот - "галки" соответствуют НЕ установленным фьюзам. Лучше, прежде, чем начать программирование, сначала фьюзы считать и посмотреть, как они стоят. 

С завода ATtiny13 приходят с установленными CKSEL0, SUT0, CKDIV8. Надо добавить к ним BODLEVEL1. (Интересно, какой вредитель придумал, что установленному фьюзу соответствует "0", а не установленному - "1"?)

Короче, будьте аккуратны при программировании фьюзов. "

Добавлено через 2 минуты и 8 секунд
 процедура wdt_disable()  устанавливает биты  WDE и WDTIE в соответствии с выключенным фьюзом  "1" WDTON.

  и самое главное !!!!!!   после смены фьзов отключаем  кабель питания и кабель программирования !!!
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0671 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.