Например TDA7294

Форум РадиоКот • Просмотр темы - 7seg на hc595 4digit
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт дек 18, 2025 11:40:41

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 169 ]    , , 3, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Ср фев 14, 2024 22:30:44 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1493
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15295
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Основная задача - сделать сканирование самостоятельным процессом.
micros - это также часть основной программы. Рабочая версия, но несколько более простая.
Второе - счетчик не бесконечен - надо переполнение учитывать при длительной работе.
Посмотрю, где там у меня в преобразователе ошибка - но то уже больше вопрос теста, чем самой индикации.
8)
Ну вот и ошибку отловил - причина НЕВНИМАТЕЛЬНОСТЬ - вместо цифирьки запихнул сразу сегментный код! (перекодировка там ниже отдельно выполняется, а инверсия в обработчике прерывания).
Надо было так:
Спойлер
Код:
temp = Dcnt;
 if (temp == 0)
  { for (byte m = 0; m <= 3; m++){ TrmDat[m] = 0; } }
 else
  { if (temp >= 1000)
     { TrmDat[0] = temp / 1000; temp = temp % 1000; }
    else { TrmDat[0] = 0; }
    if (temp >= 100)
     { TrmDat[1] = temp / 100; temp = temp % 100; }
    else { TrmDat[1] = 0; }
    if (temp >= 10)
     { TrmDat[2] = temp / 10; temp = temp % 10; }
    else { TrmDat[2] = 0; }
    TrmDat[3] = temp;
  }

:facepalm:
Вот теперича работать точно будет:
Вложение:
disp4a.zip [4.14 KiB]
Скачиваний: 26

:hunger:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Ср фев 14, 2024 23:00:41 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 121
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2977
Откуда: Беларусь
Рейтинг сообщения: 0
Ну вот и ошибку отловил - причина НЕВНИМАТЕЛЬНОСТЬ - вместо цифирьки запихнул сразу сегментный код!
Надо было так:
Спойлер
Код:
temp = Dcnt;
 if (temp == 0)
  { for (byte m = 0; m <= 3; m++){ TrmDat[m] = 0; } }
 else
  { if (temp >= 1000)
     { TrmDat[0] = temp / 1000; temp = temp % 1000; }
    else { TrmDat[0] = 0; }
    if (temp >= 100)
     { TrmDat[1] = temp / 100; temp = temp % 100; }
    else { TrmDat[1] = 0; }
    if (temp >= 10)
     { TrmDat[2] = temp / 10; temp = temp % 10; }
    else { TrmDat[2] = 0; }
    TrmDat[3] = temp;
  }

:facepalm:
Вот теперича работать точно будет:
Вложение:
disp4a.zip

:hunger:


Да!Теперь с нулями бегает , но незначащие нули спереди пишет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Ср фев 14, 2024 23:18:16 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1493
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15295
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Это уже "вопросы основной программы" - что заложим, то и покажет.
Главное основной сканер динамической индикации работает, а что он будет выводить на индикацию это циферки (или чего другого) из массива TrmDat[5].
Причем ячейки 0-3 там под цифирь, а старшая тетрада 4й ячейки - управление внешними светиками и служебными линиями (младшая тетрада - то позиционные ключи).
Заодно и знакогенератор "кракозябр" семисегментных прилагается.
Запятую или произвольные символы надо вводить после фрагмента перекодировки в сегментный код, перед установкой флага запроса на перенос данных в массив vram.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Ср фев 14, 2024 23:24:30 
Друг Кота

Карма: 67
Рейтинг сообщений: 1964
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
А встроенные спецэффекты будут? ;)
Бегущий сегмент по периметру, например.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Чт фев 15, 2024 00:41:43 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1493
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15295
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Нее...
То уже вопрос основной программы - что напишем, то и выведет на индикацию.
Если напрямую загружать "кракозябрами" массив предподготовки (без преобразования через знакогенератор) то выводить будет все, что загружено. Минимальный интервал между выводом в одну строку развертки со стороны контроллера динамической индикации (раз в 0,016 секунды), а со стороны основной программы - от момента установки флага запроса до точки переноса примерно такой же (или меньше - в зависимости от того, в какой момент относительно работы сканера был установлен флаг запроса).
Собственно это защита от "случайного сбоя" - индикация меняется только по окончании вывода предыдущей строки (нету "разрыва" индикации).
Но... гашения между выводом позиций также нету - это дополнительное время. Понадеемся на эффект быстродействия по переносу из сдвигового регистра в защелку у 595ых. У кого "живьем" - проверьте на "мерцание/паразитную засветку" как ощущение от индикаторов будет (не устают ли глаза при наблюдении).
Хоша... теоретически можно поставить "гасящий вывод" - один из слотов интервала задержки еще свободен... Но то уже если очень припечет...
Вобщем... похоже таки можно применять этот алгоритм...
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Чт фев 15, 2024 01:32:48 
Друг Кота

