2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
RH850 Die RTC (Echtzeituhr) der MCU verwendet das BCD-Codierungsformat (binär codierte Dezimalzahl), unterstützt die automatische Identifizierung von Schaltjahren und verfügt über Übertragsfunktionen für Sekunden, Minuten, Stunden, Tage, Wochen, Monate und Jahre. Darunter ist die Sekunde in 60 Überträge unterteilt, die Stunde wird mit 12 oder 24 übertragen, die Woche wird mit 7 übertragen, der Tag wird mit 28, 29, 30, 31 entsprechend dem Monat übertragen, der Monat wird mit 12 übertragen und das Jahr ist 00~99.
Seit Kurzem nutzen wir RenesasMCU Beim RTC des RH850 ist ein Timing-Carry-Ausnahmeproblem aufgetreten. Beim Drucken der Zeitvariablen über UART wurde festgestellt, dass der Übertrag von Sekunden und Minuten nicht dem erwarteten Übertrag von 60 entsprach, sondern fälschlicherweise als Übertrag von 90 angezeigt wurde. Dieses Phänomen erregte unsere Aufmerksamkeit.
Verwenden Sie jedoch einen Emulator zur direkten ÜberwachungEchtzeituhrBei der Betrachtung der internen SEC-, MIN- und anderen Register wurde festgestellt, dass sie nach Erreichen von 0x59 normal übertragen wurden, was zeigt, dass es kein Problem mit der Timing-Funktion der RTC selbst gibt.
Nach sorgfältiger Beobachtung haben wir eine wichtige Regel entdeckt: Wenn die Sekunden 09 überschreiten, springt der angezeigte Wert direkt auf 16 und erhöht sich dann weiter. Dieses Phänomen weist darauf hin, dass das Problem möglicherweise in der Konvertierung des Datenformats liegt. Da RTC intern das BCD-Codierungsformat verwendet, verarbeiten wir es als Dezimaldaten, wenn wir es über UART an den Debugging-Assistenten für die serielle Schnittstelle ausgeben, was zu Anzeigeabweichungen führt.
Als Reaktion auf dieses Problem haben wir das UART-Ausgabeverarbeitungsformat entsprechend geändert. Nach der Anpassung normalisierte sich die im Debugging-Assistenten für die serielle Schnittstelle angezeigte Zeit endlich wieder, was bestätigte, dass unsere Analyse korrekt war.
Zusammenfassend lässt sich sagen, dass das interne RTC-Register der RH850-MCU ein einzigartiges BCD-Codierungsformat verwendet, was erfordert, dass wir bei der Verarbeitung verwandter Daten besondere Aufmerksamkeit auf die Formatkonvertierung legen. Andernfalls kann es leicht zu ähnlichen Missverständnissen und Problemen kommen.