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

Pcf8583 Не Срабатывает Будильник


ruslan55x55

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

Пытаюсь сделать будильник для микроконтроллера на основе часов реального времени PCF8583, программирую на PIC. Собрал тестовую плату с PIC-ом и дисплеем LCD Nokia3310, написал код, где считываю часы, минуты, секунды и вывожу на дисплей каждые 250мс, все нормально работает, часы идут.

Теперь захотел протестировать будильник, дописал код, чтобы будильник срабатывал через каждые 2 минуты. В момент включения время у часов сбрасывается на 00:00:00 и начинается собственно ход, я считываю минуты прибавляю к ним 2, и обратно записываю в регистры будильника, то есть будильник должен сработать в 00:02:00. При срабатывании должен загораться светодиод, и опять все повторяется, теперь будильник должен сработать при 00:04:00 и т.д. Но будильник почему то не срабатывает. Подскажите в чем дело....

Итак вот что я делаю после подачи питания:

1. записываю '00000100' в регистр управления/состояния по адресу 0x00, тем самым включаю бит разрешения сигнала.

2. Записываю '10010000' в регистр управления сигналом по адресу 0x08, тем самым разрешаю прерывание по сигналу, а также устанавливаю ежедневный сигнал.

3. Записываю нули в регистры будильника по адресам 0х0А, 0х0В, 0х0С, которые соответствуют секундам, минутам, часам.

4. Считываю текущее значение минут по адресу 0x03, прибавляю к этому значению число 2.

5. Получившиеся число записываю в регистр будильника(минуты) по адресу 0х0В.

6. Жду пока сработает будильник, (он должен сработать в 00:02:00), параллельно этому считываю время - часы, минуты, секунды, а также на всякий случай считываю содержимое регистра управления/состояния, регистра сигналов, и 3 регистра будильника (часы, минуты, секунды), и вывожу все это на дисплей.

И так наблюдаю, все записалось правильно, во всех регистрах то что мне нужно, жду жду и вот наступает время 00:02:00, но ничего не происходит, светодиод не включается, в регистре управления/состояния флаги не поднимаются, в общем будильник не срабатывает....

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Я разобрался, надо было еще обнулять регистр будильника отвечающий за миллисекунды по адресу 0x09, а я обнулял только секунды, минуты, часы. Скорее всего в этом регистре лежал какой то мусор, который никогда не совпадал с реальными значениями миллисекунд регистра часов, поэтому и не срабатывал будильник.

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

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

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

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

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

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

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

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

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

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

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