Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Нужна помощь в программировании

Вт сен 13, 2022 13:37:28

Как бы немного имел дело с софтом на низком уровне. Но если выложите исходники может кто-то поможет и кому-то это пригодится

Re: Нужна помощь в программировании

Вт сен 13, 2022 17:31:37

Таких проектов часов - сотни, если не больше. Во времена PIC/AVR были очень популярны, делали все, практически каждый.

Re: Нужна помощь в программировании

Вт сен 13, 2022 18:29:16

Естественно. Никаких проблем. Другое дело, как всё оформлено. Или куча - кучей, тяп-ляп, или же по уму.)

Re: Нужна помощь в программировании

Вт сен 13, 2022 22:10:19

Держите.
Вложения
stc15clock1v1.zip
(23.11 KiB) Скачиваний: 132

Re: Нужна помощь в программировании

Ср сен 14, 2022 10:10:38

Спасибо!
На сайте STC много софта выложено. Какие инструменты посоветуете, которые наиболее практичны в данном случае?

Re: Нужна помощь в программировании

Ср сен 14, 2022 17:53:26

Keil какой нибудь старой версии. Ссылка тут где то была кажется. С лекарством.

Re: Нужна помощь в программировании

Чт сен 15, 2022 00:02:07

В старой версии нет этого китайского процессора. Что в этом случае выбрать в закладке device? Intel 8051?
Разобрался, надо просто импортировать из STC-ISP.
Попробовал скомпилировать проект main.c но файл получился меньше выложенного выше.

И еще
Будет ли достаточно просто переназначить I/O порты в библиотеке STC15F204EA.h?

Re: Нужна помощь в программировании

Чт сен 15, 2022 17:38:06

Импортировать не обязательно. Я просто указывал i8052.
Насчет переназначить - идея интересная.
Я так не пробовал, может сработать, хотя могут и баги вылезти.
Там используются маски при работе с индикацией, м.б. что еще - уже не очень помню.
Я бы лучше сделал условную компиляцию (у меня так сделано для 204 и 404 чипов),
это будет более корректно, хотя и несколько более трудоемко.
И внимательно посмотреть, как работаем с выводами, в плане битовых масок и т.п.

Re: Нужна помощь в программировании

Пн сен 26, 2022 10:19:54

alex0732, в выложенном файле, прошивка для часов!
Подскажите какую частоту выставлять при прошивке.
Если можно - выложите скриншот с настройками прошивальщика.
Заранее благодарен.

Re: Нужна помощь в программировании

Чт сен 29, 2022 14:29:51

Добрый день.

Тут вот по-моему все подробно описано: https://www.radiokot.ru/cherdak/78/
И скриншоты есть. Ну и в этой теме тоже.
Если что непонятно будет - пишите.

Re: Нужна помощь в программировании

Вт окт 04, 2022 14:32:36

Как дела? Заработала прошивка? или проблемы?
Если да - можно подробно в личку и исходники. Попробую помочь возможно.
Хотя при отсутствии "тела" это сложно.

Re: Нужна помощь в программировании

Сб янв 07, 2023 15:44:56

alex0732, добрый день. Нет ли у вас желания и возможности добавить в проект синхронизацию времени по Wi-Fi, например как это сделал уважаемый onivan здесь https://github.com/onivan/stc_diyclock-ntp. Все, что касается программной реализации модуля ESP8266, я готов взять на себя.

Re: Нужна помощь в программировании

Вс янв 29, 2023 12:45:53

Люди добрые помогите, контроллер 28 ног, прошивка работает, но яркое мерцание индикаторов убивает и нижний порог яркости очень яркий, подкорректируйте пожалуйста или скажите что и где исправить, только учтите что я в этом балбес.
Вложения
STC_clock_28pin.rar
(805.87 KiB) Скачиваний: 68

Re: Нужна помощь в программировании

Пн фев 20, 2023 18:44:16

У меня были те же вопросы к этой прошивке.
В итоге я перешёл на эту https://github.com/aFewBits/stc-led-clock
При некоторых уровнях освещённости наблюдается мерцание индикаторов, но нижний порог яркости меньше.

Re: Нужна помощь в программировании

Пн фев 20, 2023 21:13:04

На всех этих прошивках отсутствует нормальное затемнение, а это одно из важных условий. Ночью очень ярко.

