WIFI часы на ESP8266 и MAX7219 зеркальное изображение

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Аватара пользователя
Сообщения: 127
Зарегистрирован: Вт июл 09, 2013 18:23:54
Откуда: из Болгарии

Сообщение mitre »

Привет из Болгарии.
Пожалуйста помогите мне решить эту проблему зеркальное изображение https://www.youtube.com/watch?v=--MSv4j ... e=youtu.be
Скетч здесь https://cloud.mail.ru/public/3FV8/npCXv7hyE
Последний раз редактировалось mitre Пт мар 16, 2018 19:51:04, всего редактировалось 1 раз.
Реклама
Супер-Кот
Аватара пользователя
Сообщения: 235
Зарегистрирован: Пт мар 13, 2015 15:02:43
Откуда: Город Грёз

Сообщение Silvermonk »

Привет! А сами сегменты правильно установлены?
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 127
Зарегистрирован: Вт июл 09, 2013 18:23:54
Откуда: из Болгарии

Сообщение mitre »

так в скетч
#define MAX_DEVICES 4
#define CLK_PIN D5 // or SCK
#define DATA_PIN D7 // or MOSI
#define CS_PIN D6 // or SS
Друг Кота
Аватара пользователя
Сообщения: 43969
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

Сообщение АлександрЛ »

:dont_know: Просто кто- то считает сегменты слева- направо, а кто- то справа- налево.. Вы в каком направлении считали?
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Аватара пользователя
Сообщения: 127
Зарегистрирован: Вт июл 09, 2013 18:23:54
Откуда: из Болгарии

Сообщение mitre »

[uquote="АлександрЛ",url="/forum/viewtopic.php?p=3331811#p3331811"]:dont_know: Просто кто- то считает сегменты слева- направо, а кто- то справа- налево.. Вы в каком направлении считали?[/uquote]

Не имеет значения, как сделано
Реклама
Друг Кота
Аватара пользователя
Сообщения: 43969
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

Сообщение АлександрЛ »

Как это "не имеет значения"?
Если вы сначала выводите на индикацию первый разяд, и в это время у индикатора "подключён" последний- то оно так и будет "задом наперёд" выводиться..

я так один раз при разводке платы ошибся- и у меня первый разряд оказался последним.. :dont_know:
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 127
Зарегистрирован: Вт июл 09, 2013 18:23:54
Откуда: из Болгарии

Сообщение mitre »

Я не понимаю программирования и не знаю, как это должно быть
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

А скетч у вас нормально собирается?

Если да то попробуйте следующее:
В файле max7219.h есть функция такого рода

Код: Выделить всё

shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, i == addr ? cmd : 0);
Таких функций shiftOut(..........) в этом файле max7219.h 10 штук.

Там сгруппировано, к примеру

Код: Выделить всё

void sendCmdAll(byte cmd, byte data) {
  digitalWrite(CS_PIN, LOW);
  for(int i = NUM_MAX - 1; i >= 0; i--){
    shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, cmd);
    shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, data);
  }
  digitalWrite(CS_PIN, HIGH);
}
смотрите внимательно, сначала передается адрес shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, cmd); потом дата(информация) shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, data);.
Последовательность вывода бит MSBFIRST — слева или LSBFIRST — справа.
Поиграйтесь с комбинацией.
К примеру:
Спойлер

Код: Выделить всё

void sendCmdAll(byte cmd, byte data) {
  digitalWrite(CS_PIN, LOW);
  for(int i = NUM_MAX - 1; i >= 0; i--){
    shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, cmd);
    shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, data);
  }
  digitalWrite(CS_PIN, HIGH);
}

void sendCmdAll(byte cmd, byte data) {
  digitalWrite(CS_PIN, LOW);
  for(int i = NUM_MAX - 1; i >= 0; i--){
    shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, cmd);
    shiftOut(DIN_PIN, CLK_PIN, LSBFIRST, data);
  }
  digitalWrite(CS_PIN, HIGH);
}

void sendCmdAll(byte cmd, byte data) {
  digitalWrite(CS_PIN, LOW);
  for(int i = NUM_MAX - 1; i >= 0; i--){
    shiftOut(DIN_PIN, CLK_PIN, LSBFIRST, cmd);
    shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, data);
  }
  digitalWrite(CS_PIN, HIGH);
}

void sendCmdAll(byte cmd, byte data) {
  digitalWrite(CS_PIN, LOW);
  for(int i = NUM_MAX - 1; i >= 0; i--){
    shiftOut(DIN_PIN, CLK_PIN, LSBFIRST, cmd);
    shiftOut(DIN_PIN, CLK_PIN, LSBFIRST, data);
  }
  digitalWrite(CS_PIN, HIGH);
}
В файле max7219.h таких групп всего 5 штук, менять надо сразу во всех группах.
Встал на лапы
Аватара пользователя
Сообщения: 127
Зарегистрирован: Вт июл 09, 2013 18:23:54
Откуда: из Болгарии

Сообщение mitre »

Я сделал все правильно, и он отлично работает.
Большое спасибо Dimon456 за вашу помощь :beer:
Ответить

Вернуться в «AVR»