-
- Написал два варианта использования SPI. С прерываниями и без. Обработчик прерывания получился объемный. Так что плюнул, сделал без прерываний. mazur(578 знак., 18.02.2011 20:58)
- раньше SPIF вроде как был read-only - Vit(13.02.2011 11:51)
- Задачу то какую? 1.Передать блок в порт 2.Передать блок с кольцевиком или без. 3.Как организовать передачу первого байта(чем отличается первый от остальных)?? 4.Использовать ли прерывания. - Хитрый китаец(13.02.2011 11:09, )
- Давайте по всем пунктам пройдемся. 4. Пункт-прерывания однозначно. Без опроса флага. - mazur(13.02.2011 12:13)
- 1.есть указатель на блок и его размер 2.если нет задачи стыковать асинхронные потоки - кольцевик не нужен.3.4.передаёте первый байт, разрешаете прерывания,ожидаете окончания передачи,запрещаете прерывания.В прерывании извлекаете байт по Хитрый китаец(142 знак., 13.02.2011 21:39, )
- обычно на пролог-эпилог Си-компилятором AVR, если не ошибаюсь, отдаётся до 34-х инструкций (может и чуток меньше, но то уговорить его надо). и это не потому что асм/Си, а потому что без сохранения регистров не получается. запущенный на Vit(384 знак., 13.02.2011 12:31)
- Если говорим про максимальную скорость, то какой пролог в 34 инструкции? Напишите кусок на ассемблере. Прерывание SPI: in R16,SPIDR st Y+,R16 две команды, SPIF сбрасывается аппаратно. Ну хорошо, ещё четыре - загрузка адреса в Y и его сохранение. maik-vs(44 знак., 14.02.2011 12:07)
- если Вам регистры сохранять не нужно, то это одна кастрированная задача в отдельно созданных условиях - Vit(17.02.2011 21:45)
- Интересно, если я снова поспорю с этой пламенной максимой, мой пост опять снесут? - maik-vs(21.02.2011 10:37)
- Я поспорю. Vit правильно написал, это одна кастрированная задача. Если действовать по вашему, то тогда в других задачах выбывают из игры указанные вами регистры. mazur(1574 знак., 22.02.2011 07:24 - 10:28)
- Речь шла о "добиться максимальной скорости". maik-vs(1724 знак., 22.02.2011 15:40 - 15:43)
- Хм, я человек адекватный и справедливый. Легко признаю свои ошибки. И не зацикливаюсь на каких-то идеях, как бы они мне не нравились. Если в этих идеях есть ошибки. Конечно же, мне еще расти и расти. Но и у вас я заметил несколько существенных mazur(1648 знак., 23.02.2011 09:16 - 10:09)
- Ну да. maik-vs(1174 знак., 24.02.2011 10:04)
- Команда ldi не влияет на флаги регистра SREG. 4 команды, 4 такта. mazur(837 знак., 24.02.2011 20:53)
- Да ёлки... конечно, 3 команды. maik-vs(189 знак., 25.02.2011 11:16)
- а почему r25? На r24 и r25 действует команды adiw и sbiw. Из-за этого всегда их наготове держу. - mazur(25.02.2011 14:02)
- Да без разницы, лишь бы ldi прокатывала. - maik-vs(25.02.2011 14:51)
- а почему r25? На r24 и r25 действует команды adiw и sbiw. Из-за этого всегда их наготове держу. - mazur(25.02.2011 14:02)
- Да ёлки... конечно, 3 команды. maik-vs(189 знак., 25.02.2011 11:16)
- Команда ldi не влияет на флаги регистра SREG. 4 команды, 4 такта. mazur(837 знак., 24.02.2011 20:53)
- "я человек адекватный и справедливый". И очень скромный, спешу добавить :) - Vladimir Ljaschko(23.02.2011 11:17)
- :) mazur(263 знак., 23.02.2011 12:22)
- Я спокойный, как питон, нежный, как телок. А будешь возражать - заеду в рог! © Сектор Газа :-) - Shura(23.02.2011 11:33)
- Ну да. maik-vs(1174 знак., 24.02.2011 10:04)
- Хм, я человек адекватный и справедливый. Легко признаю свои ошибки. И не зацикливаюсь на каких-то идеях, как бы они мне не нравились. Если в этих идеях есть ошибки. Конечно же, мне еще расти и расти. Но и у вас я заметил несколько существенных mazur(1648 знак., 23.02.2011 09:16 - 10:09)
- Речь шла о "добиться максимальной скорости". maik-vs(1724 знак., 22.02.2011 15:40 - 15:43)
- Я поспорю. Vit правильно написал, это одна кастрированная задача. Если действовать по вашему, то тогда в других задачах выбывают из игры указанные вами регистры. mazur(1574 знак., 22.02.2011 07:24 - 10:28)
- Интересно, если я снова поспорю с этой пламенной максимой, мой пост опять снесут? - maik-vs(21.02.2011 10:37)
- если Вам регистры сохранять не нужно, то это одна кастрированная задача в отдельно созданных условиях - Vit(17.02.2011 21:45)
- Можно на ассемблере очень быстрое прерывание написать (без сохранения и т.п.) и немного тактовую понизить. В AVR вектора отдельные, не то, что в контроллерах профессионального уровня -- должно получиться. - fk0(13.02.2011 15:45)
- конечно можно. главное больше ничего в программе не делать:))) - Vit(13.02.2011 15:54)
- Если говорим про максимальную скорость, то какой пролог в 34 инструкции? Напишите кусок на ассемблере. Прерывание SPI: in R16,SPIDR st Y+,R16 две команды, SPIF сбрасывается аппаратно. Ну хорошо, ещё четыре - загрузка адреса в Y и его сохранение. maik-vs(44 знак., 14.02.2011 12:07)
- Давайте по всем пунктам пройдемся. 4. Пункт-прерывания однозначно. Без опроса флага. - mazur(13.02.2011 12:13)