Forum: Mikrocontroller und Digitale Elektronik RTC DS1307 Alarm einzelnd aktivieren


von D a v i d K. (oekel) Benutzerseite


Lesenswert?

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

von Philipp K. (philipp_k59)


Lesenswert?

Der DS1307 hat keinen alarm.. Bit6 müsste 12/24H für das Stundenregister 
sein.

von Hopsink (Gast)


Lesenswert?

So ist das: ( die Suche hat 30 Sekunden incl. durchlesen gedauert)


Key Features
Completely Manages All Timekeeping Functions
Real-Time Clock Counts Seconds, Minutes, Hours, Date of the Month, 
Month, Day of the Week, and Year with Leap-Year Compensation Valid Up to 
2100
56-Byte, Battery-Backed, General-Purpose RAM with Unlimited Writes
Programmable Square-Wave Output Signal
Simple Serial Port Interfaces to Most Microcontrollers
I2C Serial Interface
Low Power Operation Extends Battery Backup Run Time
Consumes Less than 500nA in Battery-Backup Mode with Oscillator Running
Automatic Power-Fail Detect and Switch Circuitry
8-Pin DIP and 8-Pin SO Minimizes Required Space
Optional Industrial Temperature Range: -40°C to +85°C Supports Operation 
in a Wide Range of Applications
Underwriters Laboratories® (UL) Recognized

von Otto Mans (Gast)


Lesenswert?

Verwechselt Du den D1307 mit dem DS3231? Der hat 3 Alarme...

von Blub (Gast)


Lesenswert?

Der DS1337 hat 2 Alarme.

von D a v i d K. (oekel) Benutzerseite


Angehängte Dateien:

Lesenswert?

Blub schrieb:
> Der DS1337 hat 2 Alarme.

Es ist tatsächlich der DS1337.

Datenblatt: "To clear Alarm2, the A2F status bit must be set to “0” with 
a
write." + Bilder

Heißt doch, dass ich jedes mal, wenn ich den Alarm "nur" 
aktivieren/deaktivieren möchte zuerst die eingestellte Zeit lesen muss 
und dann mit dem entsprechenden Bit zurückschreiben kann.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.