Страница 1 из 1

Помогите написать библиотеку

Добавлено: Сб ноя 20, 2010 21:20:15
Igor_67
Всем доброго времени суток!
Нужна помощь в написании библиотеки для микросхемы часов PCF8583 от PHILIPS применительно к компилятору BasComAVR.Сам я не мастак библиотеки писать, поэтому прошу помощи у народа. :oops:.
Работает микра по шине I2C, адрес для записи A0 или А2, адрес для чтения A1или А3. Вобщем лучше, конечно по даташиту, который прилагается.

Re: Помогите написать библиотеку

Добавлено: Сб ноя 20, 2010 23:59:40
Fasterpast
Можете взять библиотеку скажем из CVAVR и переделать её под BasCom. Всё ж лучше, чем с нуля писать...

Re: Помогите написать библиотеку

Добавлено: Вс ноя 21, 2010 00:07:14
Мурик
А зачем изобретать колесо?
В гугле вводим запрос Bascom PCF8583 и получаем много ссылок по теме.
К примеру
http://www.mcselec.com/index.php?option ... &Itemid=57
http://en.edaboard.com/topic-4448684.0.html
http://www.elektroda.pl/rtvforum/topic1054287.html
http://en.edaboard.com/topic-3314456.0.html

Re: Помогите написать библиотеку

Добавлено: Пн ноя 22, 2010 19:22:09
Aheir
Мурик писал(а):В гугле вводим запрос Bascom PCF8583 и получаем много ссылок по теме.
Вы что, это же сложно!

Re: Помогите написать библиотеку

Добавлено: Чт ноя 25, 2010 15:44:32
Igor_67
Многоуважаемый Aheir, вместо того, чтобы ёрничать, лучше бы помогли. Негоже изголяться над своей паствой! А то я не гуглил??? Все сцылки по заданной теме выдают всякие польско-германские форумы, на которых задается тот же вопрос - а ответа так и нет... Все что можно, я уже испробовал, только ни один код не работает как надо... Поэтому и обращаюсь к "котам", как к старым добрым друзьям. Авось и разрулят... Звиняйте за столь неэтичное высказывание...
Власть, конечно-дело тонкое, можете меня и забанить, но я в отличие от некоторых, не хамлю (хотя бы)...

Re: Помогите написать библиотеку

Добавлено: Чт ноя 25, 2010 17:54:01
Pavel_1978
To Igor_67 вы по предоставленным Вам ссылкам переходить пробовали и хотябы обращять внимание на ссылки типа "Download source code in Bas" и посмотреть что под ней???
вот по первой сылке:

Код: Выделить всё

'------------------- AN 11 -----------------------------
'          Copyright 1999 MCS Electronics
'                   CLOCK.BAS
'This AN shows how to use the PCF8583 I2C clock device
'The PCF8583 is a PHILIPS device. Look at the datasheet for more details
'I used a prototype board from dontronics with the hardware
'simulator to test the program
'------------------------------------------------------
'declare used subs
Declare Sub Settime(s As Byte , M As Byte , H As Byte , D As Byte , Month As Byte)
Declare Sub Gettime


'declare vairables
Dim S As Byte , M As Byte , H As Byte , D As Byte , Month As Byte
Dim Wm As Byte , Yd As Byte

Call Settime(0 , 0 , 0 , 29 , 11)       'set time

Do
   Call Gettime                         'get time
Loop
End



Sub Gettime
    Dim Dum As Byte
    I2cstart                            'generate start
    I2cwbyte &HA0                       'write addres of PCF8583
    I2cwbyte 2                          'select second register
    I2cstart                            'generate repeated start
    I2cwbyte &HA1                       'write address for reading info
    I2crbyte S , Ack                    'read seconds
    I2crbyte M , Ack                    'read minuts
    I2crbyte H , Ack                    'read hours
    I2crbyte Yd , Ack                   'read year and days
    I2crbyte Wm , Nack                  'read weekday and month
    I2cstop                             'generate stop

    Print "Time " ; Print Bcd(h) ; ":" ; Bcd(m) ; ":" ; Bcd(s)
    Print "Day : " ; Bcd(yd) ; " Month : " ; Bcd(wm)
    Rem You Could Also Use The Lcd Statement For Displaying The
    Rem Time On The Lcd Display
End Sub


Sub Settime(s As Byte , M As Byte , H As Byte , D As Byte , Month As Byte)
    'values are stored as BCD values so convert the values first
    S = Makebcd(s)                      'seconds
    M = Makebcd(m)                      'minuts
    H = Makebcd(h)                      'hours
    D = Makebcd(d)                      'days
    Month = Makebcd(month)              'months

    I2cstart                            'generate start
    I2cwbyte &HA0                       'write address
    I2cwbyte 0                          'select control register
    I2cwbyte 8                          'set year and day bit for masking
    I2cstop                             'generate stop


    I2cstart                            'generate start
    I2cwbyte &HA0                       'write mode
    I2cwbyte 2                          'select seconds Register
    I2cwbyte S                          'write seconds
    I2cwbyte M                          'write minuts
    I2cwbyte H                          'write hours
    I2cwbyte D                          'write days
    I2cwbyte Month                      'write months
    I2cstop
End Sub
по моему это именно то что вы ищите...

Re: Помогите написать библиотеку

Добавлено: Вс ноя 28, 2010 13:54:04
Igor_67
Всем большое спасибо, уже разобрался. Помог пример из Samles/I2c/clock.bas. Кстати в предыдущем посте - тоже он. Тему можно закрыть.