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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Snack
Родился
Сообщения: 8
Зарегистрирован: Чт апр 19, 2012 21:18:34

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

Сообщение Snack »

Как бы немного имел дело с софтом на низком уровне. Но если выложите исходники может кто-то поможет и кому-то это пригодится
Аватара пользователя
MLX90640
Опытный кот
Сообщения: 848
Зарегистрирован: Ср авг 03, 2022 05:22:56

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

Сообщение MLX90640 »

Таких проектов часов - сотни, если не больше. Во времена PIC/AVR были очень популярны, делали все, практически каждый.
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

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

Сообщение OKF »

Естественно. Никаких проблем. Другое дело, как всё оформлено. Или куча - кучей, тяп-ляп, или же по уму.)
alex0732
Родился
Сообщения: 9
Зарегистрирован: Пн июн 13, 2022 18:51:59

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

Сообщение alex0732 »

Держите.
Вложения
stc15clock1v1.zip
(23.11 КБ) 279 скачиваний
Snack
Родился
Сообщения: 8
Зарегистрирован: Чт апр 19, 2012 21:18:34

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

Сообщение Snack »

Спасибо!
На сайте STC много софта выложено. Какие инструменты посоветуете, которые наиболее практичны в данном случае?
alex0732
Родился
Сообщения: 9
Зарегистрирован: Пн июн 13, 2022 18:51:59

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

Сообщение alex0732 »

Keil какой нибудь старой версии. Ссылка тут где то была кажется. С лекарством.
Snack
Родился
Сообщения: 8
Зарегистрирован: Чт апр 19, 2012 21:18:34

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

Сообщение Snack »

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

И еще
Будет ли достаточно просто переназначить I/O порты в библиотеке STC15F204EA.h?
alex0732
Родился
Сообщения: 9
Зарегистрирован: Пн июн 13, 2022 18:51:59

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

Сообщение alex0732 »

Импортировать не обязательно. Я просто указывал i8052.
Насчет переназначить - идея интересная.
Я так не пробовал, может сработать, хотя могут и баги вылезти.
Там используются маски при работе с индикацией, м.б. что еще - уже не очень помню.
Я бы лучше сделал условную компиляцию (у меня так сделано для 204 и 404 чипов),
это будет более корректно, хотя и несколько более трудоемко.
И внимательно посмотреть, как работаем с выводами, в плане битовых масок и т.п.
Аватара пользователя
Saqqarah
Родился
Сообщения: 1
Зарегистрирован: Пн сен 18, 2017 19:20:34

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

Сообщение Saqqarah »

alex0732, в выложенном файле, прошивка для часов!
Подскажите какую частоту выставлять при прошивке.
Если можно - выложите скриншот с настройками прошивальщика.
Заранее благодарен.
alex0732
Родился
Сообщения: 9
Зарегистрирован: Пн июн 13, 2022 18:51:59

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

Сообщение alex0732 »

Добрый день.

Тут вот по-моему все подробно описано: https://www.radiokot.ru/cherdak/78/
И скриншоты есть. Ну и в этой теме тоже.
Если что непонятно будет - пишите.
alex0732
Родился
Сообщения: 9
Зарегистрирован: Пн июн 13, 2022 18:51:59

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

Сообщение alex0732 »

Как дела? Заработала прошивка? или проблемы?
Если да - можно подробно в личку и исходники. Попробую помочь возможно.
Хотя при отсутствии "тела" это сложно.
vovic67
Родился
Сообщения: 1
Зарегистрирован: Вс мар 13, 2022 15:43:46

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

Сообщение vovic67 »

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

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

Сообщение nikoxl »

Люди добрые помогите, контроллер 28 ног, прошивка работает, но яркое мерцание индикаторов убивает и нижний порог яркости очень яркий, подкорректируйте пожалуйста или скажите что и где исправить, только учтите что я в этом балбес.
Вложения
STC_clock_28pin.rar
(805.87 КБ) 210 скачиваний
M - 16.
Родился
Сообщения: 16
Зарегистрирован: Сб ноя 17, 2012 13:49:10
Откуда: Сибирь

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

Сообщение M - 16. »

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

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

Сообщение nikoxl »

На всех этих прошивках отсутствует нормальное затемнение, а это одно из важных условий. Ночью очень ярко.
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

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

Сообщение Martian »

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
nikoxl
Родился
Сообщения: 3
Зарегистрирован: Вс янв 29, 2023 12:34:13

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

Сообщение nikoxl »

[uquote="Martian",url="/forum/viewtopic.php?p=4375442#p4375442"]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[/uquote]
Это я понял, спасибо, еще бы знать какие значения сюда писать, или хотя бы как их высчитать. Путем подбора от балды ничего не получается.
То вообще индикаторы не светятся, то бегущая строка получается.
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

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

Сообщение Martian »

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

Если менять одновременно, то будет непонятно что, например, если уменьшить длительность и одновременно увеличить частоту переключений индикатора, яркость не только может не стать меньше, но и увеличится, так как яркость - это коэффициент заполнения, который здесь независим от частоты импульсов.
В общем, это надо как-то осознать поэтапно. Например, попробовать изучить изменения яркости светодиодов методом ШИМ, и полученные знания наложить на эту модель.
Аватара пользователя
Zhuk72
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку
Контактная информация:

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

Сообщение Zhuk72 »

[uquote="Martian",url="/forum/viewtopic.php?p=4375689#p4375689"]это счетчик таймера. изменяя его изменяете время срабатывания таймера.[/uquote]
T0 у меня "щелкает" каждые 5 мс, разряды индикатора по нему и переключаются. Для устранения мерцания можно пересчитать его на 4 мс, но надо иметь в виду, что много других функций также завязаны на переполнение Т0 :( Даже не многие, а все, поэтому их счётчики тоже надо будет изменить.
Пару лет назад я начал переделывать весь проект (под переполнение Т0 = 1 мс), но так и не довел дело до конца.
Не обессудьте, это был мой второй проект на С (после термометра, который можно не учитывать) и первый на 8051 вместе со знакомством с Кейлом.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

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

Сообщение Martian »

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

Вернуться в «Разные вопросы по МК»