Jump to content
maks2008

Часы На Pic

Recommended Posts

Здравствуйте! Я не давно начал интерисоваться pic - микрконтролерами, и решил попробовать сделать часы вот схема :

01.gif

И возникла вот такая проблема : здесь программа написана на два индикатора а я поставил один все работает, только две последние цифры перевернуты вверх дном .

Я не хочу чтобы вы мне переписали программу, а подсказали где что изменить .

Вот программа

Заранее спасибо :)

Edited by maks2008

Share this post


Link to post
Share on other sites

То что у вас приклеплено, это код (прошивка). Показывать надо исходник.

Никто не будет что-то вам писать, вот исправить или заметить косяки это да.

Так что показывайте исходник.


Пишу на Си CCS PICC для PIC, CVAVR для AVR, и иногда IAR для NEC. Особенно привык к SIM300dz.

ICQ: 288449055

Share this post


Link to post
Share on other sites

Я бы на вашем месте сделал апаратно - перерезать дороги и спаять проводами так как надо. И не мучить себя и нас.

Share this post


Link to post
Share on other sites

Как сделать ИП с ультрашироким диапазоном?

Ключевыми особенностями высоковольтных SiC MOSFET Wolfspeed являются малое сопротивление канала в открытом состоянии и минимальное значение паразитных емкостей, что позволяет максимально снизить статические и динамические потери, и, соответственно, увеличить рабочую частоту преобразователей.

Подробнее

отец не разрешает делать апаратно, токо программно через дизассм.

Edited by maks2008

Share this post


Link to post
Share on other sites

Вебинар «Практика разработки IoT-устройств с BlueNRG-LP – волшебной палочкой разработчика» (23/03/2021)

Приглашаем 23 февраля на бесплатный практический вебинар по BlueNRG-LP - новой SoC STMicroelectronics. Будут рассмотрены новые возможности создания прототипов IoT-устройств на BlueNRG-LP с использованием экосистемы и отладочных средств ST, а также практические примеры по использованию BlueNRG-GUI v.4.0.0, настройке и работе в сети BLE-MESH, пример управления умным домом с помощью BlueNRG-LP и другие.

Подробнее

Для начала надо сделать функцию динамического димической индикации. Что бы можно было отображать данные.


Пишу на Си CCS PICC для PIC, CVAVR для AVR, и иногда IAR для NEC. Особенно привык к SIM300dz.

ICQ: 288449055

Share this post


Link to post
Share on other sites

Материалы вебинара Практическое использование TrustZone в STM32L5

Материалы вебинара, посвященного экосистеме безопасности и возможностях, которые дает новая технология TrustZone в МК STM32L5, содержат две подробные практические работы: создание простого приложения с изоляцией в TrustZone, и пример отладки и тестирования TFM-SBSFU. Программа рассчитана на технических специалистов и тех, кто уже знаком с основами защиты ПО в STM32.

Подробнее

:) Странно... Тогда он хочет что-бы вы этому научился :) В этом случае будет не спрортивно подсказывать :) В этом случае это ваш бой и вам его выигрывать... Боюсь что не будет это так просто... Возможно будет быстрее написать снова с нужным розположением... Ну или если всёже - рекомендую найти кусок кода который выводит данные на дисплей и вместо него поставить джамп на свободное место в памяти и написать свой кусочек...

Share this post


Link to post
Share on other sites

Если человек хочет научиться - то надо подсказывать ему, но не писать код. А просто направлять.


Пишу на Си CCS PICC для PIC, CVAVR для AVR, и иногда IAR для NEC. Особенно привык к SIM300dz.

ICQ: 288449055

Share this post


Link to post
Share on other sites

Блин, кто бы меня направил :) Сколько я уже с этой индикацией мучаюсь! Алгоритм часов я составил, да там ничего сложного-то нет, но вот как заставить циферки бегать, я ума не приложу (точнее, как заставить МК гонять эти циферки). Господа модераторы, может направите толпу новичков на путь истинный, хотя бы скажите, где копать :) Давно хочу собрать часы, схем куча, но ведь гораздо интересней придумать самому, разобраться как работает.

Edited by Данила

Экономьте электричество, выключайте Num Lock!

Share this post


Link to post
Share on other sites

тут программа есть такая - PIC Simulator IDE, в ней есть дизассм. Не знаю правильно ли она это делает, вот то,что получилось clock.rar

Share this post


Link to post
Share on other sites

Надо разабратся что такое динмическая нидикация. Динмическая - значит подвижная. Это в свою очередь означает, что в еденицу времени горит только 1 сегмент. То что мы видим картинку, в виде нескольких символов, это илюзия. Вызвано это инертностью нашего зрения. Сейчас вам необходимо продумать как заставить гореть именно те пины которужны, в определеной последовательности. Возьмите ваш семисегмегметный индиватор, посмотрите на него. Возьмите батарейку, резистор и помучайте. Зажгите последовательно элементы цифр от 0 до 9. Запишите это дело на бумагу. Далее создайте таблицу, а затем функцию вывода данных.


Пишу на Си CCS PICC для PIC, CVAVR для AVR, и иногда IAR для NEC. Особенно привык к SIM300dz.

ICQ: 288449055

Share this post


Link to post
Share on other sites

Это-то мы знаем, нам бы с программой помочь... Lexi, как это вообще делается, что бы цифры менялись каждую секунду, в зависимости от алгоритма программы? Хотя бы в двух словах :rolleyes:

Для тех кто не знает, что такое динамическая индикация:

post-50124-1217835543_thumb.png

Edited by Данила

Экономьте электричество, выключайте Num Lock!

Share this post


Link to post
Share on other sites

Саму индикацию осилили??

если да то все остальное давольно тупо...

у вас есть часы и минуты, так?

если да то далее, у вас есть таймеры и генератор тактовых импульсов (для пика) на кварце.

вот если так настроить таймер2 setup_timer_2(T2_DIV_BY_16,255,1);

то прерывание будет прерыване будет присходить каждые 4мс.

Вот отсюда надо плясать далее, продумать как на сонове этого сделать изменение всех ваших переменных, касающиеся именно времени, по прерыванию. А вывод (индикацию) в бесконечном цикле.

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


Пишу на Си CCS PICC для PIC, CVAVR для AVR, и иногда IAR для NEC. Особенно привык к SIM300dz.

ICQ: 288449055

Share this post


Link to post
Share on other sites

ОК, спасибо, буду дальше разбираться.


Экономьте электричество, выключайте Num Lock!

Share this post


Link to post
Share on other sites

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

Значит как огрганизовать вывод? составляешь таблицу какие пины контроллера нужно устанавливать для отображения ан индикаторе каждой цифры, с запасом(авось пригодится для спец-символов типа тире) записываешь это в табличном виде и небольшую процедурку по "переворачиванию" этих данных, чтобы привести их в соответствие с перевернутыми индикаторами или делать такую же таблицу только для перевернутых если простым переворачиванием не обойтись.

Далее. настраиваешь таймер на генерацию прерывания каждые скажем 10мс, иил 1мс - это не очень важно, важно лишь что с этого можно было бы получить цифру ровно в 1с умножением на целое число.

так же тебе надо организовать из отсчетов таймера примерно 20мс - это получается обычным счетчиком который прибавляет 1 каждое срабатывание прерывания и достигнув некого значения сбрасывается и вызывает процедуру обновления индикатора в которой...

прибавляем номер текущего знакоместа (0-3 если оно больше 3 - сбрасываем в ноль) выбираем с памяти значение отображаемых данных (4 байта, в которых хранятся состояния сегментов индикаторов) соотв. знакоместу - устанавливаем это сочетание на выходе порта - сегмент горит. До этого нужно выключить все сегменты и переключить знакоместо на нужное, если не выключить - будет наблюдаться эффект тени на следующем знакоместе от предыдущего.

теперь, что мы делаем в процедуре подсчета времени которая вызывается 1 раз в сек... динамической индикацией мы не утруждаемся - она работает сама по себе отображая 4 байта с памяти, нам надо лишь их обновлять после подсчета очередной секунды...

ну, как считать время и переводить его в 7-сегм. код говорить не буду - это чересчур тривиальная задача. скажу лишь что для минут, которые перевернуты дополнительно перед занесением в ячейку памяти нужно перевернуть 7-сегм. код или взять его с другой таблицы.

Одновременно с процедурой динамической индикации можно обрабатывать и нажатия кнопок, если ты будешь считывать их состояние лишь раз в начале очередного такта динамической индикации это избавит тебя от дребезга контактов. ну а если хочешь чтобы совсем просто - считывай их когда будет происходить приращение секунд, тогда тебе достаточно проверить какая кнопка нажата и просто прибавлять минуты или часы - это будет происходить лишь раз в секунду пока нажата кнопка.


Учение - изучение правил. Опыт - изучение исключений.

Share this post


Link to post
Share on other sites

в коде прошивки автор прописал адрес своего сайта,на нем можно посмотреть еще парочку проэктов.

Загрузил прошивку для эмуляции и наглядного просмотра, стало видно, что таблица символов часов расположена с адреса 046H по 04FH, таблица символов минут расположена с адреса 03СН по 045Н. По адресу 026Н происходит загрузка порта А, как раз тут и переключается динимическая индикация, по адресу 027H хранится символ загружаемый в порт В. Нужно разобратьсяс включением запятой, да и еще с кучей всего.

post-59513-1217916180_thumb.jpg

Edited by maks2008

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Николаев А.П. Малкина М.В. 500 схем для радиолюбителей.
    • Испокон веков в универах были умные и не очень. Умные обычно только  читают. Их Вы не замечаете.  А не очень еще и спрашивают.  И как говорил наш покойный преподаватель : плох тот студент,  что стесняется спросить даже самую глупость.  У меня был в группе единственный реально программист ''от Бога''. Так он об аналоговых сигналах знал только то что такое есть на свете и иногда  заходит на АЦП.  Все остальное обрабатывается внутри камня.  Схему прочитать мог, но объяснить зачем резистор последовательно с светодиодом не мог.   Вот вам и дискриминация по уму.  Так что не надо равнять людей по себе. 
    • Скажите пожалуйста,резисторы какого сопротивления оптимально поставить в исток irfp260 транзисторов для активной нагрузки?  Я так понимаю чем номинал больше тем меньше нагрев транзисторов ,больше ни на что они же не влияют? (плавность регулировки например)
    • как может показаться простым таракан с 36 ногами? А еще страшнее увидить даташит на него. Аще жесть  
    • Пожалуй, это единственное устройство, удовлетворяющее всем требованиям, - и бюджетное, и автономное, и точное. Учитывая медленность процесса заиливания, проверка раз в год вручную не сравнится по стоимости и точности ни с чем другим.
    • Нет, ну если купить динамики от утопий... то конечно , хоть 113 порядком... Им с погреба видней. Там ведь динамики подбираются заранее, все параметры известны, частота раздела тоже, и т.д.  Сопрягаются на раз-два.  Там 6й порядок скорее для подавления гармоник (не искажений а комбинационных частот), чем для стыковки динамиков.  А тут - сопряжение случайных динамиков с ХЗ какими параметрами, в домашних условиях.  Сравнение не равноправное.  Причём если мы переделываем уже готовые колонки, то порядки у всех фильтров должны быть одинаковые.  Гонял я на ГКЧ переходную характеристику 4й - 4й порядок  два дина с разной апертурой. у себя в лаборатории. О результатах промолчу, дабы не подливать масла в огонь. Да и кто поверит? Здесь все всё сами знают. Скажем, мне лично не понравилось. Скажу только что чем выше порядок, тем точнее должна быть настройка, иначе... Так что для дома рекомендовать не могу.  Да и  цель - не обидеть фирмы, а сделать всё как можно проще. Хобби такое. Да и некоторые фирмы наоборот делают с большим перекрытием полос. Те же колонки "2,5 полосные, 3,5 полосные " означает перекрытие в полполосы. Так что всё делается по-разному. В данном конкретном случае - ШП динамик, который резко обрезать нежелательно. В противном случае надо применять специализированный СЧ. PS. ГКЧ - генератор качающихся частот.
×
×
  • Create New...