NXP LPC1768 CMSIS RTC-Alarm deaktivieren

Gast #3676231
Lesenswert?
• ▲
▼
Hallo,

mit folgendem Code-Schnipsel kann ich per CMSIS einen RTC-Alarm setzen:
1
void main(void) {
2

3
RTC_SetTime(LPC_RTC, RTC_TIMETYPE_SECOND, 0);
4
RTC_SetAlarmTime (LPC_RTC, RTC_TIMETYPE_SECOND, 10);
5

6
}

Blöderweise bekomme ich den Alarm in der ISR dann nicht mehr deaktiviert 
und die ISR wird alle 60 Sekunden erneut ausgelöst:
1
void RTC_IRQHandler(void) {
2

3
  if (RTC_GetIntPending(LPC_RTC, RTC_INT_ALARM))
4
  {
5
    debugMessage("ALARM!");
6
    RTC_ClearIntPending(LPC_RTC, RTC_INT_ALARM);
7
  }
8
}

Weiß jmd. Rat?
Gast #3676338
Lesenswert?
• ▲
▼
Gemäß der Doku sollte es dann ausreichen wenn das AMR auf 255 gesetzt 
wird, aber das Problem besteht weiterhin
1
void RTC_IRQHandler(void) {
2

3
  if (RTC_GetIntPending(LPC_RTC, RTC_INT_ALARM))
4
  {
5
    debugMessage("ALARM!");
6
    LPC_RTC->AMR = 255;
7
  }
8
}
#3676370
Lesenswert?
• ▲
▼
Versuche es doch mal mit der Funktion
1
void RTC_CntIncrIntConfig (LPC_RTC_TypeDef *RTCx, uint32_t CntIncrIntType, FunctionalState NewState)
wobei NeState=DISABLE sein sollte.

DISABLE: Counter Increment interrupt for this time type are disabled

Wahlweise kann auch die zugehörige Clock abgeschaltet werden mit
1
void RTC_DeInit(LPC_RTC_TypeDef *RTCx)
#3683371
Lesenswert?
• ▲
▼
Hallo Karsten,

ich habe keine Erfahrung mit RTC und CMSIS auf ARM Cortex M3, dass aber 
in der umfangreichen Library die Funktionen zum Setzen und Aktivieren 
der Alarm Clock enthalten sein sollen und keine der Funktionen wieder
abschalten kann, ist doch etwas befremdlich. Hat CMSIS schlechte Arbeit 
geleistet oder ist die Doku nicht eindeutig?

http://mbed.org/users/yoonghm/code/CMSIS/docs/tip/group__RTC__Public__Functions.html

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.