[ create a new paste ] login | about

Link: http://codepad.org/Q25nScL4    [ raw code | output | fork ]

Perl, pasted on Nov 29:
#!/usr/bin/perl
use strict;
use warnings;

# тактовая частота
my $Fcpu = 20e6;

# сопротивление и ёмкость
my $RC = 22e3 * 10e-9;

# опорное напряжение
my $Vref = 1.23;

# минимальное время в тактах
my $CntMin = 1024;

# максимальное время в тактах
my $CntMax = 3072;

# размер таблицы
my $TableSize = 64;

print "{";
for my $i (0 .. $TableSize)
{
    my $cnt = $CntMin + ($CntMax - $CntMin) * $i / $TableSize;
    my $t = $cnt / $Fcpu;
    my $v = $Vref / (1 - exp(-$t / $RC));
    
    print "\n\t" if($i % 8 == 0);
    #print "/*$cnt*/ ";
    printf "%3d, ", int($v * 100);
}
print "\n};";


Output:
1
2
3
4
5
6
7
8
9
10
11
{
	592, 576, 561, 547, 533, 521, 509, 498, 
	487, 477, 467, 458, 449, 440, 432, 424, 
	417, 410, 403, 396, 390, 384, 378, 373, 
	367, 362, 357, 352, 347, 343, 338, 334, 
	330, 326, 322, 318, 315, 311, 308, 304, 
	301, 298, 295, 292, 289, 286, 284, 281, 
	278, 276, 273, 271, 269, 266, 264, 262, 
	260, 258, 256, 254, 252, 250, 248, 246, 
	244, 
};


Create a new paste based on this one


Comments: