Czy ma ktoś z Was działąjący program do odczytu/zapisu czasu i daty dla DS1307?
Próbuję go uruchomić, ale wygląda jakby był zablokowany.
No nic nie działa. Co najwyżej wyświetla się 0 : 0 : 80
Mam taki kod, ale on nie działa, tzn sekundy zmieniają się co kilkanaście minut.
- ' #########################################
- ' ###### RTC DS1307 #######################
- ' #########################################
- $regfile = "m128def.dat"
- $crystal = 16000000
- $hwstack = 128
- $swstack = 128
- $framesize = 128
- $lib "mcsbyte.lbx" ' for smaller code
- $lib "ds1307clock.lib" ' modified lib
- '################################## Konfiguracja LCD 240x320 STEROWNIK ILI9341 #######################################
- '#############################################################################################################################
- 'Designate the connection port of LCD: Cs1 = [CS] , Rst = [RESET] , A0 = [DC] , Si = [SDI] , Sclk = [SCK]
- CONFIG Graphlcd = Color , Cs1 = PortB.0 , Rst = PortB.4 , A0 = PortB.3 , Si = PortB.2 , Sclk = PortB.1
- CONST Portrait = 0 'LCD screen. (0: Landscape [X=320, Y=240], 1: Portrait [X=240, Y=320])
- CONST Rotate_180 = 1 'LCD screen 180 degree rotation. (0: connector Upper side, 1: connector Lower side)
- DIM Offset256 As Byte 'LCD address offset flag. (0:0-255 , 1:256-319)
- $LIB "glcd-ILI9341_2R8_240x320.lib" 'Biblioteka do obsługi wyświetlacza LCD ILI9341
- INITLCD ' inicjalizacja lcd
- CLS ' czyszczenie lcd
- 'SETFONT Color8x8
- SETFONT Color16x16
- ' Kolory czcionek
- Const Black = &B0000_0000
- Const Red = &B1110_0000
- Const Green = &B0001_1100
- Const Blue = &B0000_0011
- Const Magenta = &B1110_0011
- Const Yellow = &B1111_1100
- Const Cyan = &B0001_1111
- Const White = &B1111_1111
- Const Orange = &B1111_0100
- Const Brightgreen = &B0011_1110
- Const Brightblue = &B0001_1111
- Const Darkred = &B1100_0000
- Const Darkgreen = &B0001_0100
- Const Darkblue = &B0000_0010
- Const Gray = &B1011_0001
- Const Olive = &B10001000
- Const Darkgray = &B10001001
- Const Navyblue = &B01001001
- Offset256 = 0 ' 1 - mały, 0 - duży
- Boxfill(0 , 0) - (255 , 240) , Black
- Offset256 = 1
- Boxfill(0 , 0) - (65 , 239) , Black
- '#############################################################################################################################
- '#############################################################################################################################
- ' Konfiguracja I2C
- $lib "i2c_twi.lbx"
- Config Scl = PortD.0
- Config Sda = PortD.1
- I2cinit
- Config Twi = 100000
- Const Ds1307w = &HD0 ' Adres DS 1307 Write
- Const Ds1307r = &HD1 ' Adres DS 1307 Read
- Config Submode = New 'nowy tryb deklaracji procedur
- Config POrTA.0 = Input : PORTA.0 = 1 : S1 Alias PINA.0 ' S1
- Config POrTA.1 = Input : PORTA.1 = 1 : S2 Alias PINA.1 'S2
- Config POrTA.3 = Input : PORTA.3 = 1 : S3 Alias PINA.3 'S3
- Dim Sekundy As Byte
- Dim Minuty As Byte
- Dim Godziny As Byte
- Dim Weekday As Byte
- Dim Dzien As Byte
- Dim Miesiac As Byte
- Dim Rok As Byte
- Declare Sub Getdatetime
- Declare Sub Settime
- ' 1 Hz SQW Output
- I2cstart
- I2cwbyte Ds1307w
- I2cwbyte &H07
- I2cwbyte &B10010000
- I2cstop
- Do
- Offset256 = 0 'LCD address offset value. (0: 0-255)
- Call Getdatetime
- 'Lcdat 20 , 1 , Bcd(_day) ; "/" ; Bcd(_month) ; "/" ; Bcd(_year) , Gray , Black
- Lcdat 40 , 1 , Bcd(Godziny) ; ":" ; Bcd(Minuty) ; ":" ; Bcd(Sekundy) , Gray , Black
- Loop
- End
- Getdatetime:
- I2cstart ' Generate start code
- I2cwbyte Ds1307w ' send address
- I2cwbyte 0 ' start address in 1307
- I2cstart ' Generate start code
- I2cwbyte Ds1307r ' send address
- I2crbyte Sekundy , Ack
- I2crbyte Minuty , Ack ' MINUTES
- I2crbyte Godziny , Ack ' Hours
- I2crbyte Weekday , Ack ' Day of Week
- I2crbyte Dzien , Ack ' Day of Month
- I2crbyte Miesiac , Ack ' Month of Year
- I2crbyte Rok , Nack
- I2cstop
- Sekundy = Makedec(sekundy)
- Minuty = Makedec(minuty)
- Godziny = Makedec(godziny)
- Dzien = Makedec(dzien)
- Miesiac = Makedec(miesiac)
- Rok = Makedec(rok)
- Return
- ' ################################## Fonty #########################################
- $INCLUDE "color8x8.font"
- $INCLUDE "color16x16.font"