Moin.
es gibt auch eine Version die das Eeprom auf dem Modul DS3231 nutzt . Alternativ kann man auch das EEprom vom Mikrocontroller nutzen.
Das EEprom vom DS3231-Modul hat den Vorteil das man keine Fuse setzen muss, um ein löschen des EEproms zu verhindern.
Alles anzeigen
es gibt auch eine Version die das Eeprom auf dem Modul DS3231 nutzt . Alternativ kann man auch das EEprom vom Mikrocontroller nutzen.
Das EEprom vom DS3231-Modul hat den Vorteil das man keine Fuse setzen muss, um ein löschen des EEproms zu verhindern.
BASCOM-Quellcode
- On_sommer_winter:
- Gosub On Eeprom_read
- If _hour = 04 And Sw_flag <> 0 Then
- Sw_flag = 0
- Gosub On_eeprom_write
- End If
- If _day => 25 And _month = 3 And _hour = 02 And _weekday = 7 And Sw_flag = 0 Then
- Sw_flag = 1
- _hour = _hour + 1
- Gosub On_eeprom_write
- Gosub Settime
- End If
- If _day => 25 And _month = 10 And _hour = 03 And _weekday = 7 And Sw_flag = 0 Then
- _hour = _hour - 1
- Sw_flag = 1
- Gosub On_eeprom_write
- Gosub Settime
- End If
- '------------------ Eeprom write ------------------
- On_eeprom_write:
- I2cstart 'Start I2C
- I2cwbyte &HAE 'Sende Slave Adresse
- I2cwbyte &H01 'Sende Speicheradresse High
- I2cwbyte &H01 'Sende Speicheradresse LOw
- I2cwbyte Sw_flag 'Sende Wert
- I2cstop 'Stop I2C
- Waitms 10
- Return 'warte 10ms
- '------------------ Eeprom read ------------------
- On_eeprom_read:
- I2cstart 'Start I2C
- I2cwbyte &HAE 'sende Slave Adresse
- I2cwbyte &H01 'sende Speicheradresse High
- I2cwbyte &H01 'sende Speicheradresse Low
- I2cstart 'Start I2C
- I2cwbyte &HAF 'sende Slave Adresse +1 für Lesen
- I2crbyte Sw_flag , Nack 'lese Adresse vom EEprom
- I2cstop
- Waitms 10
- Return
Versuch macht klug !