Карма: 67
Рейтинг сообщений: 1964
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
На фото olegue (достаточно больших) не видно засветки


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Чт фев 15, 2024 09:47:04 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1493
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15295
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Фото - не то же, что глазом ощущать...
:wink:
Второй нюанс - какова будет реакция устройства при совместном применении критичных по времени (и разрыву протокола обмена) этого варианта динамической индикации и библиотек Adafruit_NeoPixel и OneWire?...
То проверять надо...
:dont_know:
У меня есть подобное применение прерывания по OCR0A совместно с термометром-показометром на DS18B20(проект К145М что на котуинке лежит), но там не столь плотно интервал занят - прерывание только флажок ставит. А тут один из слотов почти полностью заполнен.
Для некритичных ко времени и приостановке протоколов обмена и тех, что основаны на аппаратных модулях МК (UART, SPI, I2C) динамическая индикация на основе прерывания не повлияет.
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Чт фев 15, 2024 10:08:26 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2926
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18892
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
olegue писал(а):
Теперь с нулями бегает , но незначащие нули спереди пишет.
нужно делать разветвленный анализ цифр:
если первый ноль, то выводим пробел (или пустое место), или не выводим ничего. иначе переходим к выводу всех цифр.
если первый ноль, анализируем вторую цифру на ноль, и так далее.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Чт фев 15, 2024 12:26:38 
Это не хвост, это антенна

Карма: 12
Рейтинг сообщений: 136
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1307
Рейтинг сообщения: 0
Какое там ещё ветвление?)
Код:
void printInt(uint16_t bin) {
  char chr = ' ';
  for (uint16_t div = 1000; div > 1; div /= 10) {
    uint8_t d = bin / div;
    if (chr != ' ' || d)
      chr = d + '0';
    printChar(chr);
    bin %= div;
  }
  printChar(bin + '0');
}

Исправить под себя.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Чт фев 15, 2024 14:10:17 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 121
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2977
Откуда: Беларусь
Рейтинг сообщения: 0
У кого "живьем" - проверьте на "мерцание/паразитную засветку" как ощущение от индикаторов будет (не устают ли глаза при наблюдении).

8)


На мой взгляд индикатор засвечен равномерно, индикация спокойная без каких либо артефактов.

Добавлено after 5 minutes 5 seconds:
Какое там ещё ветвление?)
Спойлер
Код:
void printInt(uint16_t bin) {
  char chr = ' ';
  for (uint16_t div = 1000; div > 1; div /= 10) {
    uint8_t d = bin / div;
    if (chr != ' ' || d)
      chr = d + '0';
    printChar(chr);
    bin %= div;
  }
  printChar(bin + '0');
}

Исправить под себя.

Нонешние методики программирования не то что давешние.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Чт фев 15, 2024 15:56:29 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1493
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15295
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
В принципе не так уж сложно незначащие нули в моем тест - примере погасить.
Находим фрагмент:
Спойлер
Код:
  // перекодировка в сегментный код
  for (byte m = 0; m <= 3; m++)
   { TrmDat[m] = znak(TrmDat[m]); }

Добавляем еще один флажок
Код:
volatile byte Zflag; // контрольный флаг

и меняем код данного фрагмента на свой.
Примерно вот такой:
Спойлер
Код:
Zflag = 0;
  if(TrmDat[0] == 0){ TrmDat[0] = fnt_bl; }
   else { TrmDat[0] = znak(TrmDat[0]); Zflag = 1; }
  if(Zflag){ TrmDat[1] = znak(TrmDat[1]); }
   else { if(TrmDat[1] == 0){TrmDat[1] = fnt_bl; }
           else { TrmDat[1] = znak(TrmDat[1]); Zflag = 1; }
        }
  if(Zflag){ TrmDat[2] = znak(TrmDat[2]); }
   else { if(TrmDat[2] == 0){TrmDat[2] = fnt_bl; }
           else { TrmDat[2] = znak(TrmDat[2]); }
        }
  TrmDat[3] = znak(TrmDat[3]);

(Можно тут и символы повставлять -
естественно без использования функции znak :wink: )
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Чт фев 15, 2024 21:49:59 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2926
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18892
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
OKF писал(а):
Какое там ещё ветвление?
твой код будет писать незначащие нули спереди.
я тут сделал в протеусе проект с 74hc595, никаких "паразиток" не наблюдаю.
еще "до кучи" сделал в протеусе проект с MAX7219, тоже никаких "паразиток" не наблюдаю.
оба проекта без гашения перед следующим выводом символа.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Пт фев 16, 2024 08:42:22 
Это не хвост, это антенна