Re: Нужна помощь в программировании

Пн фев 20, 2023 21:31:30

nikoxl, в файле init.c:
Код:
void  t1set(void)
{
// TH1 = 0xF0 (max. brightness) ~ 0xFF (min. brightness), 16 steps in total
// Начальные состояния таймера от 61440 до 65280, 255~3840 тактов до переполнения,
// т.е. анод бывает включен от 276 мкс при мин. до 4166 мкс при макс. яркости.
// light выделяется из ADC_RES (старший нибл) и может принимать значения от
// 0x0 при очень ярком свете до 0xF в случае темноты.
   
   TH1 = 0xF0 + light;
   TL1 = 0x00;
   TF1 = 0;      // Clear T1 interrupt flag
   ET1 = 1;    // T1 interrupt enable
   TR1 = 1;      // Timer1 start
}

измените значение TL1, например, на 0xF0
но это изменит порог только при автояркости

Добавлено after 3 minutes 47 seconds:
для изменения мерцания попробовать изменить в том же файле в функции t0set(void) значения TH0 и TL0

Re: Нужна помощь в программировании

Вт фев 21, 2023 14:48:11

nikoxl, в файле init.c:
Код:
void  t1set(void)
{
// TH1 = 0xF0 (max. brightness) ~ 0xFF (min. brightness), 16 steps in total
// Начальные состояния таймера от 61440 до 65280, 255~3840 тактов до переполнения,
// т.е. анод бывает включен от 276 мкс при мин. до 4166 мкс при макс. яркости.
// light выделяется из ADC_RES (старший нибл) и может принимать значения от
// 0x0 при очень ярком свете до 0xF в случае темноты.
   
   TH1 = 0xF0 + light;
   TL1 = 0x00;
   TF1 = 0;      // Clear T1 interrupt flag
   ET1 = 1;    // T1 interrupt enable
   TR1 = 1;      // Timer1 start
}

измените значение TL1, например, на 0xF0
но это изменит порог только при автояркости

Добавлено after 3 minutes 47 seconds:
для изменения мерцания попробовать изменить в том же файле в функции t0set(void) значения TH0 и TL0

Это я понял, спасибо, еще бы знать какие значения сюда писать, или хотя бы как их высчитать. Путем подбора от балды ничего не получается.
То вообще индикаторы не светятся, то бегущая строка получается.

Re: Нужна помощь в программировании

Вт фев 21, 2023 15:01:01

это счетчик таймера. изменяя его изменяете время срабатывания таймера. Я уже сегодня не помню, но яркость работает у автора кода вроде таким образом: включает общий индикатора и запускает таймер 1, как только таймер досчитает до переполнения, то есть от значения ((TH1 << 8 ) + TL1) до 0xFFFF, возникает событие, в котором индикатор гасится. Таким образом меняется длительность свечения. Срабатывает только при включенном рещжиме автояркости, это надо учесть или изменить.
В таймере 0 меняется частота переключений разрядов индикатора.

Если менять одновременно, то будет непонятно что, например, если уменьшить длительность и одновременно увеличить частоту переключений индикатора, яркость не только может не стать меньше, но и увеличится, так как яркость - это коэффициент заполнения, который здесь независим от частоты импульсов.
В общем, это надо как-то осознать поэтапно. Например, попробовать изучить изменения яркости светодиодов методом ШИМ, и полученные знания наложить на эту модель.

Re: Нужна помощь в программировании

Вт фев 21, 2023 18:00:54

это счетчик таймера. изменяя его изменяете время срабатывания таймера.

T0 у меня "щелкает" каждые 5 мс, разряды индикатора по нему и переключаются. Для устранения мерцания можно пересчитать его на 4 мс, но надо иметь в виду, что много других функций также завязаны на переполнение Т0 :( Даже не многие, а все, поэтому их счётчики тоже надо будет изменить.
Пару лет назад я начал переделывать весь проект (под переполнение Т0 = 1 мс), но так и не довел дело до конца.
Не обессудьте, это был мой второй проект на С (после термометра, который можно не учитывать) и первый на 8051 вместе со знакомством с Кейлом.

Re: Нужна помощь в программировании

Вт фев 21, 2023 18:20:11

Zhuk72 писал(а):Не обессудьте, это был мой второй проект на С
да нормально там всё, и хорошо комментировано.
Ответить