Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Вт сен 13, 2022 13:37:28
Как бы немного имел дело с софтом на низком уровне. Но если выложите исходники может кто-то поможет и кому-то это пригодится
Вт сен 13, 2022 17:31:37
Таких проектов часов - сотни, если не больше. Во времена PIC/AVR были очень популярны, делали все, практически каждый.
Вт сен 13, 2022 18:29:16
Естественно. Никаких проблем. Другое дело, как всё оформлено. Или куча - кучей, тяп-ляп, или же по уму.)
Вт сен 13, 2022 22:10:19
Держите.
- Вложения
-
- stc15clock1v1.zip
- (23.11 KiB) Скачиваний: 133
Ср сен 14, 2022 10:10:38
Спасибо!
На сайте STC много софта выложено. Какие инструменты посоветуете, которые наиболее практичны в данном случае?
Ср сен 14, 2022 17:53:26
Keil какой нибудь старой версии. Ссылка тут где то была кажется. С лекарством.
Чт сен 15, 2022 00:02:07
В старой версии нет этого китайского процессора. Что в этом случае выбрать в закладке device? Intel 8051?
Разобрался, надо просто импортировать из STC-ISP.
Попробовал скомпилировать проект main.c но файл получился меньше выложенного выше.
И еще
Будет ли достаточно просто переназначить I/O порты в библиотеке STC15F204EA.h?
Чт сен 15, 2022 17:38:06
Импортировать не обязательно. Я просто указывал i8052.
Насчет переназначить - идея интересная.
Я так не пробовал, может сработать, хотя могут и баги вылезти.
Там используются маски при работе с индикацией, м.б. что еще - уже не очень помню.
Я бы лучше сделал условную компиляцию (у меня так сделано для 204 и 404 чипов),
это будет более корректно, хотя и несколько более трудоемко.
И внимательно посмотреть, как работаем с выводами, в плане битовых масок и т.п.
Пн сен 26, 2022 10:19:54
alex0732, в выложенном файле, прошивка для часов!
Подскажите какую частоту выставлять при прошивке.
Если можно - выложите скриншот с настройками прошивальщика.
Заранее благодарен.
Чт сен 29, 2022 14:29:51
Добрый день.
Тут вот по-моему все подробно описано:
https://www.radiokot.ru/cherdak/78/И скриншоты есть. Ну и в этой теме тоже.
Если что непонятно будет - пишите.
Вт окт 04, 2022 14:32:36
Как дела? Заработала прошивка? или проблемы?
Если да - можно подробно в личку и исходники. Попробую помочь возможно.
Хотя при отсутствии "тела" это сложно.
Сб янв 07, 2023 15:44:56
alex0732, добрый день. Нет ли у вас желания и возможности добавить в проект синхронизацию времени по Wi-Fi, например как это сделал уважаемый
onivan здесь
https://github.com/onivan/stc_diyclock-ntp. Все, что касается программной реализации модуля ESP8266, я готов взять на себя.
Вс янв 29, 2023 12:45:53
Люди добрые помогите, контроллер 28 ног, прошивка работает, но яркое мерцание индикаторов убивает и нижний порог яркости очень яркий, подкорректируйте пожалуйста или скажите что и где исправить, только учтите что я в этом балбес.
- Вложения
-
- STC_clock_28pin.rar
- (805.87 KiB) Скачиваний: 69
Пн фев 20, 2023 18:44:16
У меня были те же вопросы к этой прошивке.
В итоге я перешёл на эту
https://github.com/aFewBits/stc-led-clockПри некоторых уровнях освещённости наблюдается мерцание индикаторов, но нижний порог яркости меньше.
Пн фев 20, 2023 21:13:04
На всех этих прошивках отсутствует нормальное затемнение, а это одно из важных условий. Ночью очень ярко.
Пн фев 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
Вт фев 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
Это я понял, спасибо, еще бы знать какие значения сюда писать, или хотя бы как их высчитать. Путем подбора от балды ничего не получается.
То вообще индикаторы не светятся, то бегущая строка получается.
Вт фев 21, 2023 15:01:01
это счетчик таймера. изменяя его изменяете время срабатывания таймера. Я уже сегодня не помню, но яркость работает у автора кода вроде таким образом: включает общий индикатора и запускает таймер 1, как только таймер досчитает до переполнения, то есть от значения ((TH1 << 8 ) + TL1) до 0xFFFF, возникает событие, в котором индикатор гасится. Таким образом меняется длительность свечения. Срабатывает только при включенном рещжиме автояркости, это надо учесть или изменить.
В таймере 0 меняется частота переключений разрядов индикатора.
Если менять одновременно, то будет непонятно что, например, если уменьшить длительность и одновременно увеличить частоту переключений индикатора, яркость не только может не стать меньше, но и увеличится, так как яркость - это коэффициент заполнения, который здесь независим от частоты импульсов.
В общем, это надо как-то осознать поэтапно. Например, попробовать изучить изменения яркости светодиодов методом ШИМ, и полученные знания наложить на эту модель.
Вт фев 21, 2023 18:00:54
это счетчик таймера. изменяя его изменяете время срабатывания таймера.
T0 у меня "щелкает" каждые 5 мс, разряды индикатора по нему и переключаются. Для устранения мерцания можно пересчитать его на 4 мс, но надо иметь в виду, что много других функций также завязаны на переполнение Т0
Даже не многие, а все, поэтому их счётчики тоже надо будет изменить.
Пару лет назад я начал переделывать весь проект (под переполнение Т0 = 1 мс), но так и не довел дело до конца.
Не обессудьте, это был мой второй проект на С (после термометра, который можно не учитывать) и первый на 8051 вместе со знакомством с Кейлом.
Вт фев 21, 2023 18:20:11
Zhuk72 писал(а):Не обессудьте, это был мой второй проект на С
да нормально там всё, и хорошо комментировано.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.