Карма: 12
Рейтинг сообщений: 136
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1307
Рейтинг сообщения: 0
твой код будет писать незначащие нули спереди.

Та вроде нет - пробелы.)
Это называется с выравниванием по правому краю.
Можно и по левому, если принт переставить):
Код:
    if (chr != ' ' || d) {
      chr = d + '0';
      printChar(chr);
    }


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Пт фев 16, 2024 10:06:32 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2926
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18892
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
похоже, я с первого раза недосмотрел. да, получаются пробелы.

Добавлено after 53 minutes 51 second:
кусок кода из первого поста:
Код:
void dig(unsigned char d1, unsigned char d2) {
  digitalWrite(LATCH_PIN, LOW);
  d(d1);
  d(d2);
  digitalWrite(LATCH_PIN, HIGH);
}

void setup() {
  pinMode(DATA_PIN, OUTPUT);
  pinMode(CLK_PIN, OUTPUT);
  pinMode(LATCH_PIN, OUTPUT);
  Serial.begin(9600);
}

должно быть так:
Код:
void dig(unsigned char d1, unsigned char d2) {
  d(d1);
  d(d2);
  digitalWrite(LATCH_PIN, HIGH);
  digitalWrite(LATCH_PIN, LOW);
}

void setup() {
  pinMode(DATA_PIN, OUTPUT);
  pinMode(CLK_PIN, OUTPUT);
  pinMode(LATCH_PIN, OUTPUT);

  digitalWrite(CLK_PIN, LOW);
  digitalWrite(LATCH_PIN, LOW);

  Serial.begin(9600);
}

"засветки" и "паразитки" могут быть из-за того, что выход LATCH_PIN оставался в высоком уровне.
при этом из сдвигового регистра входящие данные сразу предавались в выходной регистр.
а импульс на "защелки" нужно подавать после всех принятых бит. тогда не будет "засветок" и "паразиток" .

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Пт фев 16, 2024 10:45:30 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1493
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15295
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
По вопросам причин "паразиток" остался еще один момент - смена данных в ОЗУ "видеопамяти" должна производиться после окончания текущей строки развертки (или перед началом развертки новой строки). Это актуально для 595ых (и аппаратного варианта динамической развертки на выводах самого МК), но не для спецконтроллеров типа MAX7219 - в них все "особенности" уже предусмотрены изготовителем.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Пт фев 16, 2024 12:37:53 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2926
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18892
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
я мог выше быть не прав, и не важно, когда произошла подача нуля на вход защелок.
в моем проекте для протеуса вывод в буфер индикации не синхронизирован с окончанием вывода всех 8 символов. тем не менее, я в протеусе не вижу "паразиток".
а вообще, логика в твоих словах о синхронизации правильная.
у меня таймер работает по 2 мс, то есть, частота вывода 500 Гц.
таким образом, полный вывод всей строки из 8 символов происходит с частотой 62,5 Гц.
в принципе, и у меня может быть сбой (паразитка), если вывод в буфер новой информации произойдет в середине вывода строки. но с такой скоростью динамического вывода я сбой не вижу.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Пт фев 16, 2024 14:32:34 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1493
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15295
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
"Проблеск" при произвольной точке обновления зависит от многих причин - тут и время между запросами обновления, зависящее от длины исполняемых фрагментов основной программы между запросами на обновление, количество знакомест, модуль одновременно выводимых позиций (если портов сегментных ключей более одного) и прочие "стечения обстоятельств".
Иногда даже от момента взгляда на индикатор (типа "...уфф! и померещится же!...").
Давно уже все это учтено в спецконтроллерах. А к самодельной динамической индикации разве что для всяких рекламных щитов с "мультипликацией" да изредка бегущих строк (и то там уже давно спецконтроллеры подавляющее преимущество по применению получили) обращаются.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Пт фев 16, 2024 15:28:35 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2926
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18892
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
если для 74hc595 можно сделать синхронизацию вывода в буфер после окончания вывода всей строки, а как быть со спецконтроллером MAX7219, у него не узнаешь, когда закончен вывод всех 8 разрядов?

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Пт фев 16, 2024 15:52:12 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1493
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15295
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
У MAX7219 это уже заложено в его внутренней прошивке - это же не просто регистр, а спецконтроллер динамической индикации.
К примеру, кусочек из моей самодельной библиотеки с описанием его программно доступных ресурсов:

