[uquote="akl",url="/forum/viewtopic.php?p=3790582#p3790582"]Если оператор
Код: Выделить всё
a = SPDR; //считывание данных из регистра SPDR в переменную a
инициирует выдачу 8 периодов SCK, чтобы по линии MISO заполнить SPDR, то да...
Иначе
Код: Выделить всё
SPDR = 0x00000000; //пустой байт по линии MOSI и генерация 8 периодов SCK
while(!(SPSR & (1<<SPIF)));//подождем пока буфер приемника заполнится данными MISO
a = SPDR; //считывание данных из регистра SPDR в переменную a
[/uquote]
Я так понял, что команда записи в регистр инициирует режим spi при этом появляются таковые импульсы и они не прекращаются пока сеанс связи не будет окончен поднятием лапки ss к 1.
Конкретно тут меня интересовало правильно ли я понял что 03h это код в hex, а запись 0x00000011 годится для живой схемы.
Добавлено after 3 minutes 49 seconds:[uquote="Dimon456",url="/forum/viewtopic.php?p=3790609#p3790609"]
franc_di писал(а):SPDR = 0x00000011; //команда 03h передачи данных инициирует режим spi
это число не влезет в 8 битный регистр и 0x00000011 это не 03h.
Если пытаетесь в протеусе то там нет модели 25q64.[/uquote]
Там есть другая микросхема с таким интерфейсом. Что по сути ничего не меняет для проверки в протеусе.
Тогда что означает инструкция 03h? Даже на графике в период двух последних стробо импульса, идёт подъем по шине входных данных.
Добавлено after 1 minute 28 seconds:[uquote="Demiurg",url="/forum/viewtopic.php?p=3790585#p3790585"]Скачайте или купите книгу Вольфганг Трамперт "AVR RISC микроконтроллеры фирмы Atmel". Там расписана архитектура МК. В этой книге примеры работы с расширением ввода вывода на сдвиговых регистрах. Если вы это не освоите сами, задолбаете любой форум глупыми вопросами. Ответы на которые в книгах, если соизволите потратить свое драгоценное время на чтение. После того как прочитаете книгу, ищите примеры в интернете. И только после того, как потрудитесь, и у вас будут какие либо проблемы, идите на форум.[/uquote]
Спасибо за название книги