Ich debugge gerade mein Projekt und muss überprüfen, ob ich meinen externen Quarz richtig einstelle. Ich habe die Möglichkeit, über USB auf einen seriellen Monitor auszudrucken. Ist es möglich, die Taktgeschwindigkeit abzurufen und ob die CPU von der internen Uhr oder einem externen Kristall läuft oder nicht, damit ich das ausdrucken kann?
Sie können die aktuelle CPU-Taktgeschwindigkeit messen, indem Sie die interne Echtzeituhr verwenden, die vom lokalen 32,76-kHz-Oszillator angetrieben wird. Ich habe im Moment kein XMEGA zur Hand, daher kann ich kein genaues Verfahren angeben, aber die allgemeine Idee besteht darin, die RTC so einzurichten, dass sie eine feste Zeitdauer (z. B. 1 ms) misst und dann misst, wie viele Takte währenddessen auftreten diesen Zeitraum mit einem der 16-Bit-Zähler/Timer. Wenn Sie beispielsweise 8.044 Ticks während eines einzelnen 1-ms-RTC-Zyklus zählen, beträgt Ihre CPU-Taktrate 8044/1 ms = ~8 MHz .
Sie können überprüfen, ob Ihnen ein interner oder externer Takt ausgeht, indem Sie sich die Bits für die Auswahl des Systemtakts (SCLKSEL) im Taktsteuerregister (CTRL) ansehen.
Dies erfordert keinen Umfang. Benötigt einen I/O-Pin.
Schreiben Sie basierend auf Ihrer Meinung nach die Quarzfrequenz eine Routine, die Ihrer Meinung nach jede Sekunde einen I/O-Pin umschalten sollte (500 ms an, 500 ms aus), schließen Sie dann eine LED an den Pin an und zählen Sie die Anzahl der Impulse in a Minute. Je nachdem, ob die Zahl 60 oder etwas anderes kommt, können Sie dann einen Hinweis darauf bekommen, was los ist.
Ich habe dies die ganze Zeit getan, um meine Uhreinstellungen zu überprüfen.
m.Alin
bwoogie