Спойлер
Код:
#define addp0 1 // значение адреса регистра данных позиции 1 дисплея
#define addp1 2 // значение адреса регистра данных позиции 2 дисплея
#define addp2 3 // значение адреса регистра данных позиции 3 дисплея
#define addp3 4 // значение адреса регистра данных позиции 4 дисплея
#define addp4 5 // значение адреса регистра данных позиции 5 дисплея
#define addp5 6 // значение адреса регистра данных позиции 6 дисплея
#define addp6 7 // значение адреса регистра данных позиции 7 дисплея
#define addp7 8 // значение адреса регистра данных позиции 8 дисплея

#define No_Op 0 // значение адреса регистра No_Op
// регистр No_Op используется исключительно при каскадировании max7219
#define Dec_Mod 9// значение адреса регистра Decode_Mode
#define Intensit 0x0A // значение адреса регистра Intensity
#define Sc_Lim 0x0B // значение адреса регистра Scan_Limit
#define Shut_Dn 0x0C // значение адреса регистра Shut_Down
#define Disp_ts 0x0F // значение адреса регистра Display_test

#define Com_DM_0 0 // Dec_Mod, все позиции только под знакосинтез DM отключен
#define Com_DM_1 1 // Dec_Mod, B_fntN только для позиции 0, поз. 1-7 под знакосинтез
#define Com_DM_2 2 // Dec_Mod, B_fntN для позиций 0-3, поз. 4-7 под знакосинтез
#define Com_DM_3 3 // Dec_Mod, B_fntN для позиций 0-7

#define Com_int_0 0 // Intensit, уровень яркости 1/32 (минимальный)
#define Com_int_1 1 // Intensit, уровень яркости 3/32
#define Com_int_2 2 // Intensit, уровень яркости 5/32
#define Com_int_3 3 // Intensit, уровень яркости 7/32
#define Com_int_4 4 // Intensit, уровень яркости 9/32
#define Com_int_5 5 // Intensit, уровень яркости 11/32
#define Com_int_6 6 // Intensit, уровень яркости 13/32
#define Com_int_7 7 // Intensit, уровень яркости 15/32
#define Com_int_8 8 // Intensit, уровень яркости 17/32
#define Com_int_9 9 // Intensit, уровень яркости 19/32
#define Com_int_A 10 // Intensit, уровень яркости 21/32
#define Com_int_B 11 // Intensit, уровень яркости 23/32
#define Com_int_C 12 // Intensit, уровень яркости 25/32
#define Com_int_D 13 // Intensit, уровень яркости 27/32
#define Com_int_E 14 // Intensit, уровень яркости 29/32
#define Com_int_F 15 // Intensit, уровень яркости 31/32 (максимальный)

#define Com_SL_0 0 // Sc_Lim, индикация только в позиции 0 (max s I 10mA!)
#define Com_SL_1 1 // Sc_Lim, индикация только в позиции 0,1 (max s I 20mA!)
#define Com_SL_2 2 // Sc_Lim, индикация только в позиции 0,1,2 (max s I 30mA!)
#define Com_SL_3 3 // Sc_Lim, индикация только в позиции 0,1,2,3
#define Com_SL_4 4 // Sc_Lim, индикация только в позиции 0,1,2,3,4
#define Com_SL_5 5 // Sc_Lim, индикация только в позиции 0,1,2,3,4,5
#define Com_SL_6 6 // Sc_Lim, индикация только в позиции 0,1,2,3,4,5,6
#define Com_SL_7 7 // Sc_Lim, индикация только в позиции 0,1,2,3,4,5,6,7

#define Com_Shutdn_md 0 // Shut_Dn, значение данных команды Shutdown_mode
#define Com_Normal_md 1 // Shut_Dn, значение данных команды Normal_mode
#define Com_tst_on_md 1 // Disp_ts, значение данных команды display test on_mode
#define Com_tst_of_md 0 // Disp_ts, значение данных команды display test off_mode


и сама "библиотечка" (сделана "в рамках референса" ардуино)
Вложение:
max72m.zip [5.17 KiB]
Скачиваний: 26

8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 7seg на hc595 4digit
СообщениеДобавлено: Пт фев 16, 2024 18:56:40 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2926
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18892
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
удивляюсь я сочинительством библиотек для самых простых дел.
для MAX7219 нужна всего одна подпрограмма (функция) отправки двух байтов команды, и ради этого сочинять библиотеку.
ладно, сочинил библиотеку, сделал, что хотел.
а зачем ты везде сделал задержки по 60 мкс? только тормозить вывод.
микросхема работает до 10 МГц, это значит, что она будет работать даже при тактовой частоте 20 МГц, и без всяких принудительных задержках.
а зачем тебе понадобилось создавать функцию overZnak? а также функцию znak, которая у тебя при выводе не используется?

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 169 ]    , , 3, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y