Перейти к содержанию

Часы На Pic


maks2008

Рекомендуемые сообщения

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

01.gif

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

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

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

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

Изменено пользователем maks2008
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

ICQ: 288449055

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

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

ICQ: 288449055

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

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

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

ICQ: 288449055

Ссылка на комментарий
Поделиться на другие сайты

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

Изменено пользователем Данила

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

ICQ: 288449055

Ссылка на комментарий
Поделиться на другие сайты

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

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

post-50124-1217835543_thumb.png

Изменено пользователем Данила

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

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

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

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

ICQ: 288449055

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

post-59513-1217916180_thumb.jpg

Изменено пользователем maks2008
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...