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

ATMega328P + Nokia5110

Здорово, парни!:) А что-то вот у меня совсем не работает SPI с этим дисплеем Nokia 5110. Микроконтроллер: ATMega328P. Не хочу здесь сразу описывать все параметры, а то я запутался уже. Если что нужно будет по параметрам - пожалуйста, спрашивайте.

Прикрепляю файлы проекта. Схкма в Proteus 8.6, программа на С++ в среде Code Vision AVR v2.05.00 Evaluation.

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

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...