Welcome Guest, you are in: Login

Fruit Of The Shed

Navigation (MMBasic)






Search the wiki

»


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=7972

Credit: twofingers

Image


' 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