Пт май 22, 2009 17:49:22
Сб май 23, 2009 00:43:11
Сб май 23, 2009 06:20:44
Vov123 писал(а):Чего-то в вашем сообщении ничего не сказано об установленом fuse - wdton
Сб май 23, 2009 08:39:21
Сб май 23, 2009 18:31:26
Vov123 писал(а):"
Не понятно,если вы читаете Белова,зачем спрашиваете.
Сб май 23, 2009 18:55:48
Именно так и есть (не слушай никого), а каким кодом запускаешь таймер-то?Nolk писал(а):Насколько я понял из книги (читаю Белова) wdton надо устанавливать в том случае,если нужно чтобы охранный таймер запускался автоматически,...
Сб май 23, 2009 20:07:52
а каким кодом запускаешь таймер-то?
cli
wdr
in r16,MCUSR
andi r16,(0xff&(0<<WDRF))
out MCUSR,r16
in r16,WDTCR
ori r16,(1<<WDCE)|(1<<WDE)
out WDTCR,r16
ldi r16,(1<<WDIE)
out WDTCR,r16
sei
Сб май 23, 2009 20:49:22
Сб май 23, 2009 21:09:29
Yellow Tiger писал(а):Хм, код взят из ДШ, значит нужно копать в другом направлении. А как ты пришел к выводу, что прерываний нет?
Сб май 23, 2009 21:31:33
andi r16,(0xff&(0<<WDRF))
andi r16, ~(1 << WDRF)
cli
wdr
in r16, WDTCSR
ori r16, (1<<WDCE) | (1<<WDE)
out WDTCSR, r16
ldi r16, (1<<WDIF) | (1<<WDIE) | (1<<WDCE) | (1<<WDE) | (1<<WDP0)
out WDTCSR, r16
sei
Сб май 23, 2009 21:32:15
Ну так может ты просто не дождался прерывания? При симуляции масштаб времени другой.Nolk писал(а):Проверял работу на AVR Studio.
void main()
{
while (1){
wdr();
}
}
Это не его инициализация - это Атмела, срочно сообщи им! А-то, дурят народ своими байками (ДШ ревизии 2543-I-AVR-04/06, стр.43):asteroid7 писал(а):Nolk Ваша инициализация - полный бред.
asteroid7 писал(а):1. Как я понял, вы делаете режим "Прерывание потом сброс".
2. Желательно одной командой устанавливать и WDE и WDIE.
in r16, WDTCSR
ori r16, (1<<WDCE) | (1<<WDE) ; разрешаем изменения
out WDTCSR, r16 ; но пишем неизмененную величину
Вс май 24, 2009 04:23:21
Это пример остановки WD таймера, а не инициализации. Инициализация или запуск его, страницей ниже. И, пожалуйста, не надо обращаться ко мне на ты.Yellow Tiger писал(а):Это не его инициализация - это Атмела, срочно сообщи им! ...
andi r16, (0xff & (0<<WDRF))
andi r16, 0
Yellow Tiger писал(а):1. Нет - ему нужен режим только с прерываниями, судя по его коду ("ldi r16,(1<<WDIE) \ out WDTCR,r16")
2. Почему WDE и WDIE нужно устанавливать одной командой? Что-то не припомню такого требования у Атмела...
3. Можно пояснить, какой смысл разрешать изменения и не делать их?:
- Код:
in r16, WDTCSR
ori r16, (1<<WDCE) | (1<<WDE) ; разрешаем изменения
out WDTCSR, r16 ; но пишем неизмененную величину
Вс май 24, 2009 13:02:00
Вс май 24, 2009 14:21:47
Это просто пример, а применяя его на практике, программист подставляет в него единичку или нолик - как ему нужно в его конкретном случае - было бы странно со стороны Атмела приводить дважды один фрагмент кода с отличием в одном бите.asteroid7 писал(а):Это пример остановки WD таймера, а не инициализации.
Возможно, их ассемблер правильно понимает такие штуки.asteroid7 писал(а):Однако... у атмела в ДШ реально есть строкаНикогда на неё не обращал внимания... Проверил в "студио" - выражение считается как ноль.
- Код:
andi r16, (0xff & (0<<WDRF))
Я просто неверно сосчитал, где заканчиваются четыре такта. Странно, вроде бы еще не поздно было.asteroid7 писал(а):3. Вы процитировали не весь код. Сначала разрешаем, потом запускаем. Это два обращения к регистру.
Этого не нужно добиваться, это должно происходить само-собой - на основе взаимности; но после таких вот экзерсисов:asteroid7 писал(а):И, пожалуйста, не надо обращаться ко мне на ты.
это бывает очень затруднено (ибо ответить взаимностью, в данном случае, означало бы нечто весьма далекое от уважения). Я не о себе говорю, о человеческой природе. Удачи.asteroid7 писал(а):Ваша инициализация - полный бред.
Что-то не похоже, что эти страницы посвящены именно Tiny2313-му - таблица делителей неверная, формат регистра управления тоже неверный. Прескейлер там не трех-, а четырехбитный, начинается не с 16K, а с 2K, а заканчивается не 2048K, а 1024K. В регистре управления биты с 7 по 5 не заререзервированы, как утверждается в книге, а содержат биты WDIE, WDIF и старший бит делителя.Vov123 писал(а):Попробуйте воспользоваться рекомендациями.
Вс май 24, 2009 17:41:29
Вс май 24, 2009 18:05:06
Yellow Tiger писал(а):Nolk, я вчера погонял студию с примером - она действительно не вызывает прерывания. Я ей не пользуюсь, потому не стану утверждать, но есть подозрение, что она имеет в этом разделе эмуляции конкретный баг.
Вс май 24, 2009 18:16:23
Страница была 381 А насчет того что там отключение,так я знаю это.В моем коде устанавливается бит WDIE.Vov123 писал(а):Автору вопроса
Понятно,пример вы скопировали с книги со стр 361.
Но ведь там написано-пример процедуры отключения сторожевого таймера
Вс май 24, 2009 22:17:18
Чтобы совсем без глюков? На Tiny2313. Не видел еще ни одного безглючного эмулятора - вечно народ обсуждает минное поле их багов, где/что/как обходить стороной, потому ими и не пользуюсь - нет времени на изучение эмулятора ради изучения эмулятора - сначала пользовался, а когда увидел, что порой даже простейшие вещи не работают в эмуляторе, разочаровался и бросил. Что-то мелкое и нетребовательное посмотреть/прикинуть м.б. и можно еще, но даже в этом случае - сам видишь, что получается. Мне важнее сэкономить время, чем выяснять, с чьим глюком я имею дело.Nolk писал(а):Можешь посоветовать на чем тогда тестировать?
Сб май 30, 2009 01:17:39
Сб май 30, 2009 12:50:36