Перейти к содержанию

ATMega328P + Nokia5110

Здорово, парни!:) А что-то вот у меня совсем не работает SPI с этим дисплеем Nokia 5110. Микроконтроллер: ATMega328P. Не хочу здесь сразу описывать все параметры, а то я запутался уже. Если что нужно будет по параметрам - пожалуйста, спрашивайте.
Прикрепляю файлы проекта. Схкма в Proteus 8.6, программа на С++ в среде Code Vision AVR v2.05.00 Evaluation.
[attachment=109447:Nokia5110.zip]
Помогите, пожалуйста, кто чем может. Программа виснет в строке:
while(!Processed); //Wait for transmission complete.
и не возникает прерывания по SPI(прерывание там по завершению передачи).
Proteus в своей работе говорит что произошла коллизия данных при записи в регистр SPDR в строке:
SPDR = Data; //Start transmission
- предыдущая строка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Я решил задачу!:) Оказалось, что я забыл проинициировать начальное значение SS = 1. Вместо строки
PORTB = 1; //здесь только привязывается к 1 сигнал RESET дисплея, т.к. он инверсный
нужно написать строку
PORTB = 5; //подтянем к 1 RESET и SS:)
Если что, то все это дело идет от этой темы: https://electronix.ru/forum/index.php?showtopic=143918.
Изменено пользователем Molotov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация