The DS3231 RTC has a very precise 32.768KHz output usually on pin 1 (ymmv). By taking this known frequency and measuring it using the COUNT function in MMBasic, the internal clock frequency (which determines the gate period for the count) can be adjusted until the measured frequency is as near as possible to the know frequency from the RTC.
The clever code below measures the frequency and automatically calculates the CLOCKTRIM argument.
Originally posted here:
http://www.thebackshed.com/forum/forum_posts.asp?TID=7972Credit: twofingers
' Clocktrim level for Micromite2/MMBasic
' determines the value for Option ClockTrim n
' using the DS3231 32768hz signal (32kHz TCXO).
' Released by twofingers@TBS 18.09.2015
' Provided AS IS. No warranty.
'
' You need only to connect a wire from
' DS3231/32kHz Pin 1 to a MM2 (COUNT) pin (e.g. 16)
Option EXPLICIT
Dim integer freq,ctrim
SetPin 16,fin
Pause 2000
freq=Pin(16)
ctrim=Cint(freq-32768)/15
'Print freq, ctrim
If Abs(ctrim) < 10 Then
Option ClockTrim ctrim
Print "ClockTrim is set to "ctrim
Else
Print "Error! Please check 32khz signal. Freq="freq
EndIf