Нужна помощь в программировании
Re: Нужна помощь в программировании
Как бы немного имел дело с софтом на низком уровне. Но если выложите исходники может кто-то поможет и кому-то это пригодится
Re: Нужна помощь в программировании
Таких проектов часов - сотни, если не больше. Во времена PIC/AVR были очень популярны, делали все, практически каждый.
Re: Нужна помощь в программировании
Естественно. Никаких проблем. Другое дело, как всё оформлено. Или куча - кучей, тяп-ляп, или же по уму.)
Re: Нужна помощь в программировании
Спасибо!
На сайте STC много софта выложено. Какие инструменты посоветуете, которые наиболее практичны в данном случае?
На сайте STC много софта выложено. Какие инструменты посоветуете, которые наиболее практичны в данном случае?
Re: Нужна помощь в программировании
Keil какой нибудь старой версии. Ссылка тут где то была кажется. С лекарством.
Re: Нужна помощь в программировании
В старой версии нет этого китайского процессора. Что в этом случае выбрать в закладке device? Intel 8051?
Разобрался, надо просто импортировать из STC-ISP.
Попробовал скомпилировать проект main.c но файл получился меньше выложенного выше.
И еще
Будет ли достаточно просто переназначить I/O порты в библиотеке STC15F204EA.h?
Разобрался, надо просто импортировать из STC-ISP.
Попробовал скомпилировать проект main.c но файл получился меньше выложенного выше.
И еще
Будет ли достаточно просто переназначить I/O порты в библиотеке STC15F204EA.h?
Re: Нужна помощь в программировании
Импортировать не обязательно. Я просто указывал i8052.
Насчет переназначить - идея интересная.
Я так не пробовал, может сработать, хотя могут и баги вылезти.
Там используются маски при работе с индикацией, м.б. что еще - уже не очень помню.
Я бы лучше сделал условную компиляцию (у меня так сделано для 204 и 404 чипов),
это будет более корректно, хотя и несколько более трудоемко.
И внимательно посмотреть, как работаем с выводами, в плане битовых масок и т.п.
Насчет переназначить - идея интересная.
Я так не пробовал, может сработать, хотя могут и баги вылезти.
Там используются маски при работе с индикацией, м.б. что еще - уже не очень помню.
Я бы лучше сделал условную компиляцию (у меня так сделано для 204 и 404 чипов),
это будет более корректно, хотя и несколько более трудоемко.
И внимательно посмотреть, как работаем с выводами, в плане битовых масок и т.п.
Re: Нужна помощь в программировании
alex0732, в выложенном файле, прошивка для часов!
Подскажите какую частоту выставлять при прошивке.
Если можно - выложите скриншот с настройками прошивальщика.
Заранее благодарен.
Подскажите какую частоту выставлять при прошивке.
Если можно - выложите скриншот с настройками прошивальщика.
Заранее благодарен.
Re: Нужна помощь в программировании
Добрый день.
Тут вот по-моему все подробно описано: https://www.radiokot.ru/cherdak/78/
И скриншоты есть. Ну и в этой теме тоже.
Если что непонятно будет - пишите.
Тут вот по-моему все подробно описано: https://www.radiokot.ru/cherdak/78/
И скриншоты есть. Ну и в этой теме тоже.
Если что непонятно будет - пишите.
Re: Нужна помощь в программировании
Как дела? Заработала прошивка? или проблемы?
Если да - можно подробно в личку и исходники. Попробую помочь возможно.
Хотя при отсутствии "тела" это сложно.
Если да - можно подробно в личку и исходники. Попробую помочь возможно.
Хотя при отсутствии "тела" это сложно.
Re: Нужна помощь в программировании
alex0732, добрый день. Нет ли у вас желания и возможности добавить в проект синхронизацию времени по Wi-Fi, например как это сделал уважаемый onivan здесь https://github.com/onivan/stc_diyclock-ntp. Все, что касается программной реализации модуля ESP8266, я готов взять на себя.
Re: Нужна помощь в программировании
Люди добрые помогите, контроллер 28 ног, прошивка работает, но яркое мерцание индикаторов убивает и нижний порог яркости очень яркий, подкорректируйте пожалуйста или скажите что и где исправить, только учтите что я в этом балбес.
- Вложения
-
- STC_clock_28pin.rar
- (805.87 КБ) 210 скачиваний
Re: Нужна помощь в программировании
У меня были те же вопросы к этой прошивке.
В итоге я перешёл на эту https://github.com/aFewBits/stc-led-clock
При некоторых уровнях освещённости наблюдается мерцание индикаторов, но нижний порог яркости меньше.
В итоге я перешёл на эту https://github.com/aFewBits/stc-led-clock
При некоторых уровнях освещённости наблюдается мерцание индикаторов, но нижний порог яркости меньше.
Re: Нужна помощь в программировании
На всех этих прошивках отсутствует нормальное затемнение, а это одно из важных условий. Ночью очень ярко.
Re: Нужна помощь в программировании
nikoxl, в файле init.c:
измените значение TL1, например, на 0xF0
но это изменит порог только при автояркости
Добавлено after 3 minutes 47 seconds:
для изменения мерцания попробовать изменить в том же файле в функции t0set(void) значения TH0 и TL0
Код: Выделить всё
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
}но это изменит порог только при автояркости
Добавлено after 3 minutes 47 seconds:
для изменения мерцания попробовать изменить в том же файле в функции t0set(void) значения TH0 и TL0
Re: Нужна помощь в программировании
[uquote="Martian",url="/forum/viewtopic.php?p=4375442#p4375442"]nikoxl, в файле init.c:
измените значение TL1, например, на 0xF0
но это изменит порог только при автояркости
Добавлено after 3 minutes 47 seconds:
для изменения мерцания попробовать изменить в том же файле в функции t0set(void) значения TH0 и TL0[/uquote]
Это я понял, спасибо, еще бы знать какие значения сюда писать, или хотя бы как их высчитать. Путем подбора от балды ничего не получается.
То вообще индикаторы не светятся, то бегущая строка получается.
Код: Выделить всё
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
}но это изменит порог только при автояркости
Добавлено after 3 minutes 47 seconds:
для изменения мерцания попробовать изменить в том же файле в функции t0set(void) значения TH0 и TL0[/uquote]
Это я понял, спасибо, еще бы знать какие значения сюда писать, или хотя бы как их высчитать. Путем подбора от балды ничего не получается.
То вообще индикаторы не светятся, то бегущая строка получается.
Re: Нужна помощь в программировании
это счетчик таймера. изменяя его изменяете время срабатывания таймера. Я уже сегодня не помню, но яркость работает у автора кода вроде таким образом: включает общий индикатора и запускает таймер 1, как только таймер досчитает до переполнения, то есть от значения ((TH1 << 8 ) + TL1) до 0xFFFF, возникает событие, в котором индикатор гасится. Таким образом меняется длительность свечения. Срабатывает только при включенном рещжиме автояркости, это надо учесть или изменить.
В таймере 0 меняется частота переключений разрядов индикатора.
Если менять одновременно, то будет непонятно что, например, если уменьшить длительность и одновременно увеличить частоту переключений индикатора, яркость не только может не стать меньше, но и увеличится, так как яркость - это коэффициент заполнения, который здесь независим от частоты импульсов.
В общем, это надо как-то осознать поэтапно. Например, попробовать изучить изменения яркости светодиодов методом ШИМ, и полученные знания наложить на эту модель.
В таймере 0 меняется частота переключений разрядов индикатора.
Если менять одновременно, то будет непонятно что, например, если уменьшить длительность и одновременно увеличить частоту переключений индикатора, яркость не только может не стать меньше, но и увеличится, так как яркость - это коэффициент заполнения, который здесь независим от частоты импульсов.
В общем, это надо как-то осознать поэтапно. Например, попробовать изучить изменения яркости светодиодов методом ШИМ, и полученные знания наложить на эту модель.
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: Нужна помощь в программировании
[uquote="Martian",url="/forum/viewtopic.php?p=4375689#p4375689"]это счетчик таймера. изменяя его изменяете время срабатывания таймера.[/uquote]
T0 у меня "щелкает" каждые 5 мс, разряды индикатора по нему и переключаются. Для устранения мерцания можно пересчитать его на 4 мс, но надо иметь в виду, что много других функций также завязаны на переполнение Т0
Даже не многие, а все, поэтому их счётчики тоже надо будет изменить.
Пару лет назад я начал переделывать весь проект (под переполнение Т0 = 1 мс), но так и не довел дело до конца.
Не обессудьте, это был мой второй проект на С (после термометра, который можно не учитывать) и первый на 8051 вместе со знакомством с Кейлом.
T0 у меня "щелкает" каждые 5 мс, разряды индикатора по нему и переключаются. Для устранения мерцания можно пересчитать его на 4 мс, но надо иметь в виду, что много других функций также завязаны на переполнение Т0
Пару лет назад я начал переделывать весь проект (под переполнение Т0 = 1 мс), но так и не довел дело до конца.
Не обессудьте, это был мой второй проект на С (после термометра, который можно не учитывать) и первый на 8051 вместе со знакомством с Кейлом.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Re: Нужна помощь в программировании
да нормально там всё, и хорошо комментировано.Zhuk72 писал(а):Не обессудьте, это был мой второй проект на С