Проверил все также.
DS1307RTC работает.
DS1307RTC и DMD не работают вместе.
Интересно… у меня DS1307RTC даже не компилируется.
Попробую вечером еще раз.
Что касается взаимодействия DS1307RTC и моей библиотеки - если пины матрицы и пины i2c для RTC не пересекаются - проблем быть не должно.
DS1307RTC::DS1307RTC()
{
// Wire.begin();
}
При подключении библиотеки отрабатывает конструктор .
Wire.begin(); ломает работу твоей библиотеки. если за комментировать, все ок.
Немного разобрался, нужно подключать в проекте 2 библиотеки.
#include <Wire.h>
#include <DS1307RTC.h>
Хотя в DS1307RTC.cpp тоже есть подключение Wire.h
В итоге все заработало или все-таки остались вопросы?
Да все заработало . Спасибо за помощь.
Хотелось бы разобраться в особенности подключения #include <Wire.h>
Получается что он подключается 2 раз.
Нет конечно же ! Просто видимо важен порядок подключения в вашем случае …
Здравствуйте. Друзья. У меня опять нестандартная проблема не совсем связанная с библиотекой, но точно с матрицами. И так была плата первой версии всё работало,
Сделал вторую версию, единственное на мой взгляд существенное отличие, сделал Copper Area(медный экран), не только на нижней но и на верхней стороне печатной платы.
И вот какой эффект вкдючаю питание контроллер запускается, но на экране(80*40 rgb Qiangli) хаотичное изображение которое постепенно, и без системно восстанавливается до нормального вида.
Если при поданном питании сбросит контроллер, то изображение сразу нормально.
Но самое интернсное если на плату через USB конвентер, подаю землю с компьютера, и вклюдчаю питание платы , то изображение сразу норм.
P.S.
Земли(минусы) везде соединение плата + индикатор+блок питания.
Может к кого то было что то подобное ?
Я бы ставил на плохой контакт… но из меня схемотехник как их дыни футбольный мячик
Мучаюсь пол дня, итог такой на старой плате была старая версия программы, она запускалась сразу.Когда загрузил в старую плату новую версию программы тоже начались схожие проблемы. Правда изображение выравнивается чуть быстрее.
Также заметил что если на новой плате подтянуть PA6 через резистор 1 Ком к земле, то ситуация меняется в лучшую сторону.
Склоняюсь что ещё имеет значение партия панелей, по сканированию совпадают но чипы другие может в них проблема.
Должны на днях прислать из другой старой партии, может дело в них
rows от 0 до 10
// Выставляем адрес строки для отображения
GPIOA->BSRR = (1 << 5);//PA5
for (int r = 9; r >= 0; r--) {
if (rows % 10 == r) GPIOA->BSRR = (1 << 6);//SDI PA6
else GPIOA->BRR = (1 << 6);//SDI PA6
GPIOA->BSRR = (1 << 4);//DCLK PA4
GPIOA->BRR = (1 << 4);//DCLK PA4
}
GPIOA->BRR = (1 << 5);//PA5
Может после загрузки точек, перед выбором строки нужно паузу делать ?
Так просто, для успокоения - я правильно понял что ваш вопрос к библиотеке отношения не имеет?
Да, верно…
У вас вопрос по этому кусочку кода? - тогда поясните, что он делает, ибо комментарии мало что проясняют.
Да нет, это я написал как происходит выбор строки у меня…Но уже не важно…
В ходе аксперементов пришёл в выводу что проблема аппаратная, на следующих платах медный полигон на верхней части платы не буду делать.
И разъём экрана перенесу ближе к чипу…
Остановился на том что DMD_PIN_C
через резистор 5 Ком подтянул к земле, получилось что экран кракозяблы не показывает, а примерно через 5 сек загорается полностью корректно…
Так может у вас в коде setup() такой длинный - типа ждете подключения датчиков или ответа в Сериал и только потом начинаете выводить данные на матрицу? - тогда понятно, что первые пять секунд на панели мусор
нет, setup быстрый.И там не мусор, а изображение корректное погоризонтали , но хаотичное по вертикали строки непонятным образом то ли перемешаны то ли продублированы…
Насколько я помню (и судя по коду), у вас строки переключаются сдвиговым регистром?
Подобный эффект можно было бы обьяснить тем, что при включении состояние этого регистра случайное и может включить несколько строк сразу. Но это должно длится доли секунды, а не пять.
Попробуйте вставить в начало сетап обнуление этого регистра перед началом работы.
Хммм. интересно Ща попробую,
Не не помогло…
Спасибо, за помощь, оставлю как есть , придёт панель на других чипах попробую…
Здравствуйте. У меня вопрос не совсем по теме, больше по аддонам и ардуино ИДЕ. Хотел прикрутить часы к данной библиотеке с помощью встроенных RTC. На сайте http://rcl-radio.ru/?p=113017 описан пример для платы stm32f103c8t6 и он с аддонами для данной библиотеки завелся хорошо. Но изменив плату на stm32F401CCE6 выдает ошибку Compilation error: no matching function for call to 'RTClock::RTClock(rtc_clk_src, int)'
Так вот вопрос к знающим: на плате stm32F401CCE6 с аддоном для библиотеки DMD_STM32 как-то реализованы RTC? в CibeIDE я подключал часы реального времени, а в ардуино ИДЕ не могу настроить.
В коде функция RTClock rtclock (RTCSEL_LSE, 32768); // внешний кварц 32768 Гц
собственно отвечает за подключение низкочастотного кварца (на ней и выходит ошибка). И для платы f103 работает, а для платы f401 не работает. Может быть кто-то использовал часы и сможет подсказать, куда копнуть?)
Этому может быть простейшее обьяснение. Если вы заглянете в исходники аддона - увидите что он состоит из двух абсолютно независимых ветвей - STM32F1 и STM32F4. Их даже составляли разные люди.
Поэтому скорее всего ваш вопрос имеет простой ответ - в ветке F1 поддержка часов есть, а в F4 их еще никто не добавил.
простой ответ - в ветке F1 поддержка часов есть, а в F4 их еще никто не добавил
Я так и начал думать. Но хотел уточнить от мастеров.