Hi,
ich habe den besagten Chip erfolgreich laufen, aber kann mich nicht
wirklich daran erinnern, welches Bit dafür zuständig ist den Alarm zu
aktivieren (finde die entsprechende Passage auch gerade nicht im
Datenblatt).
Folgendes geschieht:
- ich stelle die Uhrzeit ein
- ich stelle die Alarmzeit ein (2-3 min in der Zukunft zur Uhr)
und ich bekomme mit:
1 | #define A2F 0b00000010
|
2 | #define STATUS_REGISTER 0x0F//OSF
|
3 |
|
4 | bool DS1307_STATUS(uint8_t bit){
|
5 | return I2C_ReadRegister(DS1307, STATUS_REGISTER) & bit;
|
6 | }
|
7 | bool DS1307_ALARM_2(){
|
8 | return DS1307_STATUS(A2F);
|
9 | }
|
einen trigger!
Ebenso kann ich diesen mit
1 | bool DS1307_STATUS(){
|
2 | I2C_WriteRegister(DS1307, STATUS_REGISTER, 0x00);
|
3 | }
|
unterbinden.
Meine Vermutung ist, dass ich beim schreiben der Alarmzeit bereits das
entsprechende Bit MIT schreibe, so, dass der Alarm danach immer gleich
scharf ist.
Sicherlich kann man aber auch die Uhrzeit "in Ruhe" eintragen und dieses
Bit im Nachgang setzen, oder?
Genau das hätte ich gerne :)
Bin ich hier schon auf der richtigen Spur?
1 | ...
|
2 | #define DAYS_DAYOFWK_A2_REGISTER 0x0D
|
3 | day |= 0b01000000 //Bit 6 setzen für Alarm???
|
4 | I2C_WriteRegister(DS1307, DAYS_DAYOFWK_A2_REGISTER , day);
|
5 | ...
|
Grüße David