В старой версии нет этого китайского процессора. Что в этом случае выбрать в закладке device? Intel 8051? Разобрался, надо просто импортировать из STC-ISP. Попробовал скомпилировать проект main.c но файл получился меньше выложенного выше.
И еще Будет ли достаточно просто переназначить I/O порты в библиотеке STC15F204EA.h?
Импортировать не обязательно. Я просто указывал i8052. Насчет переназначить - идея интересная. Я так не пробовал, может сработать, хотя могут и баги вылезти. Там используются маски при работе с индикацией, м.б. что еще - уже не очень помню. Я бы лучше сделал условную компиляцию (у меня так сделано для 204 и 404 чипов), это будет более корректно, хотя и несколько более трудоемко. И внимательно посмотреть, как работаем с выводами, в плане битовых масок и т.п.
Заголовок сообщения: Re: Нужна помощь в программировании
Добавлено: Пн сен 26, 2022 10:19:54
Родился
Зарегистрирован: Пн сен 18, 2017 19:20:34 Сообщений: 1
Рейтинг сообщения:0
alex0732, в выложенном файле, прошивка для часов! Подскажите какую частоту выставлять при прошивке. Если можно - выложите скриншот с настройками прошивальщика. Заранее благодарен.
Как дела? Заработала прошивка? или проблемы? Если да - можно подробно в личку и исходники. Попробую помочь возможно. Хотя при отсутствии "тела" это сложно.
Заголовок сообщения: Re: Нужна помощь в программировании
Добавлено: Сб янв 07, 2023 15:44:56
Родился
Зарегистрирован: Вс мар 13, 2022 15:43:46 Сообщений: 1
Рейтинг сообщения:0
alex0732, добрый день. Нет ли у вас желания и возможности добавить в проект синхронизацию времени по Wi-Fi, например как это сделал уважаемый onivan здесь https://github.com/onivan/stc_diyclock-ntp. Все, что касается программной реализации модуля ESP8266, я готов взять на себя.
Люди добрые помогите, контроллер 28 ног, прошивка работает, но яркое мерцание индикаторов убивает и нижний порог яркости очень яркий, подкорректируйте пожалуйста или скажите что и где исправить, только учтите что я в этом балбес.
У меня были те же вопросы к этой прошивке. В итоге я перешёл на эту https://github.com/aFewBits/stc-led-clock При некоторых уровнях освещённости наблюдается мерцание индикаторов, но нижний порог яркости меньше.
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 в случае темноты.
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 в случае темноты.
измените значение TL1, например, на 0xF0 но это изменит порог только при автояркости
Добавлено after 3 minutes 47 seconds: для изменения мерцания попробовать изменить в том же файле в функции t0set(void) значения TH0 и TL0
Это я понял, спасибо, еще бы знать какие значения сюда писать, или хотя бы как их высчитать. Путем подбора от балды ничего не получается. То вообще индикаторы не светятся, то бегущая строка получается.
это счетчик таймера. изменяя его изменяете время срабатывания таймера. Я уже сегодня не помню, но яркость работает у автора кода вроде таким образом: включает общий индикатора и запускает таймер 1, как только таймер досчитает до переполнения, то есть от значения ((TH1 << 8 ) + TL1) до 0xFFFF, возникает событие, в котором индикатор гасится. Таким образом меняется длительность свечения. Срабатывает только при включенном рещжиме автояркости, это надо учесть или изменить. В таймере 0 меняется частота переключений разрядов индикатора.
Если менять одновременно, то будет непонятно что, например, если уменьшить длительность и одновременно увеличить частоту переключений индикатора, яркость не только может не стать меньше, но и увеличится, так как яркость - это коэффициент заполнения, который здесь независим от частоты импульсов. В общем, это надо как-то осознать поэтапно. Например, попробовать изучить изменения яркости светодиодов методом ШИМ, и полученные знания наложить на эту модель.
это счетчик таймера. изменяя его изменяете время срабатывания таймера.
T0 у меня "щелкает" каждые 5 мс, разряды индикатора по нему и переключаются. Для устранения мерцания можно пересчитать его на 4 мс, но надо иметь в виду, что много других функций также завязаны на переполнение Т0 Даже не многие, а все, поэтому их счётчики тоже надо будет изменить. Пару лет назад я начал переделывать весь проект (под переполнение Т0 = 1 мс), но так и не довел дело до конца. Не обессудьте, это был мой второй проект на С (после термометра, который можно не учитывать) и первый на 8051 вместе со знакомством с Кейлом.
_________________ Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения