Подключения модуля DS1307 к Attiny2313

Тема в разделе "Микроконтроллеры AVR", создана пользователем forfrends, 26 авг 2016.

Метки:
  1. forfrends

    forfrends Нерд

    Всем добрый день! Нужен ваш совет. Хочу написать небольшую программу и зашить ее в Attiny2313. Столкнулся с проблемой: по всем инструкциям (что нашел) модуль DS1307 по умолчанию нужно подключать к аналоговым пинам 4 и 5 (i2c). По распиновке, какую нашел, у Аттини есть 2 аналоговых входа 0 и 1. Распиновку брал здесь: https://www.element14.com/community...mage/2-50246-76876/ATtiny2313-PIN+MAPPING.PNG
    Соответственно вопрос: как мне в скетче прописать настройки подключения модуля DS1307 не к аналоговым пинам 4 и 5 а к 0 и 1?
     
  2. подключать нужно к I2C, на картинки же написано где SDA, SCL
     
  3. ZAZ-965

    ZAZ-965 Гуру

    DS1307 работает по протоколу i2c, у Attiny2313 это выводы PB5 и PB7. На чем писать намерены?
     
  4. forfrends

    forfrends Нерд

    Пишу в Ардуино IDE
     
  5. forfrends

    forfrends Нерд

    То есть просто подключить к Attiny2313 к выводам PB5 и PB7?
    Код просто начинать так?:
    Код (C++):
    #include <iarduino_RTC.h>
    iarduino_RTC time(RTC_DS1307);
    Никаких дополнительных библиотек не нужно?
    Еще вопрос: как получить отдельно часы / минуты / секунды? В примере есть такой комментарий:
    // если требуется получить время в виде цифр, то можно вызвать функцию gettime() без параметра, после чего получить время из переменных
    // seconds секунды 0-59
    // minutes минуты 0-59
    // hours часы 1-12
    // Hours часы 0-23

    Но вот как эти переменные вызывать - не понятно
     
  6. forfrends

    forfrends Нерд

    Уф.. замучился. Перепробовал разные библиотеки - все на ардуино работают, но для Attiny2313 не компилируются. Стандартная библиотека RTClib (и некоторые другие) выдает такую ошибку:

    TWBR = ((F_CPU / frequency) - 16) / 2;

    Пробовал сделать как в статье: https://forums.adafruit.com/viewtopic.php?f=45&t=83876

    заменил #include <Wire.h> на:

    #include <TinyWireM.h>
    #include <USI_TWI_Master.h>


    но это не дало результата, выскакивает та же ошибка

    Все другие библиотеки, похоже, пытаются программно задействовать SPI и там тьма ошибок во время компиляции...
     
  7. Максим B

    Максим B Гуру

    Тоже хотел сделать подобное, но я уперся в память 2313 -ее там очень мало. И код и бибилотеку arduino не засунуть в этот МК. ИМХО: писать по новой и без либы arduino
     
  8. Vad33

    Vad33 Капитан-оригинал

    Попробуйте сначала "на кошечках". Arduino UNO, Nano или что там есть в наличии.
    А уж потом, с большим опытом, можно и к Attiny2313.
     
  9. ostrov

    ostrov Гуру

    А еще есть .Attiny4313 в нейпамяти в два раза больше. )
    Правда я ее в глпза не видел еще.