28.07.2018, 21:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
SSD1306 будут работать 4 шт???
Здравствуйте. Подключил на два I2C по два дисплея SSD1306. У них по два адреса есть. На I2C1 два дисплея работает с разными адресами. На I2C2 работает один дисплей с адресом 0х78, а 0х7А инициализируется ,но изображение непонятно как выводиться. Справа в 2 пикселя вертикальная полоска. На каждом дисплее я пишу Display 1, Display 2, Display 3, Display
4. На четвертом дисплее выводиться только цифра 4 в первой строке сдвинутая влево на 2 пикселя. Менял дисплеи местами, менял им адреса. Любой дисплей который вешаю именно на I2C2 с адресом 0х7А вот так непонятно показывает.
Проц стм32ф030с8. Может есть какието ограничения секретные? ))
|
|
|
|
28.07.2018, 22:18
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,260
Сказал спасибо: 11,170
Сказали Спасибо 3,860 раз(а) в 2,930 сообщении(ях)
|
Re: SSD1306 будут работать 4 шт???
miwutka, наверное со схемы коммутации каждого дисплея в паре, их подключения к I2C,… стоит начать?
А в коде прошивки отладить отдельно вывод сначала но младший, потом на старший на первом и на втором I2C.
Если отдельно все заработает, потом уже можно совместную работу на каждую пару, а в самом конце уже на все четыре…
Пока совсем непонятно где собака порылась…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
Сказали "Спасибо" mike-y-k
|
|
|
28.07.2018, 22:39
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: SSD1306 будут работать 4 шт???
Спасибо! Я всё так проверил. Отдельно всё работает. Я вот что думаю. У меня 4 буффера для каждого дисплея
static uint8_t SSD1306_Buffer_1[SSD1306_WIDTH * SSD1306_HEIGHT / 8];
static uint8_t SSD1306_Buffer_2[SSD1306_WIDTH * SSD1306_HEIGHT / 8];
static uint8_t SSD1306_Buffer_3[SSD1306_WIDTH * SSD1306_HEIGHT / 8];
static uint8_t SSD1306_Buffer_4[SSD1306_WIDTH * SSD1306_HEIGHT / 8];
выходит каждый буфер хавает по 1024 кб...
Может банально не хватает памяти ОЗУ для этого? Как я понимаю ОЗУ 8 кб вроде...?
Program Size: Code=7176 RO-data=3632 RW-data=72 ZI-data=4904
Я плохо понимаю что сколько тут занимает... Первое флеш наверно а второе ОЗУ 3632 байта... а 4904 что за хрень? ))
Вообщем у меня все функции скопированы 4 раза. Они для каждого дисплея отдельно. В четвертой функции для обновления дисплея я использовал четвертый буфер. Сейчас решил третий выводить и он вывелся без проблем но с полоской справа в 2 пикселя. С полоской я в курсе что делать. Вот мне кажется что ему может ОЗУ не хватает? Попробовать один буфер для всех может использовать? Конечно так было б экономнее и правильнее, но я хотел отдельные буферы завести...
PHP код:
|
void SSD1306_UpdateScreen_My_4(void) { uint8_t m; for (m = 0; m ‹ 8; m++) { ssd1306_send_4(0x00,0xB0 + m); ssd1306_send_4(0x00,0x00); // Смещение по горизонтали na 2 pix ssd1306_send_4(0x00,0x10); /* Write multi data */ ssd1306_Multisend_4(0x40, &SSD1306_Buffer_3[(SSD1306_WIDTH) * m], (SSD1306_WIDTH)); } }
|
Последний раз редактировалось miwutka; 28.07.2018 в 22:41.
|
|
|
|
28.07.2018, 22:40
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,121
Сказал спасибо: 2,569
Сказали Спасибо 11,944 раз(а) в 5,991 сообщении(ях)
|
Re: SSD1306 будут работать 4 шт???
Сообщение от mike-y-k
|
Пока совсем непонятно где собака порылась…
|
Кто к ночи черта помянет...
Сообщение от mike-y-k
|
со схемы коммутации каждого дисплея в паре
|
Надо понимать, в паре коммутаций нет. Просто обращение по разным адресам.
Сообщение от miwutka
|
Любой дисплей который вешаю именно на I2C2 с адресом 0х7А вот так непонятно показывает.
|
Скорее всего виноват копипаст. Вы же копипастом размножали работу с экранами? Внимательно проверьте.
А к собакам какие могут быть претензии?!
ПЫСЫ. Если грех на неправильность буферов - перепутать их в разных вариантах.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
Последний раз редактировалось akegor; 28.07.2018 в 22:45.
|
|
|
|
28.07.2018, 22:50
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: SSD1306 будут работать 4 шт???
Сообщение от miwutka
|
Program Size: Code=7176 RO-data=3632 RW-data=72 ZI-data=4904
Я плохо понимаю что сколько тут занимает...
|
Так а почему вы не изучите основы, включающие и этот вопрос, прежде чем выносить свои проблемки на всеобщее обозрение?
Сообщение от miwutka
|
Первое флеш наверно а второе ОЗУ 3632 байта... а 4904 что за хрень? ))
|
"Второе" не озу, а read-only data - константы, расположенные в программной памяти.
Озу у вас - 72 байта неинициализированной памяти плюс 4904 инициализированной (включая массивы).
Если у вас перестанет что-то помещаться в память, компилятор об этом скажет. Ищите ошибку в своих текстах. Стопудово где-то данные одного дисплея пишутся в поток для другого, или в "не тот" порт.
|
|
|
Сказали "Спасибо" AR_Favorit
|
|
|
28.07.2018, 22:55
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: SSD1306 будут работать 4 шт???
Вообщем переписал чтобы первый буфер использовать под первые два дисплея, а второй под вторые два дисплея на второй шине. Теперь всё работает...
Сообщение от AR_Favorit
|
Если у вас перестанет что-то помещаться в память, компилятор об этом скажет.
|
Ну я тож так думал, но малоли... Я ж умею чудить... Завтра на SPI еще два дисплея буду вешать...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:14.
|
|