Projekt

Allgemein

Profil

Feature #757

Von Maximilian Seesslen vor etwa 23 Stunden aktualisiert

<pre><code class="cpp">
constexpr unsigned int lpdiv100( unsigned int x )
{
// Valid till 102400
return( ( ( x + 1 ) * 0xA3D7 ) >> 22 );
};

static_assert( lpdiv100(2099) == 20 );
static_assert( lpdiv100(2100) == 21 );

</code></pre>

The RTC Alarm has to be checked for the next (!) alarm.

<pre>
for(int i1=0; i1<102400-1; i1++)
{
if( (i1/100) != lpdiv100(i1) )
{
printf( "Error: %d: %d\n", i1, lpdiv100(i1) );
//return( 1 );
}
}

for(ui i1=0; i1< 32; i1++)
{
ui m=(1ull << i1)/100ull;
ui r = ( 10240 * m ) >> i1;
ui d=(1ull << i1)-( m * 100ull);
ui pm=(d*1000000)/m;
if( r == 102 )
{
printf("m=0x%X; s=%d; r=%d; fehler=%dpm\n", m, i1, r, pm);
// "102400/100=%d\n", r);
}
}
</pre>

Zurück