Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/40: Рейтинг темы: голосов - 40, средняя оценка - 4.75
muh13
0 / 0 / 0
Регистрация: 17.11.2012
Сообщений: 6
1

SPI и Proteus

04.12.2012, 16:46. Просмотров 7496. Ответов 3
Метки нет (Все метки)

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

.include "m88def.yms"

risit:
ldi R16, 0b11110111 // Настраиваем порт B на ввод/ввывод (MISO - ввод, остальные на вывод)
out DDRB, R16 //

ldi R16, 0b11010001 // Включаем SPI (мастером)
out SPCR, R16 //

sei // Включаем прерывания.

ldi R16, 0xaa // Динные на отправку.

main:
In r17, SPSR // Проверяем возможность отправления данных.
sbrs r17, SPIF //
rjmp main

out SPDR, R16 // Отправляем данные.
rjmp main //

К ножке SCK и MOSI в протеусе подключил осциллограф и решил заценить сигналы, которые как мне казалось должны были появиться в виде диаграмм, но увы...
Может кто подскажет - что не так?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2012, 16:46
Ответы с готовыми решениями:

Инициализация SPI в Proteus на микроконтроллере avr
Особо не ругайтесь, впервые пробую подключить. Мне нужно знать что я делаю не так, вот скрины кода...

SPI -> 485->SPI
Есть необходимость переводить SPI на 485 интерфейс. Хотел бы уточнить, драйвер 485 сажать напрямую...

Ошибка в Proteus
Решил начать изучать программирование микроконтроллеров, нашел уроки на ютьюбе, установил Atmel...

Библиотеки Proteus
Скинте кто не будь библиотеки к Proteus.

ds18b20 в proteus
Братцы, скажите, у кого-нибудь считываются ром-коды датчиков ds18b20 в протеусе? Пытаюсь считать,...

3
Финский
0 / 0 / 0
Регистрация: 11.12.2011
Сообщений: 789
04.12.2012, 16:59 2
Почему просто не подключить SPI Debugger?
0
muh13
0 / 0 / 0
Регистрация: 17.11.2012
Сообщений: 6
04.12.2012, 17:24 3
Дебигер, равно как и осциллограф так же ничего интересного не показал.
0
Финский
0 / 0 / 0
Регистрация: 11.12.2011
Сообщений: 789
04.12.2012, 17:55 4
А что происходит, когда возникает разрешенное прерывание по завершению передачи по SPI? Не вижу обработчика прерывания. У вас данные никогда не отправятся -
Код
main:
In r17, SPSR // Проверяем возможность отправления данных.
sbrs r17, SPIF // - проверяем флаг SPI interrupt flag, который должен выставиться, когда передача завершена
rjmp main      // иначе - переход в начало

out SPDR, R16 // Отправляем данные. - сюда программа никогда не дойдет, тк чтобы сюда попасть, нужно... в общем читаем даташит внимательно
rjmp main //
Вот так работает
Код
.include "m88def.yms"

.cseg
.org $000
rjmp risit
.org $00A      //(SPI,STC) Serial Transfer Complete
reti

risit:
ldi R16, 0b11101111 // Настраиваем порт B на ввод/ввывод (MISO - ввод, остальные на вывод)
out DDRB, R16 //

ldi R16, (1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0)|(1<<SPIE) // Включаем SPI (мастером)
out SPCR, R16 //

sei // Включаем прерывания.

ldi R16, 0xaa // Динные на отправку.

main:
out SPDR, R16 // Отправляем данные.
in r17, SPSR // Проверяем возможность отправления данных.
sbrs r17, 7 // пока нет флага прерывания -
rjmp pc-2   // тупим на месте
rjmp main   // иначе - в начало
Набросано на скорую руку, поэтому все же курите даташит по поводу правильной настройки.
0
04.12.2012, 17:55
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2012, 17:55

Proteus и COM-порт
Com-порт на моем ноутбуке отсутствует. Можно ли с помощью proteusa создать виртуальный com порт,...

AT32UC3L064 в Proteus
Здравствуйте, не могу найти элемент AT32UC3L064 в Proteus(demonstration version). Подскажите,...

Симуляция в proteus
У меня есть программа, написанная на ассемблере, и я хочу проверить правильность ее работы, но с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.