/Designs/Measuring_instruments/AWS01B/SW/PIC16F887/main.c
11,7 → 11,7
#include "MPL3115.h"
#include "HMC5883L.h"
 
unsigned int16 timer0_overflow_count;
/*unsigned int16 timer0_overflow_count;
float anemo=0;
 
#int_TIMER1
31,76 → 31,45
void TIMER0_isr(void)
{
timer0_overflow_count++;
}*/
 
float wind_speed(void)
{
signed int16 Y,Z;
float b;
Y = mag_readY();
Z = mag_readZ();
 
b = atan2((float)Y,(float)Z); // vypocet azimutu z kartezskych souradnic
b = (b/3.141596)*180; // prevod na stupne
b += 180;
return b;
}
 
 
float azimut (void) //vypocet azimutu smeru vetru
 
float wind_direction(void) //vypocet azimutu smeru vetru
{
signed int16 X,Y,Z;
X= mag_readX();
Y= mag_readY();
Z= mag_readZ();
float b;
X = mag_readX();
Y = mag_readY();
 
float a, b;
a=(float)Y/X;
b=atan(a);
b = (b/3.14)*180;
b=abs(b);
 
if(X==0) //osetreni proti deleni 0
{
if(Y>0)
{
b=90;
}
else
{
b=270;
}
}
else
{
if(X>0)
{
if(Y>=0)
{
b=180+b;
}
else
{
b=180-b;
}
}
else
{
if(Y>=0)
{
b=360-b;
}
else
{
b=b;
}
}
}
 
return b;
b = atan2((float)Y,(float)X); // vypocet azimutu z kartezskych souradnic
b = (b/3.141596)*180; // prevod na stupne
b += 180;
return b;
}
 
 
void uvitani(void) // uvodni zprava
void welcome(void) // uvodni zprava
{
printf("\r\n\r\n# Meteorologicka stanice %s (C) 2013 www.mlab.cz \r\n",VERSION);
printf("\r\n %s \r\n",ID);// Welcome message
printf("# ver poradi ");
printf("altimet_t[°C] altimet_a[m] altimet_p[Pa] ");
printf("sht_t[°C] sht_h[%%] Anemo[m/s]check\r\n\r\n");
printf("altimet_t[C] altimet_a[m] altimet_p[Pa] ");
printf("sht_t[C] sht_h[%%] Anemo[m/s]check\r\n\r\n");
}
 
void main()
121,6 → 90,7
float sht25_t; //teplota z SHT25
float sht25_h; //relativni vlhkost z SHT25
float smer_v; //smer vetru
float anemo=0;
unsigned int8 sht_config;
 
130,25 → 100,20
SHT25_setup(sht_config);
 
//nastavení pøerušení pro anemometr
enable_interrupts(INT_TIMER1);
/*enable_interrupts(INT_TIMER1);
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
 
 
//uvitani();
set_mag(); //nastaveni magnetometru pro smer vetru
 
// vynulovani promenych pro anemometr
set_timer0(0);
set_timer1(0);
timer0_overflow_count=0;
anemo=0;
*/
 
welcome();
set_mag(); //nastaveni magnetometru pro smer vetru
 
while(TRUE)
{
char dataOUT[60];
int i=0;
 
mpl3115_setP(); //nastaveni pro tlak a teplotu
158,17 → 123,16
mpl3115_setA(); //nastaveni pro vysku a teplotu
delay_ms (500);
altimet_a=mpl3115_A();
altimet_a = mpl3115_A();
sht25_t=SHT25_get_temp(); //mereni hodnot z SHT25
sht25_h=SHT25_get_hum();
sht25_t = SHT25_get_temp(); //mereni hodnot z SHT25
sht25_h = SHT25_get_hum();
smer_v=azimut(); //vrati azimut aktualniho smeru vetru
sprintf(dataOUT, " %6.2f %7.2f %9.2f %6.2f %6.2f %5.2f %6.2f \n\r", altimet_t, altimet_a, altimet_p, sht25_t, sht25_h, smer_v, anemo);
smer_v = wind_direction(); //vrati azimut aktualniho smeru vetru
anemo = wind_speed();
 
printf(" %6.2f %7.2f %9.2f %6.2f %6.2f %5.2f %6.2f \n\r", altimet_t, altimet_a, altimet_p, sht25_t, sht25_h, smer_v, anemo);
printf(dataOUT); //zaslani hodnot na seriovou linku
 
delay_ms(1000);
}
}
/Designs/Measuring_instruments/AWS01B/SW/PIC16F887/main.h
21,9 → 21,9
#use delay(clock=8000000)
 
//set I2C
#define PIN_SDA PIN_C3
#define PIN_SCL PIN_C4
#define PIN_SDA PIN_C4
#define PIN_SCL PIN_C3
#use i2c(master, sda=PIN_SDA, scl=PIN_SCL)
//set RS232
#use rs232(baud=9600,parity=N,xmit=PIN_C7,rcv=PIN_C6,bits=8) //rcv TXD xmit RXD
#use rs232(baud=38400,parity=N,xmit=PIN_C7,rcv=PIN_C6,bits=8) //rcv TXD xmit RXD
 
/Designs/Measuring_instruments/AWS01B/SW/PIC16F887/main.hex
1,739 → 1,689
:1000000015308A003E2D0000FF00030E8301A10081
:100010000A08A0008A010408A2007708A300780853
:10002000A4007908A5007A08A600831383128C30F7
:100030008400001C1D280C1832288B1E21280B1947
:100040003528220884002308F7002408F800250832
:10005000F9002608FA0020088A00210E8300FF0E0E
:100060007F0E09008A110A1223298A110A12912986
:100070008E30F70003174508F8004408F900FA012C
:10008000F808031D4D287908F800F9010830F70237
:10009000F808031D4D28F70155280310F81B5428B4
:1000A000F90DF80DF7034D28F81303130800031793
:1000B000560803191D29E2005A0803191D29E202F6
:1000C000031C67287F30E20703181D296D28813043
:1000D000E202031C1D2903191D296208F700F8011B
:1000E000F901FA01E1015708E000E0175808DF00C4
:1000F0005908DE001930E2005D08DE02031890287E
:100100000130DF0203189028E00203189028E10272
:1001100003189028E10AE00ADF0A5D08DE07C2281A
:100120005C08DF020318AB280130E0020318AB289B
:10013000E1020318AB28E10AE00A5C08DF075D086A
:10014000DE07031CC228DF0A031DC228E00A031DC4
:10015000C228E10AC2285B088038E0020318C128DF
:100160000130E1020318C128E10A5B088038E0078A
:100170005C08DF07031C9F28E00A031D9F28E10A93
:100180009F287A14E20BC528D0280310DE0DDF0D5E
:10019000E00DE10D0310FA0DF90DF80DE30D7C28CB
:1001A000631CD8280310F80CF90CFA0CE30CDB28BC
:1001B000F70303191D29E31B04290310DE0DDF0DCE
:1001C000E00DE10D5D08DE020318F0280130DF02CA
:1001D0000318F028E0020318F028E102031C132999
:1001E0005C08DF020318FB280130E0020318FB283B
:1001F000E102031C13295B088038E002031804297C
:100200000130E102031C1329FA0A031D1329F90A1C
:10021000031D1329F80A031D1329F70A03191D29C1
:10022000F80CF90CFA0C5708E2005B08E206E21F32
:100230001B29F8172129F8132129F701F801F901E1
:10024000FA01031308002C080317B80003132B0846
:100250000317B700BA01FF30B9001030BB00F70137
:10026000FA01B80CB70C031C3B293908F70703182F
:10027000FA0A3A08FA07FA0CF70CF90CF80CBB0B5F
:1002800031297908B8007808B7000313010803176B
:10029000B7070318B80A3808C5003708C4000313A5
:1002A00038207A080317D9007908D8007808D700D1
:1002B0007708D6008030DD00DC01DB017E30DA001B
:1002C000031357207A08B0007908AF007808AE0011
:1002D0007708AD0030080317D90003132F08031760
:1002E000D80003132E080317D70003132D08031794
:1002F000D600DD01DC01DB018030DA00031357207A
:100300007A08B0007908AF007808AE007708AD0031
:10031000AC01AB0181018F018E010C108A110A1210
:100320002128AB0A0319AC0A0B118A110A122128E1
:100330000D050D052310CD32F4326F396F36EF33D2
:10034000E931EB30A039F430EE34E332A01273100F
:10035000A82129103218B119A03BF73BAE36EC307A
:100360006217633DA0060A0030173100A424641D03
:10037000A036E1346E176310B21C311B2019B0187F
:10038000B316301AAD183410B11B3A1A321DB01919
:100390005A10EB306B36E935201200012310F6328B
:1003A0007210F037F230E434200061346C3474346D
:1003B00069346D34653474345F3474345B34B03410
:1003C00043345D34203461346C34743469346D34B6
:1003D000653474345F3461345B346D345D3420349F
:1003E00061346C34743469346D34653474345F341E
:1003F00070345B34503461345D34203400347334F1
:10040000683474345F3474345B34B03443345D34F2
:1004100020347334683474345F3468345B34253486
:1004200025345D342034203441346E3465346D34E9
:100430006F345B346D342F3473345D34633468341B
:10044000653463346B340D340A340D340A340034AB
:100450000830F800000007122812280883168700C9
:10046000000083120317920D03138711031C3E2A09
:10047000A815280883168700422A8312A811280885
:100480008316870000008312281628088316870029
:100490008312071E492AF80B2A2A00000712281285
:1004A00028088316870000008312A81528088316E1
:1004B0008700000000008312281628088316870092
:1004C0008312071E612AF8010000871978140712A9
:1004D000281228088316870083128711A81128087C
:1004E0008316870083120800A81528088316870042
:1004F0000000831228162808831687000000831244
:100500008711A8112808831687000000831207129C
:100510002812280883168700803083120317920060
:1005200003132822FE300317920003132822A81178
:1005300028088316870000008312281628088316CF
:1005400087008312071EA22A0000A62A0000A81511
:10055000280883168700000083128A110A16B02D1E
:10056000083003179300770894000313A815280890
:100570008316870000008312281628088316870038
:100580008312071EC12A87190314871D0310F80D53
:100590000000281228088316870083120712031709
:1005A000930BB52A0313A8152808831687000000AB
:1005B00083128711031714080319E52A0313A811DE
:1005C00028088316870083120317000003132816D8
:1005D0002808831687008312071EEC2A00000712E2
:1005E0002812280883168700000083128711A8119B
:1005F00028088316870083120800E23084008313E2
:1006000000080319102B0230F800F701F70B062B36
:10061000F80B052B9730F700F70B0C2B800B032BF7
:100620000800A815280883168700000083122816E2
:10063000280883168700000083128711A811280854
:1006400083168700000083120712281228088316D9
:100650008700803083120317920003132822E730AB
:100660000317920003132822A81528088316870071
:1006700000008312281628088316870000008312C2
:10068000071E402B8711A811280883168700000039
:1006900083120712281228088316870081308312DC
:1006A0000317920003132822F701B022780883165B
:1006B000DE005E083A395D04DE008312A8152808C2
:1006C00083168700000083122816280883168700E7
:1006D00000008312071E6A2B8711A81128088316B1
:1006E000870000008312071228122808831687004B
:1006F000803083120317920003132822E630031779
:1007000092000313282283165E08831203179200B7
:1007100003132822A81128088316870000008312DB
:1007200028162808831687008312071E952B0000C1
:10073000992B0000A81528088316870000000A30AE
:10074000E2008312FD22A815280883168700000006
:100750008312281628088316870000008312871149
:10076000A811280883168700000083120712281298
:100770002808831687008030831203179200031322
:100780002822E7300317920003132822A81528080F
:100790008316870000008312281628088316870016
:1007A00000008312071ED22B8711A8112808831678
:1007B000870000008312071228122808831687007A
:1007C000813083120317920003132822F701B0220D
:1007D00078088316DE005E08F80083128A110A1674
:1007E000B82DA81528088316870000008312281644
:1007F000280883168700000083128711A811280893
:100800008316870000008312071228122808831617
:1008100087003C308312031792000313282203172A
:100820009201031328227030031792000313282229
:10083000A8112808831687000000831228162808AC
:10084000831687008312071E232C0000272C00002C
:10085000A81528088316870000000630E2008312DE
:10086000FD22A81528088316870000008312281689
:10087000280883168700000083128711A811280812
:100880008316870000008312071228122808831697
:1008900087003C3083120317920003132822013093
:1008A0000317920003132822E0300317920003136A
:1008B0002822A81128088316870000008312281612
:1008C0002808831687008312071E642C0000682CFA
:1008D0000000A81528088316870000000630E200F3
:1008E0008312FD22A81528088316870000008312B2
:1008F0002816280883168700000083128711A81184
:10090000280883168700000083120712281228087F
:10091000831687003C3083120317920003132822AA
:1009200002300317920003132822031792010313C6
:100930002822A81128088316870000008312281691
:100940002808831687008312071EA42C0000A82CF9
:100950000000A81528088316870000000630E20072
:100960008312FD228A110A16C12DA81528088316A4
:1009700087000000831228162808831687000000CD
:1009800083128711A811280883168700000083129C
:1009900007122812280883168700C0308312031715
:1009A00092000313282226300317920003132822F3
:1009B000B8300317920003132822A81128088316C1
:1009C00087000000831228162808831687008312E8
:1009D000071EE82C0000EC2C0000A8152808831640
:1009E000870000008312A8152808831687000000DE
:1009F00083122816280883168700000083128711A7
:100A0000A8112808831687000000831207122812F5
:100A1000280883168700C03083120317920003133F
:100A200028221330031792000313282207300317DC
:100A3000920003132822A8112808831687000000BB
:100A4000831228162808831687008312071E262D76
:100A500000002A2D0000A815280883168700000032
:100A60008312A81528088316870000008312281611
:100A7000280883168700000083128711A811280810
:100A80008316870000008312071228122808831695
:100A90008700C030831203179200031328222630E8
:100AA000031792000313282239300317920003130F
:100AB0002822A81128088316870000008312281610
:100AC0002808831687008312071E642D0000682DF6
:100AD0000000A815280883168700000083128A11D9
:100AE0000A16CE2DA8152808831687000000831249
:100AF0002816280883168700000083128711A81182
:100B0000280883168700000083120712281228087D
:100B100083168700C0308312031792000313282224
:100B200003171008920003132822A815280883161B
:100B3000870000008312281628088316870000000B
:100B40008312071EA12D8711A8112808831687007C
:100B50000000831207122812280883168700C1306C
:100B600083120317920003132822F701B02278089A
:100B7000031791000313A8112808831687000000AB
:100B8000831228162808831687008312071EC62D95
:100B90000000CA2D0000A815280883168700000051
:100BA000831203171108F800031308008030831C18
:100BB000DC2D0317A60603130317AB01AC012208B3
:100BC000AA002608AA0621080319CA2EA900F700C0
:100BD00025080319D32EA90203196F2E031C2D2EED
:100BE0002608AF00AF172708AE002808AD00AC01FB
:100BF0000310AF0CAE0CAD0CAC0CA90BF72DAA1F5B
:100C0000042E2B14E72E2B1029102B1624308400D1
:100C10008317FC2E2B12AA1B172E291C222EAF0C79
:100C2000AE0CAD0CAC0CF70A0319E22E222EAF1B52
:100C3000252E0310AC0DAD0DAE0DAF0DF70303194E
:100C4000E22E172E2B178F2E2B132208AA00AA1F75
:100C50002B2EAF17DB2EAF13DB2E2508A900F700D4
:100C60002108A9022208AF00AF172308AE0024080C
:100C7000AD00AC010310AF0CAE0CAD0CAC0CA90B6D
:100C8000392EAA1F462EAB14E72EAB102910AB1637
:100C9000283084008317FC2EAB12AA1B592E291C66
:100CA000642EAF0CAE0CAD0CAC0CF70A0319E22E9F
:100CB000642EAF1B672E0310AC0DAD0DAE0DAF0D46
:100CC000F7030319E22E592EAB178F2EAB1326080C
:100CD000AA00AA1F6D2EAF17DB2EAF13DB2E26083E
:100CE000AF00AF172708AE002808AD00AA1F7C2E62
:100CF000AF132B15E72E2B11AC01291024308400E3
:100D00008317FC2EAA1BA52E2208AA00291C8F2EB1
:100D1000AF0CAE0CAD0CAC0CF70A0319E22EAC1FF5
:100D2000A02EAD0A031DA02EAE0A031DA02EAF0AF1
:100D3000031DA02EAF0CAE0CAD0CF70A0319E22E6A
:100D40002B1B242EAB1B662EC42E8030AF06AF1F8C
:100D5000AD2EE72E2608AA00BA2E2208AA00AF0858
:100D6000031DBA2EAE08031DBA2EAD08031DBA2E00
:100D7000F701DB2EAF1BC42E0310AC0DAD0DAE0D75
:100D8000AF0DF70BBA2EE22EAA1FC82EAF17DB2E1F
:100D9000AF13DB2E2508F7002608AF002708AE00AA
:100DA0002808AD00DB2E2108F7002208AF00230839
:100DB000AE002408AD002F08F8002E08F9002D0819
:100DC000FA001A2FF701F801F901FA011A2FAC0104
:100DD000AD09AE09AF09AC09AC0A031DF52EAD0A89
:100DE000031DF52EAE0A0319AF0A2B18032EAB18FC
:100DF000452E2B197B2EAA2E0008AD07031C062FAB
:100E0000AE0A031D062FAF0A031929148403000834
:100E1000AE07031C0E2FAF0A031929148403000820
:100E2000801F803AAF07031829142B1A0A2EAB1A19
:100E30004C2E822E03130800043003179000031376
:100E4000722578088316DD000530831203179000A1
:100E500003137225780EF7000F30F7057708A70106
:100E60008B1BA7178B130317C501C400031338206E
:100E7000A71B8B1777088316E6007808E700790828
:100E8000E8007A08E9008312A7018B1BA7178B13D0
:100E90008316690883120317D900831603136808A1
:100EA00083120317D80083160313670883120317EE
:100EB000D70083160313660883120317D600DD01DB
:100EC000DC01DB018330DA0003135720A71B8B17EB
:100ED0007A088316E1007908E0007808DF007708D7
:100EE000DE008312A7018B1BA7178B130317C50105
:100EF000831603135D0883120317C40003133820FD
:100F0000A71B8B1783107A080317A4007908A30086
:100F10007808A2007708A1008316031361088312E2
:100F20000317A80083160313600883120317A70092
:100F3000831603135F0883120317A6008316031397
:100F40005E0883120317A5000313D6257A088316BB
:100F5000E5007908E4007808E3007708E200620819
:100F6000F7006308F8006408F9006508FA008312C6
:100F70008A110A16DC2D03179401831603136F08D8
:100F80008312031793009400930110081307910034
:100F9000140892000318920A1108F8001208F900C8
:100FA000031308008E30F70003171108F80010082B
:100FB000F900FA01911FE12FF809F909F90A03195B
:100FC000F80AF808031DEE2F7908F800F901083037
:100FD000F702F808031DEE2FF701F72F0310F81B97
:100FE000F52FF90DF80DF703EE2F911FF8130313EA
:020FF0000800F7
:101000000130031790008A11031372258A15831685
:10101000E001DF01DE017808DD00023083120317F2
:1010200090008A11031372258A158316E20178084D
:10103000E10003308312031790008A110313722515
:101040008A1578088316E300630DE400E40DFC3094
:10105000E405630EF700F70CF70C0330F70577088B
:101060008312A7018B1BA7178B130317C501C4009D
:101070008A11031338208A15A71B8B1777080317CB
:10108000910078089200790893007A08940003137D
:10109000A7018B1BA7178B1303171408D90013087C
:1010A000D8001208D7001108D600DD01DC01DB01F1
:1010B0008130DA008A11031357208A15A71B8B177A
:1010C0007A088316EC007908EB007808EA007708C4
:1010D000E900831203179101831603135D0D831238
:1010E00003179200831603135E0D831203179300F8
:1010F000831603135F0D831203179400920D930D53
:10110000940DFC30920583160313610DF900620DF6
:10111000FA00F90DFA0DFC30F9057908831203176E
:1011200091047A08920483160313630EF700F70CF8
:10113000F70C0330F7057708831203171104F70043
:101140001208F8001308F9001408FA007A089A0047
:10115000790899007808980077089700B630F7006A
:10116000FA01F901F8011708180419041A04031DFB
:10117000BB28F701C8280310F81BC728970D980D46
:10118000990D9A0DFA0DF90DF80DF70BBB28F81310
:101190007708910078089200790893007A08940003
:1011A00083101408A4001308A3001208A200110859
:1011B000A100831603136C0883120317A80083167B
:1011C00003136B0883120317A700831603136A081F
:1011D00083120317A60083160313690883120317EB
:1011E000A5008A110313D6258A157A088316E8000C
:1011F0007908E7007808E6007708E5006508F70059
:101200006608F8006708F9006808FA0083128A1176
:101210000A16E82DA81528088316870000008312F7
:101220002816280883168700000083128711A8114A
:101230002808831687000000831207122812280846
:1012400083168700C0308312031792008A1103139C
:1012500028228A152630031792008A1103132822A8
:101260008A15B830031792008A11031328228A15B1
:10127000A811280883168700000083122816280862
:10128000831687008312071E4329000047290000A8
:10129000A81528088316870000008312A8152808BF
:1012A00083168700000083122816280883168700FB
:1012B000000083128711A8112808831687000000F8
:1012C000831207122812280883168700C030831261
:1012D000031792008A11031328228A15133003176B
:1012E00092008A11031328228A15073003179200EF
:1012F0008A11031328228A15A8112808831687004B
:101300000000831228162808831687008312071E00
:10131000872900008B290000A8152808831687005C
:1013200000008312A8152808831687000000831286
:101330002816280883168700000083128711A81139
:101340002808831687000000831207122812280835
:1013500083168700C0308312031792008A1103138B
:1013600028228A152630031792008A110313282297
:101370008A15B930031792008A11031328228A159F
:10138000A811280883168700000083122816280851
:10139000831687008312071ECB290000CF29000087
:1013A000A815280883168700000083128A110A16E0
:1013B000F52D0130031790008A11031372258A1549
:1013C0008316DE017808DD000230831203179000D7
:1013D0008A11031372258A1578088316DF000330FB
:1013E0008312031790008A11031372258A15780E51
:1013F000F7000F30F7057708A7018B1BA7178B1392
:101400000317C501C4008A11031338208A15A71BCE
:101410008B1777088316E8007808E9007908EA0056
:101420007A08EB008312A7018B1BA7178B13831677
:101430006B0883120317D900831603136A088312FB
:101440000317D80083160313690883120317D70004
:1014500083160313680883120317D600DD01DC012D
:10146000DB018330DA008A11031357208A15A71B8A
:101470008B177A088316E3007908E2007808E10008
:101480007708E0005D08EA00E90169085F04F700F9
:101490005D08FA0077088312A7018B1BA7178B132F
:1014A0000317C4007A08C5008A11031338208A156F
:1014B000A71B8B1777088316E9007808EA007908DC
:1014C000EB007A08EC0083106C0883120317A40069
:1014D000831603136B0883120317A30083160313E9
:1014E0006A0883120317A200831603136908831284
:1014F0000317A10083160313630883120317A800C0
:1015000083160313620883120317A70083160313BD
:10151000610883120317A600831603136008831261
:101520000317A5008A110313D6258A157A08831696
:10153000E7007908E6007808E5007708E400640829
:10154000F7006508F8006608F9006708FA008312DA
:101550008A110A16052E0317210803191C2BA9004E
:10156000250803191C2BA9070318BD2A7F30A902DF
:10157000031C1C2B03191C2BC12A8130A90703183B
:101580001C2B2908F700F801F901FA012208AD0027
:10159000AD172308AC002408AB001830A900AA013D
:1015A0002B1CEA2A2808FA07031CDC2AF90A031D67
:1015B000DC2AF80A0319AA172708F907031CE32AEB
:1015C000F80A0319AA172608A300A3172308F80787
:1015D0000318AA17AA0DF80CF90CFA0CAD0CAC0CF8
:1015E000AB0C0310A90BCF2A0130F70703181C2BF3
:1015F000F81B012BAD0DFA0DF90DF80DF7030319CA
:101600001C2BAD1F122BFA0A031D122BF90A031D06
:10161000122BF80A031D122BF80CF90CFA0CF70A1E
:1016200003191C2B2208AA002608AA06AA1F1A2B97
:10163000F817202BF813202BF701F801F901FA0114
:1016400003130800A81528088316870000008312DA
:10165000281628088316870000008312071E2E2BE9
:101660008711A8112808831687000000831207122B
:1016700028122808831687008030831203179200EF
:101680008A11031328228A15E330031792008A1166
:10169000031328228A15A811280883168700000042
:1016A000831228162808831687008312071E562BDC
:1016B00000005A2B0000A815280883168700000098
:1016C0006430E2008A118312FD228A15A8152808C9
:1016D00083168700000083122816280883168700C7
:1016E000000083128711A8112808831687000000C4
:1016F000831207122812280883168700813083126C
:10170000031792008A11031328228A150130F7006B
:101710008A11B0228A1578088316DD000130F7009F
:101720008A118312B0228A1578088316DE00F70129
:101730008A118312B0228A1578088316DF0083127B
:10174000A81128088316870000008312281628088D
:10175000831687008312071EAB2B0000AF2B0000FF
:10176000A8152808831687000000DE0CDE0C3F3029
:10177000DE05E3015D08E200E300E2015E0EF70032
:10178000F030F70577086207E0006308E10003180E
:10179000E10A8312A7018B1BA7178B13831661081D
:1017A00083120317C50083160313600883120317FF
:1017B000C4008A11031338208A15A71B8B177708DA
:1017C0008316E2007808E3007908E4007A08E5006F
:1017D0008312A7018B1BA7178B138316650883122F
:1017E0000317D90083160313640883120317D80064
:1017F00083160313630883120317D700831603139A
:10180000620883120317D600DD01FF30DC007F3051
:10181000DB008E30DA008A11031357208A15A71BCC
:101820008B1752300317A400B830A3002F30A2004A
:101830008630A1007A08A8007908A7007808A600D9
:101840007708A5000313AB22831066300317A400AA
:10185000A300BB30A2008430A1007A08A800790858
:10186000A7007808A6007708A5008A110313D625DB
:101870008A158A110A16122EA815280883168700C1
:1018800000008312281628088316870000008312A0
:101890008711A811280883168700000083120712F9
:1018A00028122808831687008030831203179200BD
:1018B0008A11031328228A15E530031792008A1132
:1018C000031328228A1564308316E2008A118312DA
:1018D000FD228A15A81528088316870000008312A8
:1018E000281628088316870000008312071E762C0E
:1018F0008711A81128088316870000008312071299
:10190000281228088316870081308312031792005B
:101910008A11031328228A150130F7008A11B02298
:101920008A1578088316DD000130F7008A118312CA
:10193000B0228A1578088316DE00F7018A11831217
:10194000B0228A1578088316DF008312A8112808B0
:101950008316870000008312281628088316870044
:101960008312071EB12C0000B52C0000A815280812
:10197000831687000000DE0CDE0C3F30DE05E3013D
:101980005D08E200E300E2015E0EF700F030F705CB
:1019900077086207E0006308E1000318E10A831298
:1019A000A7018B1BA7178B138316610883120317DC
:1019B000C50083160313600883120317C4008A113D
:1019C000031338208A15A71B8B1777088316E200AC
:1019D0007808E3007908E4007A08E5008312A7019B
:1019E0008B1BA7178B138316650883120317D90067
:1019F00083160313640883120317D8008316031396
:101A0000630883120317D700831603136208831237
:101A10000317D600DD01FF30DC007F30DB008E30A5
:101A2000DA008A11031357208A15A71B8B17031797
:101A3000A401A3017A30A2008530A1007A08A80091
:101A40007908A7007808A6007708A5000313AB2241
:101A500083100317A401A301C030A2008130A100AC
:101A60007A08A8007908A7007808A6007708A500DA
:101A70008A110313D6258A158A110A161F2EA81556
:101A8000280883168700000083122816280883166A
:101A90008700000083128711A81128088316870089
:101AA00000008312071228122808831687003C3092
:101AB0008312031792008A11031328228A158316B2
:101AC0006F088312031792008A11031328228A15C4
:101AD000A8112808831687000000831228162808FA
:101AE000831687008312071E732D0000772D0000D8
:101AF000A81528088316870000008312A815280857
:101B00008316870000008312281628088316870092
:101B1000000083128711A81128088316870000008F
:101B20008312071228122808831687003D3083127B
:101B3000031792008A11031328228A15F7018A11CC
:101B4000B0228A1578088316EF006F08F800831218
:101B5000080003171E08A5002208A506A51FB52D1D
:101B6000031103109E1B0314E82D1E08A500210875
:101B7000A6001D08A6020319C32DA51FE82D030802
:101B8000013A8300E82D2208A6001E08A6020319C8
:101B9000CF2DA51FE82D0308013A8300E82D230867
:101BA000A6001F08A6020319DB2DA51FE82D0308B8
:101BB000013A8300E82D2408A6002008A602031994
:101BC000E72DA51FE82D0308013A8300E82D031037
:101BD0000313080031088400831332188317831617
:101BE0006A088000840A80018312B10A0319B20ACC
:101BF0000800F701F801F901FA01031794019501B2
:101C000096019701130812041104100403193C2EC5
:101C100020309800031083160313EA0DEB0DEC0D32
:101C2000ED0D83120317940D950D960D970D130866
:101C30001702031D252E12081602031D252E11085A
:101C40001502031D252E10081402031C362E100841
:101C500094021108031C110F95021208031C120FA5
:101C600096021308031C130F97020314F70DF80DC7
:101C7000F90DFA0D980B0A2E143084008317031304
:101C8000080004088316E2006108E4000319712EBD
:101C9000600883120317A400831603135F088312DE
:101CA0000317A300831603135E0883120317A20011
:101CB000831603135D0883120317A100A801A7016F
:101CC0002030A6008230A5000313AB227A088316C9
:101CD000E0007908DF007808DE007708DD00E40B1B
:101CE000482E6008ED005F08EC005E08EB005D0820
:101CF000EA006A08B63CEA00FA016B08EE00EB174E
:101D00000310EB0CEC0CED0CFA0CF90CF80CF70CC6
:101D1000EA0B802EEE1F972EF709F809F909FA0948
:101D2000F70A0319F80A0319F90A0319FA0A7A08D3
:101D3000E0007908DF007808DE007708DD00E01FAA
:101D4000AE2EE203E216DD09DE09DF09E009DD0A55
:101D50000319DE0A0319DF0A0319E00A3B30E90020
:101D60009A30E800CA30E700E6010A30E400610872
:101D70000319E20A6008ED005F08EC005E08EB0062
:101D80005D08EA00690883120317930083160313A2
:101D900068088312031792008316031367088312DF
:101DA000031791008316031366088312031790002C
:101DB0000313F92500088316DD00840A0008DE00FD
:101DC000840A0008DF00840A0008E000FD30840770
:101DD000F708031DFE2E610A64020319FE2E620835
:101DE0000319002F0F3964020319F82E0318382F36
:101DF000E21B382F621B002F2030322F2030E205EB
:101E0000E21E102FE2126108031DE2037708E200D0
:101E10002D30EA008312EA2583166208F700E201FA
:101E200061086402031D202F7708E2002E30EA00CB
:101E30008312EA2583166208F7002030E20500309D
:101E40003030E21E322FE2126108031DE2037708F0
:101E5000E2002D30EA008312EA2583166208F700BB
:101E6000E2013030F7077708EA008312EA2583168B
:101E70006908ED006808EC006708EB006608EA00F6
:101E8000831203179301920191010A30900003130A
:101E9000F9257A088316E9007908E8007808E70050
:101EA0007708E600E40BBA2E8312080080080319B5
:101EB000962F8316DE010408DD005E10831B5E147E
:101EC0000008DF008312A8132808831687008312F6
:101ED00087130830F8006C2F0000F8177F2FF813D5
:101EE0008316DF0C831203188717031C87137817D8
:101EF0007F2F7813F80B702F7D2F000087173F304E
:101F00008400840B812F0000F81B6F2F781B792F22
:101F100083165D08840083135E188317840A031DEB
:101F2000942F8312850A83168312562F8A110A165C
:021F3000442F3C
:1020000003308316EF000A128A1583123F250A1641
:102010008A1178088316EB000430EF000A128A1543
:1020200083123F250A168A1178088316EC006B0884
:10203000EF006C088312031790000A120313BB27EA
:102040000A1679088316EE007808ED006D08F8008E
:102050006E08F9007908DE007808DD000730EF002F
:102060000A128A1583123F250A168A1178088316E8
:10207000EB000830EF000A128A1583123F250A167A
:102080008A1178088316EC006B08EF006C08831245
:10209000031790000A120313BB270A167908831648
:1020A000EE007808ED006D08F8006E08F900790878
:1020B000E0007808DF000530EF000A128A1583126D
:1020C0003F250A168A1178088316EB000630EF00C8
:1020D0000A128A1583123F250A168A117808831678
:1020E000EC006B08EF006C088312031790000A12D3
:1020F0000313BB270A1679088316EE007808ED0053
:102100006D08F8006E08F9007908E2007808E1002F
:102110006008831203179100831603135F0883126C
:10212000031790000A120313D2270A1677088316A2
:10213000EB007808EC007908ED007A08EE005E0804
:10214000831203179100831603135D08831203178C
:1021500090000A120313D2270A16A7018B1BA71798
:102160008B1383166E0883120317D900831603138B
:102170006D0883120317D800831603136C088312AB
:102180000317D700831603136B0883120317D600B7
:102190007A08DD007908DC007808DB007708DA00CF
:1021A0000A12031357200A16A71B8B177A088316E7
:1021B000E6007908E5007808E4007708E30066089F
:1021C000EE006508ED006408EC006308EB006F109A
:1021D000EF106E08831203179300831603136D0824
:1021E000831203179200831603136C0883120317DC
:1021F0009100831603136B08831203179000831654
:1022000003136E0883120317A000831603136D08CF
:10221000831203179F00831603136C08831203179E
:102220009E00831603136B08831203179D00A401FD
:10223000A301A201A1010A128A150313A9250A16F6
:102240008A11031C2B2983166F148312031711089C
:10225000803A910003130317A0019F019E017F3074
:102260009D001308A4001208A3001108A200100882
:10227000A1000A128A150313A9250A168A11031C44
:102280006629A7018B1BA7178B130317D901D80148
:10229000D7017F30D6001308DD001208DC001108DA
:1022A000DB001008DA000A12031357200A16A71BD6
:1022B0008B177A0803179300790892007808910029
:1022C0007708900083160313EF1483120A30031764
:1022D000A4008930A3003430A2007C30A100130890
:1022E000A8001208A7001108A6001008A5000A12ED
:1022F0008A150313AB220A168A11770803179C006C
:1023000078089D0079089E007A089F00A4001E08A6
:10231000A3001D08A2001C08A1001308A8001208B1
:10232000A7001108A6001008A5000A128A150313B9
:10233000AB220A168A11770803179C0078089D00C3
:1023400079089E007A089F0083101F08A4001E08C9
:10235000A3001D08A2001C08A1007C30A800793051
:10236000A7003530A6008130A5000A120313D62538
:102370000A167A08031797007908960078089500DE
:10238000770894001708A4001608A3001508A200F7
:102390001408A1001308A8001208A7001108A6003D
:1023A0001008A5000A128A150313AB220A168A1117
:1023B000770803179C0078089D0079089E007A082A
:1023C0009F00A4001E08A3001D08A2001C08A10075
:1023D0001308A8001208A7001108A6001008A500FD
:1023E0000A128A150313AB220A168A1177080317FB
:1023F0009C0078089D0079089E007A089F00831051
:102400001F08A4001E08A3001D08A2001C08A100AC
:102410003F30A8000230A7003330A6008330A5006B
:102420000A120313D6250A167A08031797007908AB
:10243000960078089500770894001708A4001608FD
:10244000A3001508A2001408A1001308A800120890
:10245000A7001108A6001008A5000A128A15031388
:10246000AB220A168A11770803179C0078089D0092
:1024700079089E007A089F00A4001E08A3001D088A
:10248000A2001C08A1001308A8001208A700110848
:10249000A6001008A5000A128A150313AB220A161B
:1024A0008A11770803179C0078089D0079089E0020
:1024B0007A089F0083101F08A4001E08A3001D08AF
:1024C000A2001C08A1003330A8008C30A7001E30E9
:1024D000A6008330A5000A120313D6250A167A082F
:1024E00003179700790896007808950077089400FC
:1024F000A401A301A2017F30A1001308A8001208C3
:10250000A7001108A6001008A5000A128A150313D7
:10251000AB220A168A11770803179C0078089D00E1
:1025200079089E007A089F00A4001E08A3001D08D9
:10253000A2001C08A1001308A8001208A700110897
:10254000A6001008A5000A128A150313AB220A166A
:102550008A11770803179C0078089D0079089E006F
:102560007A089F0083101F08A4001E08A3001D08FE
:10257000A2001C08A1001B30A800E430A7003530E1
:10258000A6008230A5000A120313D6250A167A087F
:1025900003179B0079089A0078089900770898003B
:1025A0001B08A4001A08A3001908A2001808A1001B
:1025B0001308A8001208A7001108A6001008A5001B
:1025C0000A128A150313AB220A168A117708031719
:1025D0009C0078089D0079089E007A089F00A4005E
:1025E0001E08A3001D08A2001C08A1001308A800D3
:1025F0001208A7001108A6001008A5000A128A15E3
:102600000313AB220A168A11770803179C00780877
:102610009D0079089E007A089F0083101F08A4007F
:102620001E08A3001D08A2001C08A100A430A800D9
:10263000DB30A7006730A6008330A5000A12031321
:10264000D6250A167A0803179B0079089A0078089D
:102650009900770898001B08A4001A08A30019081D
:10266000A2001808A1001308A8001208A70011086A
:10267000A6001008A5000A128A150313AB220A1639
:102680008A11770803179C0078089D0079089E003E
:102690007A089F00A4001E08A3001D08A2001C08C1
:1026A000A1001308A8001208A7001108A60010082E
:1026B000A5000A128A150313AB220A168A1177089D
:1026C00003179C0078089D0079089E007A089F00F7
:1026D00083101F08A4001E08A3001D08A2001C08E8
:1026E000A1003330A8008C30A7001E30A600833034
:1026F000A5000A120313D6250A167A0803179B00B1
:1027000079089A0078089900770898001308A400BF
:102710001208A3001108A2001008A1001708A800C1
:102720001608A7001508A6001408A5000A128A15A5
:102730000313AB220A168A11770803179C00780846
:102740009D0079089E007A089F000313A7018B1B48
:10275000A7178B1303171F08D9001E08D8001D08E0
:10276000D7001C08D6001B08DD001A08DC00190879
:10277000DB001808DA000A12031357200A16A71BF9
:102780008B177A0803179700790896007808950048
:102790007708940083160313EF1CF02B8314DB30AF
:1027A00083120317A4000F30A3004930A2007F302A
:1027B000A1001708A8001608A7001508A60014080D
:1027C000A5000A120313D6250A167A0803179700E4
:1027D000790896007808950077089400831603130B
:1027E0006F1CF92B831203171508803A9500831686
:1027F0000313831203171408F7001508F8001608CE
:10280000F9001708FA007A0883160313EA0079081A
:10281000E9007808E8007708E7008312A7018B1B1E
:10282000A7178B1383166A0883120317D900831620
:102830000313690883120317D8008316031368086B
:1028400083120317D7008316031367088312031735
:10285000D600C330DD00F530DC004830DB008030CE
:10286000DA000A12031357200A16A71B8B177708E2
:102870008316EB007808EC007908ED007A08EE008A
:1028800083120317A400831603136D088312031722
:10289000A300831603136C0883120317A200831688
:1028A00003136B0883120317A100A801A70134309A
:1028B000A6008630A5000A128A150313AB220A1659
:1028C0008A117A088316EA007908E9007808E80096
:1028D0007708E7006708F7006808F8006908F9005A
:1028E0006A08FA00F8136A08EA006908E90078083B
:1028F000E8006708E700DD08031D982CDE08031DCB
:10290000982CE01B912CE008031D8A2C5F08003CEA
:102910000318912CEA01E9013430E8008530E70022
:10292000972CEA01E9010730E8008730E700322DF3
:10293000DE1B012DDE08031DA12C5D08003C0318E1
:10294000012DE01BD22C831083120317A401A301D5
:102950003430A2008630A100831603136A08831264
:102960000317A80083160313690883120317A7002F
:1029700083160313680883120317A6008316031334
:10298000670883120317A5000A120313D6250A1637
:102990007A088316EA007908E9007808E8007708E1
:1029A000E700002D831483120317A401A301343020
:1029B000A2008630A100831603136A08831203174E
:1029C000A80083160313690883120317A700831650
:1029D0000313680883120317A600831603136708FE
:1029E00083120317A5000A120313D6250A167A08C4
:1029F0008316EA007908E9007808E8007708E7001C
:102A0000322DE01B322D831483120317A401A3017E
:102A10003430A2008730A100831603136A088312A2
:102A20000317A80083160313690883120317A7006E
:102A300083160313680883120317A6008316031373
:102A4000670883120317A5000A120313D6250A1676
:102A50007A088316EA007908E9007808E800770820
:102A6000E700322D6708F7006808F8006908F900E8
:102A70006A08FA0083128A110A162A2E8401831327
:102A80001F308305713083168F000F088312A8133F
:102A900028088316870083128717B001AF01AE01A3
:102AA000AD01831603170908C039890003131F12EB
:102AB0009F12003003178800831287018801890163
:102AC000FF300313A800A901AA01B101B2018316C6
:102AD00003170908C039890003131F129F12003021
:102AE00003178800831203131F139F1383169F136A
:102AF00083121F149412A8122808831687008312C9
:102B000028162808831687008312A8112808831620
:102B1000870001308312940000308316940001086E
:102B2000C739283881000F30831290000030F80038
:102B3000920000308316920083122815280883160D
:102B400087008312970183169B019C0101309D0031
:102B5000831203178701880189010A120313742A5B
:102B60000A16CB014B088316DD000A128312112BC3
:102B70000A1683160C1483128B16C0308B040A12AB
:102B8000F12B0A1681018F018E01AC01AB01B0015E
:102B9000AF01AE01AD01CC010A12B52C0A1602300C
:102BA000CD00FA308316E2000A128312FD220A16C3
:102BB000CD0BD12D0A121C2F0A167A08B6007908FF
:102BC000B5007808B4007708B3000A128A15002807
:102BD0000A168A117A08BA007908B9007808B8008C
:102BE0007708B7000A128A150A290A168A110230D4
:102BF000CD00FA308316E2000A128312FD220A1673
:102C0000CD0BF92D0A128A15D9290A168A117A08CC
:102C1000BE007908BD007808BC007708BB000A1226
:102C20008A15222B0A168A117A08C2007908C10077
:102C30007808C0007708BF000A128A153C2C0A16D3
:102C40008A117A08C6007908C5007808C400770898
:102C5000C30000287A08CA007908C9007808C800AB
:102C60007708C700B201A030B10020308316EA0017
:102C70000A128A158312EA250A168A110530840081
:102C800036088316E000831235088316DF008312AE
:102C900034088316DE00831233088316DD00023009
:102CA000E1000A128A15831241260A168A11203081
:102CB0008316EA000A128A158312EA250A168A1177
:102CC000063084003E088316E00083123D08831618
:102CD000DF0083123C088316DE0083123B08831654
:102CE000DD000230E1000A128A15831241260A161D
:102CF0008A1120308316EA000A128A158312EA2507
:102D00000A168A11083084003A088316E0008312FC
:102D100039088316DF00831238088316DE00831219
:102D200037088316DD000230E1000A128A1583128B
:102D300041260A168A1120308316EA000A128A15E3
:102D40008312EA250A168A11053084004208831688
:102D5000E000831241088316DF00831240088316C7
:102D6000DE0083123F088316DD000230E1000A1204
:102D70008A15831241260A168A1120308316EA002A
:102D80000A128A158312EA250A168A110530840070
:102D900046088316E000831245088316DF0083127D
:102DA00044088316DE00831243088316DD000230D8
:102DB000E1000A128A15831241260A168A11203070
:102DC0008316EA000A128A158312EA250A168A1166
:102DD000043084004A088316E000831249088316F1
:102DE000DF00831248088316DE008312470883162B
:102DF000DD000230E1000A128A15831241260A160C
:102E00008A1120308316EA000A128A158312EA25F5
:102E10000A168A110530840030088316E0008312F8
:102E20002F088316DF0083122E088316DE0083121C
:102E30002D088316DD000230E1000A128A15831284
:102E400041260A168A1120308316EA000A128A15D2
:102E50008312EA250A168A110A308316EA000A123A
:102E60008A158312EA250A168A110D308316EA00A4
:102E70000A128A158312EA250A168A11A0308400E4
:102E800083130A128A15562F0A168A110430CD00B0
:102E9000FA308316E2000A128312FD220A16CD0BC5
:062EA000482FCB2D63005A
:1000000013308A00FE2B00000D050D052310CD32A4
:10001000F4326F396F36EF33E931EB30A039F43019
:10002000EE34E332A0127310A82129103218B1194E
:10003000A03BF73BAE36EC306217633DA0060A00EA
:1000400030173100A424641DA036E1346E1763100C
:10005000B21C311B2019B018B316301AAD18341069
:10006000B11B3A1A321DB0195A10EB306B36E93514
:10007000201200012310F6327210F037F230E4340F
:1000800020006136F434ED32F42FF42DC32EA0306D
:100090006C3AE936653ADF30DB365D106136F434B0
:1000A000ED32F42FF02DD0305D1000017334F42FB9
:1000B000F42DC32EA039683A5F34DB12A52E201030
:1000C0004137E536EF2DED17F32E6334E531EB06BE
:1000D0008A060A000830F80000008711A0112008E5
:1000E0008316870000008312D30D0712031C7E289D
:1000F00020162008831687008228831220122008E9
:100100008316870000008312A0152008831687003D
:100110008312871D8928F80B6C2800008711A01115
:1001200020088316870000008312201620088316FB
:100130008700000000008312A015200883168700A6
:100140008312871DA128F8010000071A781487116F
:10015000A01120088316870083120712201220089E
:100160008316870083120800201620088316870054
:1001700000008312A0152008831687000000831258
:1001800007122012200883168700000083128711AF
:10019000A01120088316870080308312D3006A20C4
:1001A000FE30D3006A20201220088316870000004A
:1001B0008312A0152008831687008312871DDE286E
:1001C0000000E228000020162008831687000000A7
:1001D00083128A110A166E2C0830D4007708D500D5
:1001E000201620088316870000008312A01520081F
:1001F000831687008312871DFB28071A0314071E26
:100200000310F80D0000A011200883168700831248
:100210008711D40BF02820162008831687000000D1
:1002200083120712550803191A2920122008831671
:10023000870083120000A015200883168700831210
:10024000871D202900008711A01120088316870030
:1002500000008312071220122008831687008312E1
:100260000800463084008313000803194429023033
:10027000F800F701F70B3A29F80B39299730F70006
:10028000F70B4029800B3729080020162008831619
:10029000870000008312A015200883168700000045
:1002A0008312071220122008831687000000831291
:1002B0008711A01120088316870080308312D30095
:1002C0006A20E730D3006A202016200883168700B2
:1002D00000008312A01520088316870000008312F7
:1002E000871D70290712201220088316870000003E
:1002F00083128711A0112008831687008130831292
:10030000D3006A20F701EC207808C20042083A398D
:100310004104C200201620088316870000008312C3
:10032000A01520088316870000008312871D9629D8
:1003300007122012200883168700000083128711FD
:10034000A01120088316870080308312D3006A2012
:10035000E630D3006A204208D3006A202012200829
:100360008316870000008312A015200883168700DB
:100370008312871DB9290000BD290000201620081E
:100380008316870000000A308312C6003121201630
:1003900020088316870000008312A015200883160A
:1003A000870000008312071220122008831687009E
:1003B000000083128711A011200883168700803067
:1003C0008312D3006A20E730D3006A202016200869
:1003D0008316870000008312A0152008831687006B
:1003E00000008312871DF2290712201220088316AD
:1003F0008700000083128711A01120088316870050
:1004000081308312D3006A20F701EC207808C20003
:100410004208F8008A110A16742CA01320088316CB
:100420008700831287130830F800162A0000F81797
:10043000272AF813CE0C03188717031C8713781785
:10044000272A7813F80B1A2A252A000087170B3061
:100450008400840B292A0000F81B192A781B212A02
:100460000800831603178C170C14000000000318F3
:10047000602A83120C087F390313C20003170D088A
:100480000313C30003170F080313C4004208CE0070
:100490000D22430803178D000313440803178F0030
:1004A00083168C170C140000000083120313C10B79
:1004B0005A2A5D2A83160317602A7F2A8316031798
:1004C00083120C0D0E0D7F390313C20003170D08A4
:1004D0000313C30003170F080313C4004208CE0020
:1004E0000D22430803178D000313440803178F00E0
:1004F0008D0A03198F0A03100313C10B312A080058
:10050000831603178C170C140000000083120C08CC
:100510007F390319C42A0313C10003170D080313FD
:10052000C20003170F080313C3004108CE000D22B9
:10053000420803178D000313430803178F00831627
:100540008C170C140000000083120C0D0E0D7F3967
:100550000319C42A0313C10003170D080313C200B3
:1005600003170F080313C3004108CE000D224208F1
:1005700003178D000313430803178F008D0A031917
:100580008F0A0313802A031703130800043003178C
:100590008D0000308F0003101D300313C100312285
:1005A000203003178D0000308F000313802213309A
:1005B00003178D0000308F00031418300313C1009F
:1005C00031220D30CE000D220A30CE000D22203017
:1005D000CE000D22223003178D0000308F00031350
:1005E00080222030CE000D220D30CE000D220A30A8
:1005F000CE000D223A3003178D0000308F00031318
:100600008022413003178D0000308F0003138022B9
:10061000563003178D0000308F0003100F30031386
:10062000C10031222530CE000D225E3003178D002F
:1006300000308F00031416300313C10031228A11D9
:100640000A16772C201620088316870000008312D4
:10065000A0152008831687000000831207122012BD
:10066000200883168700000083128711A01120083C
:10067000831687003C308312D3006A20D3016A209E
:100680007030D3006A2020122008831687000000F3
:100690008312A0152008831687008312871D4E2B16
:1006A0000000522B0000201620088316870000004F
:1006B00006308312C60031212016200883168700D9
:1006C00000008312A0152008831687000000831203
:1006D000071220122008831687000000831287115A
:1006E000A0112008831687003C308312D3006A20B3
:1006F0000130D3006A20E030D3006A2020122008A5
:100700008316870000008312A01520088316870037
:100710008312871D892B00008D2B000020162008D6
:1007200083168700000006308312C6003121201690
:1007300020088316870000008312A0152008831666
:1007400087000000831207122012200883168700FA
:10075000000083128711A0112008831687003C3007
:100760008312D3006A200230D3006A20D3016A20AA
:10077000201220088316870000008312A01520088D
:10078000831687008312871DC32B0000C72B000030
:100790002016200883168700000006308312C6004A
:1007A00031218A110A167A2C201620088316870018
:1007B00000008312A0152008831687000000831212
:1007C0000712201220088316870000008312871169
:1007D000A011200883168700C0308312D3006A203E
:1007E0002630D3006A20B830D3006A2020122008B7
:1007F0008316870000008312A01520088316870047
:100800008312871D012C0000052C000020162008F3
:1008100083168700000083122016200883168700A5
:1008200000008312A01520088316870000008312A1
:1008300007122012200883168700000083128711F8
:10084000A011200883168700C0308312D3006A20CD
:100850001330D3006A200730D3006A20201220080A
:100860008316870000008312A015200883168700D6
:100870008312871D392C00003D2C00002016200813
:100880008316870000008312201620088316870035
:1008900000008312A0152008831687000000831231
:1008A0000712201220088316870000008312871188
:1008B000A011200883168700C0308312D3006A205D
:1008C0002630D3006A203930D3006A202012200855
:1008D0008316870000008312A01520088316870066
:1008E0008312871D712C0000752C00002016200833
:1008F00083168700000083128A110A167E2C2016A8
:1009000020088316870000008312A0152008831694
:100910008700000083120712201220088316870028
:10092000000083128711A011200883168700C030B1
:100930008312D3006A205108D3006A2020162008B1
:100940008316870000008312A015200883168700F5
:1009500000008312871DAA2C07122012200883167C
:100960008700000083128711A011200883168700DA
:10097000C1308312D3006A20F701EC207808D2003E
:10098000201220088316870000008312A01520087B
:10099000831687008312871DCB2C0000CF2C00000C
:1009A0002016200883168700000083125208F800E2
:1009B00008008E30F7005308F8005208F900FA01D9
:1009C000F808031DED2C7908F800F9010830F7024A
:1009D000F808031DED2CF701F52C0310F81BF42C7F
:1009E000F90DF80DF703ED2CF81308007B08031937
:1009F000C82D8316A8002008031D002D8312C82DC2
:100A0000A802031C0A2D7F30A807031C092D83129E
:100A1000C82D142D8130A8020318102D8312C82D63
:100A2000031D142D8312C82D2808F700F801F901C1
:100A3000FA01A7017C08A600A6177D08A5007E087C
:100A4000A4001930A8002308A4020318372D013090
:100A5000A5020318372DA6020318372DA702031885
:100A6000372DA70AA60AA50A2308A407692D22087C
:100A7000A5020318522D0130A6020318522DA70219
:100A80000318522DA70AA60A2208A5072308A407BF
:100A9000031C692DA50A031D692DA60A031D692DD6
:100AA000A70A692D21088038A6020318682D013095
:100AB000A7020318682DA70A21088038A607220874
:100AC000A507031C462DA60A031D462DA70A462D81
:100AD0007A14A80B6C2D772D0310A40DA50DA60D6F
:100AE000A70D0310FA0DF90DF80DA90D232D291CE2
:100AF0007F2D0310F80CF90CFA0CA90C832DF70BC1
:100B0000832D8312C82DA91BAC2D0310A40DA50D98
:100B1000A60DA70D2308A4020318982D0130A502E5
:100B20000318982DA6020318982DA702031CBD2DAB
:100B30002208A5020318A32D0130A6020318A32D35
:100B4000A702031CBD2D21088038A6020318AC2D76
:100B50000130A702031CBD2DFA0A031DBD2DF90AA1
:100B6000031DBD2DF80A031DBD2DF70A031DBA2D67
:100B70008312C82DF80CF90CFA0C7C08A800210887
:100B8000A806A81FC52DF817CD2DF813CD2D83125B
:100B9000F701F801F901FA01831683120800803089
:100BA000831CD52D8316A10683128316A601A701E7
:100BB0007C08A5002108A5067B080319C32EA40004
:100BC000F70020080319CC2EA4020319682E031C79
:100BD000262E2108AA00AA172208A9002308A80087
:100BE000A7010310AA0CA90CA80CA70CA40BF02DAC
:100BF000A51FFD2D2614E02E2610241026167E306B
:100C000084008313F52E2612A51B102E241C1B2EE8
:100C1000AA0CA90CA80CA70CF70A0319DB2E1B2E93
:100C2000AA1B1E2E0310A70DA80DA90DAA0DF703D0
:100C30000319DB2E102E2617882E26137C08A500FC
:100C4000A51F242EAA17D42EAA13D42E2008A40040
:100C5000F7007B08A4027C08AA00AA177D08A90057
:100C60007E08A800A7010310AA0CA90CA80CA70CC9
:100C7000A40B322EA51F3F2EA614E02EA610241082
:100C8000A616A33084008313F52EA612A51B522EA0
:100C9000241C5D2EAA0CA90CA80CA70CF70A03199A
:100CA000DB2E5D2EAA1B602E0310A70DA80DA90D2B
:100CB000AA0DF7030319DB2E522EA617882EA613B2
:100CC0002108A500A51F662EAA17D42EAA13D42E7C
:100CD0002108AA00AA172208A9002308A800A51F16
:100CE000752EAA132615E02E2611A70124107E309A
:100CF00084008313F52EA51B9E2E7C08A500241CC2
:100D0000882EAA0CA90CA80CA70CF70A0319DB2E35
:100D1000A71F992EA80A031D992EA90A031D992E13
:100D2000AA0A031D992EAA0CA90CA80CF70A0319EC
:100D3000DB2E261B1D2EA61B5F2EBD2E8030AA0685
:100D4000AA1FA62EE02E2108A500B32E7C08A50020
:100D5000AA08031DB32EA908031DB32EA808031D5E
:100D6000B32EF701D42EAA1BBD2E0310A70DA80D7C
:100D7000A90DAA0DF70BB32EDB2EA51FC12EAA17A6
:100D8000D42EAA13D42E2008F7002108AA00220886
:100D9000A9002308A800D42E7B08F7007C08AA002D
:100DA0007D08A9007E08A8002A08F8002908F90093
:100DB0002808FA00132FF701F801F901FA01132F9F
:100DC000A701A809A909AA09A709A70A031DEE2EC8
:100DD000A80A031DEE2EA90A0319AA0A2618FC2D3B
:100DE000A6183E2E2619742EA32E0008A807031C51
:100DF000FF2EA90A031DFF2EAA0A03192414840337
:100E00000008A907031C072FAA0A03192414840346
:100E10000008801F803AAA0703182414261A032EFC
:100E2000A61A452E7B2E831208000430D1007F24A1
:100E30007808C1000530D1007F24780EF7000F300C
:100E4000F7057708D301D200D9247708CA007808BB
:100E5000CB007908CC007A08CD00FE007908FD00AF
:100E60007808FC007708FB008316A301A201A1010A
:100E70008330A0008312F6247A08C5007908C400E4
:100E80007808C3007708C200D3014108D200D924F2
:100E900083107A08FE007908FD007808FC007708C6
:100EA000FB0045088316A300831244088316A200A2
:100EB000831243088316A100831242088316A00000
:100EC0008312CF257A08C9007908C8007808C700BE
:100ED0007708C6004608F7004708F8004808F900F8
:100EE0004908FA008A110A168A2C0130D1007F24A1
:100EF000C2017808C1000230D1007F247808C30005
:100F00000330D1007F24780EF7000F30F705770803
:100F1000D301D200D9247708CC007808CD00790815
:100F2000CE007A08CF00FE004E08FD004D08FC0000
:100F30004C08FB008316A301A201A1018330A0008D
:100F40008312F6247A08C7007908C6007808C5001D
:100F50007708C4004108CE00CD014D084304F700D6
:100F60004E08FA007708D2004E08D300D92477083B
:100F7000CD007808CE007908CF007A08D000831021
:100F80005008FE004F08FD004E08FC004D08FB0015
:100F900047088316A300831246088316A200831213
:100FA00045088316A100831244088316A00083120B
:100FB000CF257A08CB007908CA007808C9007708DD
:100FC000C8004808F7004908F8004A08F9004B082B
:080FD000FA008A110A16B02C88
:101000000130D1008A117F248A15C401C301C201B5
:101010007808C1000230D1008A117F248A15C601E8
:101020007808C5000330D1008A117F248A1578081A
:10103000C700470DC800C80DFC30C805470EF700B3
:10104000F70CF70C0330F7057708D301D2008A11AB
:10105000D9248A157708D2007808D3007908D400FB
:101060007A08D500FE005408FD005308FC00520821
:10107000FB008316A301A201A1018130A0008A1107
:101080008312F6248A157A08D0007908CF007808F0
:10109000CE007708CD00D201410DD300420DD4001F
:1010A000430DD500D30DD40DD50DFC30D305450D22
:1010B000F900460DFA00F90DFA0DFC30F905790832
:1010C000D2047A08D304470EF700F70CF70C03306C
:1010D000F70577085204F7005308F8005408F900A0
:1010E0005508FA007A08DB007908DA007808D90098
:1010F0007708D800B630F700FA01F901F80158086E
:1011000059045A045B04031D8728F701942803102F
:10111000F81B9328D80DD90DDA0DDB0DFA0DF90D5A
:10112000F80DF70B8728F8137708D2007808D3005A
:101130007908D4007A08D50083105508FE005408B9
:10114000FD005308FC005208FB0050088316A30062
:1011500083124F088316A20083124E088316A10043
:1011600083124D088316A0008A118312CF258A1599
:101170007A08CC007908CB007808CA007708C90043
:101180004908F7004A08F8004B08F9004C08FA0033
:101190008A110A16962C2016200883168700000054
:1011A0008312A015200883168700000083120712FF
:1011B0002012200883168700000083128711A011D7
:1011C000200883168700C0308312D3008A116A205A
:1011D0008A152630D3008A116A208A15B830D300C8
:1011E0008A116A208A1520122008831687000000C1
:1011F0008312A0152008831687008312871DFE28FE
:101200000000022900002016200883168700000035
:101210008312201620088316870000008312A01571
:10122000200883168700000083120712201220086E
:1012300083168700000083128711A01120088316EF
:101240008700C0308312D3008A116A208A151330B8
:10125000D3008A116A208A150730D3008A116A20C8
:101260008A15201220088316870000008312A0151B
:101270002008831687008312871D3C29000040291F
:101280000000201620088316870000008312201615
:1012900020088316870000008312A01520088316FB
:1012A000870000008312071220122008831687008F
:1012B000000083128711A011200883168700C03018
:1012C0008312D3008A116A208A152630D3008A112E
:1012D0006A208A15B930D3008A116A208A15201233
:1012E00020088316870000008312A01520088316AB
:1012F00087008312871D7A2900007E2900002016AE
:10130000200883168700000083128A110A16A32C76
:101310007B080319072A8316A4002008031D9229BD
:101320008312072AA4070318A0297F30A4020318F8
:101330009B298312072A031D9F298312072AA629A6
:101340008130A407031CA6298312072A2408F7006A
:10135000F801F901FA017C08A800A8177D08A70088
:101360007E08A6001830A400A501261CCF2923085A
:10137000FA07031CC129F90A031DC129F80A031938
:10138000A5172208F907031CC829F80A0319A5178D
:101390002108FD00FD177D08F8070318A517A50D06
:1013A000F80CF90CFA0CA80CA70CA60C0310A40B53
:1013B000B4290130F707031CDF298312072AF81B21
:1013C000E929A80DFA0DF90DF80DF70BE92983129B
:1013D000072AA81FFC29FA0A031DFC29F90A031D84
:1013E000FC29F80A031DFC29F80CF90CFA0CF70A81
:1013F000031DFC298312072A7C08A5002108A506E5
:10140000A51F042AF8170C2AF8130C2A8312F701D7
:10141000F801F901FA01831683120800201620084A
:101420008316870000008312A0152008831687000A
:1014300000008312871D1A2A071220122008831623
:101440008700000083128711A011200883168700EF
:1014500080308312D3008A116A208A15E330D300CA
:101460008A116A208A15201220088316870000003E
:101470008312A0152008831687008312871D3E2A39
:101480000000422A00002016200883168700000072
:1014900064308312C6008A1131218A152016200873
:1014A0008316870000008312A0152008831687008A
:1014B0000000831207122012200883168700000004
:1014C00083128711A01120088316870081308312B0
:1014D000D3008A116A208A150130F7008A11EC20A6
:1014E0008A157808C1000130F7008A11EC208A15AE
:1014F0007808C200F7018A11EC208A157808C30029
:10150000201220088316870000008312A0152008EF
:10151000831687008312871D8B2A00008F2A000004
:10152000201620088316870000008312C20CC20C0C
:101530003F30C205C7014108C600C700C601420EC0
:10154000F700F030F70577084607C4004708C500E4
:101550000318C50A4508D3004408D2008A11D924CB
:101560008A157708C6007808C7007908C8007A0885
:10157000C900FE007908FD007808FC007708FB0030
:101580008316A301FF30A2007F30A1008E30A0009F
:101590008A118312F6248A155230FE00B830FD00FD
:1015A0002F30FC008630FB007A088316A3007908F0
:1015B000A2007808A1007708A00083128821831078
:1015C0006630FE00FD00BB30FC008430FB007A0872
:1015D0008316A3007908A2007808A1007708A0006C
:1015E0008A118312CF258A158A110A16BC2C20165F
:1015F00020088316870000008312A0152008831698
:10160000870000008312071220122008831687002B
:10161000000083128711A0112008831687008030F4
:101620008312D3008A116A208A15E530D3008A110B
:101630006A208A156430C6008A1131218A15201665
:1016400020088316870000008312A0152008831647
:10165000870000008312871D2B2B07122012200801
:1016600083168700000083128711A01120088316BB
:10167000870081308312D3008A116A208A150130D5
:10168000F7008A11EC208A157808C1000130F700B4
:101690008A11EC208A157808C200F7018A11EC2023
:1016A0008A157808C30020122008831687000000DE
:1016B0008312A0152008831687008312871D5E2BD6
:1016C0000000622B0000201620088316870000000F
:1016D0008312C20CC20C3F30C205C7014108C600CC
:1016E000C700C601420EF700F030F705770846073D
:1016F000C4004708C5000318C50A4508D3004408BC
:10170000D2008A11D9248A157708C6007808C70044
:101710007908C8007A08C900FE007908FD00780839
:10172000FC007708FB008316A301FF30A2007F3086
:10173000A1008E30A0008A118312F6248A15FE01C2
:10174000FD017A30FC008530FB007A088316A30087
:101750007908A2007808A1007708A00083128821E8
:101760008310FE01FD01C030FC008130FB007A08CF
:101770008316A3007908A2007808A1007708A000CA
:101780008A118312CF258A158A110A16C92C2016B0
:1017900020088316870000008312A01520088316F6
:1017A000870000008312071220122008831687008A
:1017B000000083128711A0112008831687003C3097
:1017C0008312D3008A116A208A154F08D3008A1128
:1017D0006A208A15201220088316870000008312D1
:1017E000A0152008831687008312871DF52B0000A3
:1017F000F92B0000201620088316870000008312B2
:10180000201620088316870000008312A0152008E8
:101810008316870000008312071220122008831607
:101820008700000083128711A0112008831687000B
:101830003D308312D3008A116A208A15F7018A117C
:10184000EC208A157808CF004F08F8000800D40172
:101850004F08D300D400D30150085307F8005408B0
:10186000FA000318FA0A7808D1007A08D200510861
:10187000F8005208F90008000730CF00C7237808A5
:10188000CB000830CF00C7237808CC004B08CF002E
:101890004C08D00027247908CE007808CD004D08E8
:1018A000F8004E08F90008008E30F7005008F800E4
:1018B0004F08F900FA01D01F622CF809F909F90A5A
:1018C0000319F80AF808031D6F2C7908F800F901CC
:1018D0000830F702F808031D6F2CF701782C03106D
:1018E000F81B762CF90DF80DF7036F2CD01FF813A9
:1018F000080073088316A0007C08A006A01F852C92
:1019000003110310F31B0314B82C7308A0007B0809
:10191000A1007208A1020319932CA01FB82C030880
:10192000013A8300B82C7C08A1007308A1020319B6
:101930009F2CA01FB82C0308013A8300B82C7D0807
:10194000A1007408A1020319AB2CA01FB82C030836
:10195000013A8300B82C7E08A1007508A102031982
:10196000B72CA01FB82C0308013A8300B82C031031
:10197000831208007110F1106408E8006308E700A2
:101980006208E6006108E5006408F5006308F400F9
:101990006208F3006108F200FE01FD01FC01FB0199
:1019A0007924031CD72C71146608803AE600F501EF
:1019B000F401F3017F30F2006808FE006708FD00C3
:1019C0006608FC006508FB007924031C082DFE0155
:1019D000FD01FC017F30FB0068088316A300831221
:1019E00067088316A200831266088316A10083127B
:1019F00065088316A0008A118312F6248A157A08D6
:101A0000E8007908E7007808E6007708E500F114B7
:101A10000A30FE008930FD003430FC007C30FB00D1
:101A200068088316A300831267088316A200831236
:101A300066088316A100831265088316A00083122E
:101A400088217708F2007808F3007908F4007A0812
:101A5000F500FE007908FD007808FC007708FB001F
:101A600068088316A300831267088316A2008312F6
:101A700066088316A100831265088316A0008312EE
:101A800088217708F2007808F3007908F4007A08D2
:101A9000F50083107A08FE007908FD007808FC0044
:101AA0007708FB007C308316A3007930A200353024
:101AB000A1008130A0008A118312CF258A157A08EF
:101AC000EC007908EB007808EA007708E9006C0878
:101AD000FE006B08FD006A08FC006908FB0068084E
:101AE0008316A300831267088316A2008312660878
:101AF0008316A100831265088316A0008312882133
:101B00007708F2007808F3007908F4007A08F50005
:101B1000FE007908FD007808FC007708FB006808E3
:101B20008316A300831267088316A2008312660837
:101B30008316A100831265088316A00083128821F2
:101B40007708F2007808F3007908F4007A08F500C5
:101B500083107A08FE007908FD007808FC007708F9
:101B6000FB003F308316A3000230A2003330A100F7
:101B70008330A0008A118312CF258A157A08EC00E1
:101B80007908EB007808EA007708E9006C08FE00A5
:101B90006B08FD006A08FC006908FB0068088316F2
:101BA000A300831267088316A200831266088316B7
:101BB000A100831265088316A0008312882177088C
:101BC000F2007808F3007908F4007A08F500FE00C6
:101BD0007908FD007808FC007708FB006808831688
:101BE000A300831267088316A20083126608831677
:101BF000A100831265088316A0008312882177084C
:101C0000F2007808F3007908F4007A08F5008310F0
:101C10007A08FE007908FD007808FC007708FB00D0
:101C200033308316A3008C30A2001E30A100833015
:101C3000A0008A118312CF258A157A08EC00790852
:101C4000EB007808EA007708E900FE01FD01FC01DD
:101C50007F30FB0068088316A30083126708831691
:101C6000A200831266088316A100831265088316FA
:101C7000A000831288217708F2007808F300790821
:101C8000F4007A08F500FE007908FD007808FC00F1
:101C90007708FB0068088316A30083126708831681
:101CA000A200831266088316A100831265088316BA
:101CB000A000831288217708F2007808F3007908E1
:101CC000F4007A08F50083107A08FE007908FD0018
:101CD0007808FC007708FB001B308316A300E43073
:101CE000A2003530A1008230A0008A118312CF25D6
:101CF0008A157A08F0007908EF007808EE00770876
:101D0000ED007008FE006F08FD006E08FC006D0815
:101D1000FB0068088316A300831267088316A200DD
:101D2000831266088316A100831265088316A0003B
:101D3000831288217708F2007808F3007908F4000C
:101D40007A08F500FE007908FD007808FC007708A5
:101D5000FB0068088316A300831267088316A2009D
:101D6000831266088316A100831265088316A000FB
:101D7000831288217708F2007808F3007908F400CC
:101D80007A08F50083107A08FE007908FD007808CB
:101D9000FC007708FB00A4308316A300DB30A20010
:101DA0006730A1008330A0008A118312CF258A15E5
:101DB0007A08F0007908EF007808EE007708ED0067
:101DC0007008FE006F08FD006E08FC006D08FB0047
:101DD00068088316A300831267088316A200831283
:101DE00066088316A100831265088316A00083127B
:101DF00088217708F2007808F3007908F4007A085F
:101E0000F500FE007908FD007808FC007708FB006B
:101E100068088316A300831267088316A200831242
:101E200066088316A100831265088316A00083123A
:101E300088217708F2007808F3007908F4007A081E
:101E4000F50083107A08FE007908FD007808FC0090
:101E50007708FB0033308316A3008C30A2001E30BD
:101E6000A1008330A0008A118312CF258A157A0839
:101E7000F0007908EF007808EE007708ED006808B8
:101E8000FE006708FD006608FC006508FB006C08A2
:101E90008316A30083126B088316A20083126A08BC
:101EA0008316A100831269088316A000831288217B
:101EB0007708F2007808F3007908F4007A08F50052
:101EC000FE007908FD007808FC007708FB00700828
:101ED0008316A30083126F088316A20083126E0874
:101EE0008316A10083126D088316A0008A11831245
:101EF000F6248A157A08EC007908EB007808EA00E5
:101F00007708E900F11CA82F8314DB30FE000F30A6
:101F1000FD004930FC007F30FB006C088316A300F5
:101F200083126B088316A20083126A088316A1002D
:101F3000831269088316A0008A118312CF258A159F
:101F40007A08EC007908EB007808EA007708E900E5
:101F5000711CAD2F6A08803AEA006908F7006A0828
:101F6000F8006B08F9006C08FA000800F701F801A6
:101F7000F901FA01D601D701D801D9015508540455
:101F8000530452040319F42F2030DA000310CE0D4D
:101F9000CF0DD00DD10DD60DD70DD80DD90D5508BB
:101FA0005902031DDD2F54085802031DDD2F53086D
:101FB0005702031DDD2F52085602031CEE2F520854
:101FC000D6025308031C530FD7025408031C540FA6
:101FD000D8025508031C550FD9020314F70DF80D4C
:101FE000F90DFA0DDA0BC62F563084008313080062
:102000005F10E0015608F5005508F4005408F3008D
:102010005308F200FE01FD01FC01FB010A128A15C2
:1020200079240A168A1103181728031D30285A0824
:10203000F5005908F4005808F3005708F200FE01B3
:10204000FD01FC01FB010A128A1579240A168A1186
:1020500003182C28031D2E2803302F28043046286F
:102060005A08F5005908F4005808F3005708F20020
:10207000FE01FD01FC01FB010A128A1579240A16F2
:102080008A11031C4528023046280130E00056081A
:10209000F5005508F4005408F3005308F200FE015F
:1020A000FD01FC01FB010A128A1579240A168A1126
:1020B000031C5E285F145408803AD4005A08F500C7
:1020C0005908F4005808F3005708F200FE01FD011A
:1020D000FC01FB010A128A1579240A168A11031CD5
:1020E00074285808803AD8005A08F5005908F400B6
:1020F0005808F3005708F200FE01FD01FC01FB0146
:102100000A128A1579240A168A11031DB028560866
:10211000F5005508F4005408F3005308F200FE01DE
:10212000FD01FC01FB010A128A1579240A168A11A5
:102130000319AF285F1CA6287F30F700C930F800CC
:102140000F30F900DB30FA006229AF287F30F7004A
:102150004930F8000F30F900DB30FA0062296229BB
:102160005608FE005508FD005408FC005308FB000B
:102170005A088316A300831259088316A2008312FB
:1021800058088316A100831257088316A0000A126C
:102190008312F6240A167A08DE007908DD00780832
:1021A000DC007708DB0001306002FC3E0318622986
:1021B000043E63295E08E4005D08E3005C08E20079
:1021C0005B08E1000A128A15BA240A168A116229EC
:1021D00062295E08E4005D08E3005C08E2005B0839
:1021E000E1000A128A15BA240A168A11E2010408CB
:1021F000E1006210831B62148314DB30FE000F3099
:10220000FD004930FC008030FB007A088316A300F3
:102210007908A2007808A1007708A0000A128312AA
:10222000CF250A1661088400831362188317622978
:1022300062295E08E4005D08E3005C08E2005B08D8
:10224000E1000A128A15BA240A168A117708E100F9
:102250007808E2007908E3007A08E400E60104085F
:10226000E5006610831B661483146408FE0063088F
:10227000FD006208FC006108FB00DB308316A30050
:102280000F30A2004930A1008030A0000A12831252
:10229000CF250A1665088400831366188317622900
:1022A00062295E08E4005D08E3005C08E2005B0868
:1022B000E1000A128A15BA240A168A118030F8063B
:1022C0006229622908000A148A100A118207DA2892
:1022D000E928192951290330CF000A128A15C7238A
:1022E0000A168A117808CB000430CF000A128A152A
:1022F000C7230A168A117808CC004B08CF004C0877
:10230000D0000A128A1527240A168A117908CE00ED
:102310007808CD004D08F8004E08F9007908C20091
:102320007808C1000A128A153C240A168A11790815
:10233000C4007808C3004408D0004308CF000A1244
:102340008A1554240A168A117708CB007808CC0025
:102350007908CD007A08CE004208D0004108CF00AD
:102360000A128A1554240A168A117708CF007808B1
:10237000D0007908D1007A08D2004E08D6004D0866
:10238000D5004C08D4004B08D3007A08DA0079084D
:10239000D9007808D8007708D70000207A08CA004A
:1023A0007908C9007808C8007708C7004A08FE0005
:1023B0004908FD004808FC004708FB00E930831687
:1023C000A3000F30A2004930A1008030A0000A1203
:1023D0008312F6240A167708CB007808CC00790817
:1023E000CD007A08CE00FE007908FD007808FC00D8
:1023F0007708FB008316A301A2013430A1008630C8
:10240000A0000A128A15831288210A168A117A08F6
:10241000CA007908C9007808C8007708C700831087
:102420004A08FE004908FD004808FC004708FB0078
:102430008316A301A2013430A1008630A0000A1245
:102440008312CF250A167A08CA007908C9007808CD
:10245000C8007708C7004708F7004808F80049088F
:10246000F9004A08FA008A110A16D42C0A128A15B1
:102470003C240A168A117908C2007808C100053088
:10248000CF000A128A15C7230A168A117808C900D4
:102490000630CF000A128A15C7230A168A11780857
:1024A000CA004908CF004A08D0000A128A1527241A
:1024B0000A168A117908CC007808CB004B08F8007E
:1024C0004C08F9007908C4007808C3004208D0001D
:1024D0004108CF000A128A1554240A168A11770877
:1024E000C9007808CA007908CB007A08CC004408F3
:1024F000D0004308CF000A128A1554240A168A1104
:102500007708CD007808CE007908CF007A08D0008F
:102510004C08D6004B08D5004A08D4004908D3001F
:102520007A08DA007908D9007808D8007708D70047
:1025300000207A08C8007908C7007808C600770824
:10254000C5004808FE004708FD004608FC00450895
:10255000FB00E9308316A3000F30A2004930A10030
:102560008030A0000A128312F6240A167708C900E8
:102570007808CA007908CB007A08CC00FE007908F8
:10258000FD007808FC007708FB008316A301A20178
:102590003430A1008630A0000A128A1583128821E7
:1025A0000A168A117A08C8007908C7007808C60098
:1025B0007708C50083104808FE004708FD0046085C
:1025C000FC004508FB008316A301A2013430A100E2
:1025D0008630A0000A128312CF250A167A08C80096
:1025E0007908C7007808C6007708C5004508F700D5
:1025F0004608F8004708F9004808FA008A110A1648
:10260000DD2C0408C6004508C8000319262B440821
:10261000FE004308FD004208FC004108FB00831651
:10262000A301A2012030A1008230A0000A128A1565
:10263000831288210A168A117A08C4007908C30017
:102640007808C2007708C100C80B072B4408D100E6
:102650004308D0004208CF004108CE004E08B63CE7
:10266000CE00FA014F08D200CF170310CF0CD00CC8
:10267000D10CFA0CF90CF80CF70CCE0B352BD21F41
:102680004C2BF709F809F909FA09F70A0319F80AAE
:102690000319F90A0319FA0A7A08C4007908C30071
:1026A0007808C2007708C100C41F632BC603C61692
:1026B000C109C209C309C409C10A0319C20A03191D
:1026C000C30A0319C40A3B30CD009A30CC00CA308B
:1026D000CB00CA010A30C80045080319C60A4408DD
:1026E000D1004308D0004208CF004108CE004D0879
:1026F000D5004C08D4004B08D3004A08D2000A1277
:102700008A15B6270A168A110008C100840A000833
:10271000C200840A0008C300840A0008C400FD3017
:102720008407F708031DA72B450A48020319A72BA6
:1027300046080319A92B0F3948020319A12B0318C6
:10274000E12BC61BE12B461BA92B2030DB2B2030B5
:10275000C605C61EB92BC6124508031DC603770859
:10276000C6002D30CE000A120D220A164608F700C8
:10277000C60145084802031DC92B7708C6002E3044
:10278000CE000A120D220A164608F7002030C605B0
:1027900000303030C61EDB2BC6124508031DC603B1
:1027A0007708C6002D30CE000A120D220A16460800
:1027B000F700C6013030F7077708CE000A120D2265
:1027C0000A164D08D1004C08D0004B08CF004A082B
:1027D000CE00D501D401D3010A30D2000A128A15E5
:1027E000B6270A168A117A08CD007908CC00780835
:1027F000CB007708CA00C80B6F2B08008401831335
:102800001F308305713083168F000F088312A013C9
:102810002008831687008312871783160317090879
:10282000C039890003131F129F120030031788005C
:102830008312870188018901FF300313A000A101E1
:10284000A201831603170908C039890003131F1258
:102850009F12003003178800831203131F139F1366
:1028600083169F1383121F149412A012200883163C
:102870008700831220162008831687008312A01178
:1028800020088316870001308312940000308316DD
:1028900094000108C739283881000F308312900056
:1028A0000030F80092000030831692008312201549
:1028B0002008831687008312970183169B019C01D1
:1028C00001309D00831203178701880189010313DA
:1028D000BE01BD01BC01BB010A12B4280A16BF012A
:1028E0003F08C1000A1245290A160A12C62A0A160A
:1028F0000A12222B0A16C0010A12D42B0A16023021
:10290000C100FA30C6000A1231210A16C10B812C0F
:102910000A12152F0A167A08A6007908A500780869
:10292000A4007708A3000A128A1500280A168A1143
:102930007A08AA007908A9007808A8007708A700F3
:102940000A128A15CB280A168A110230C100FA3001
:10295000C6000A1231210A16C10BA72C0A12752FC4
:102960000A167A08AE007908AD007808AC0077083E
:10297000AB000A128A150E2A0A168A117A08B200CA
:102980007908B1007808B0007708AF000A128A15FC
:10299000F72A0A168A117A08B6007908B50078086D
:1029A000B4007708B3006B297A08BA007908B90037
:1029B0007808B8007708B700362A7A08BE00790888
:1029C000BD007808BC007708BB002030CE000A129A
:1029D0000D220A16053084002608C4002508C3000D
:1029E0002408C2002308C1000230C50001232030A2
:1029F000CE000A120D220A16063084002E08C400EA
:102A00002D08C3002C08C2002B08C1000230C500ED
:102A100001232030CE000A120D220A16083084004D
:102A20002A08C4002908C3002808C2002708C100DA
:102A30000230C50001232030CE000A120D220A16F2
:102A4000053084003208C4003108C3003008C200D9
:102A50002F08C1000230C50001232030CE000A1229
:102A60000D220A16053084003608C4003508C3005C
:102A70003408C2003308C1000230C50001232030F1
:102A8000CE000A120D220A16043084003A08C4004F
:102A90003908C3003808C2003708C1000230C50039
:102AA00001232030CE000A120D220A1605308400C0
:102AB0003E08C4003D08C3003C08C2003B08C100FA
:102AC0000230C50001232030CE000A120D220A1662
:102AD0000A30CE000A120D220A160D30CE000A125C
:102AE0000D220A160430C100FA30C6000A12312144
:0A2AF0000A16C10B742D7B2C630045
:04400E00F52CFF3F4F
:00000001FF
;PIC16F887
;CRC=7628 CREATED="14-V-13 21:51"
;CRC=4A7E CREATED="15-V-13 15:08"
/Designs/Measuring_instruments/AWS01B/SW/PIC16F887/main.pjt
17,9 → 17,20
0=0000 %S 0 0 796 451 3 0
[Opened Files]
1=main.c
2=..\..\..\..\..\..\svnMLAB_E\projekty\jacho\Dip_prace\SW\met_cast\main.c
3=
4=
2=main.h
3=C:\Program Files (x86)\PICC\devices\16F887.h
4=C:\Program Files (x86)\PICC\drivers\math.h
5=C:\Program Files (x86)\PICC\drivers\string.h
6=C:\Program Files (x86)\PICC\drivers\stddef.h
7=C:\Program Files (x86)\PICC\drivers\ctype.h
8=SHT25.h
9=SHT25.c
10=MPL3115.h
11=MPL3115.c
12=HMC5883L.h
13=HMC5883L.c
14=
15=
[Target Data]
OptionString=-p +FM
FileList=Z:\home\kaklik\svnMLAB\Designs\Measuring_instruments\AWS01B\SW\PIC16F887\main.c
/Modules/Sensors/MAG01A/SW/PIC16F887/main.bak
1,42 → 1,32
//Magnetometr Jan Chroust 2013
//vypise hodnoty jednotlivych os
 
#include "main.h"
#include "HMC5883L.h"
#define EEPROM_SDA PIN_B0
#define EEPROM_SCL PIN_B1
#use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL)
#use rs232(baud=9600,parity=N,xmit=PIN_B3,rcv=PIN_B2,bits=8) //rcv TXD xmit RXD
 
 
void main()
{
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
 
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
printf("Magnetometr: \r\n",);
printf("(c)mlab JACHO 2013: \r\n",);
printf("Vysledky z jednotlivych os:\r\n",);
signed int16 X,Y,Z;
 
printf("Magnetometr: \r\n",);
printf("(c)mlab JACHO 2013: \r\n",);
printf("Vysledky z jednotlivych os:\r\n",);
signed int16 X,Y,Z;
 
 
while(true)
{
printf("Vysledky z jednotlivych os:\r\n",);
X=mag_readX();
Y=mag_readY();
Z=mag_readZ();
printf("X: %Ld \r\n", X);
printf("Y %Ld \r\n", Y);
printf("Z: %Ld \r\n", Z);
Delay_ms(2000);
while(true)
{
printf("Vysledky z jednotlivych os:\r\n",);
X = mag_readX();
Y = mag_readY();
Z = mag_readZ();
printf("X: %Ld \r\n", X);
printf("Y %Ld \r\n", Y);
printf("Z: %Ld \r\n", Z);
Delay_ms(500);
}
}
}
/Modules/Sensors/MAG01A/SW/PIC16F887/main.c
1,42 → 1,31
//Magnetometr Jan Chroust 2013
//vypise hodnoty jednotlivych os
 
#include "main.h"
#include "HMC5883L.h"
 
#define EEPROM_SDA PIN_B0
#define EEPROM_SCL PIN_B1
#use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL)
#use rs232(baud=9600,parity=N,xmit=PIN_B3,rcv=PIN_B2,bits=8) //rcv TXD xmit RXD
 
#include "HMC5883L.h"
void main()
{
signed int16 X,Y,Z;
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
 
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
set_mag();
 
printf("Magnetometr: \r\n",);
printf("(c)mlab JACHO 2013: \r\n",);
printf("Vysledky z jednotlivych os:\r\n",);
signed int16 X,Y,Z;
printf("Magnetometr: \r\n",);
printf("(c)mlab JACHO 2013: \r\n",);
printf("X, Y, Z \r\n",);
 
 
while(true)
{
printf("Vysledky z jednotlivych os:\r\n",);
X=mag_readX();
Y=mag_readY();
Z=mag_readZ();
printf("X: %Ld \r\n", X);
printf("Y %Ld \r\n", Y);
printf("Z: %Ld \r\n", Z);
Delay_ms(2000);
while(true)
{
X = mag_readX();
Y = mag_readY();
Z = mag_readZ();
printf("%4Ld %4Ld %4Ld \r\n", X, Y, Z);
Delay_ms(50);
}
}
}
/Modules/Sensors/MAG01A/SW/PIC16F887/main.cof
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Modules/Sensors/MAG01A/SW/PIC16F887/main.err
1,2 → 1,2
Memory usage: ROM=10% RAM=2% - 6%
Memory usage: ROM=12% RAM=3% - 6%
0 Errors, 0 Warnings.
/Modules/Sensors/MAG01A/SW/PIC16F887/main.esym
1,7 → 1,7
D G "__PCM__" 0 44 ""4.106""
D G "__DEVICE__" 0 44 "887"
D G "__DATE__" 0 44 ""16-4-13""
D G "__TIME__" 0 44 ""18:24:02"" "Magnetometr Jan Chroust 2013"
D G "__PCM__" 0 33 ""4.106""
D G "__DEVICE__" 0 33 "887"
D G "__DATE__" 0 33 ""15-V-13""
D G "__TIME__" 0 33 ""16:26:21"" "Standard Header file for the PIC16F887 device ////////////////"
d G "PIN_A0" 2 20 "40"
d G "PIN_A1" 2 21 "41"
d G "PIN_A2" 2 22 "42"
273,8 → 273,6
d G "INT_RB5" 2 418 "0x0200B08"
d G "INT_RB6" 2 419 "0x0400B08"
d G "INT_RB7" 2 420 "0x0800B08"
D G "EEPROM_SDA" 0 6 "PIN_B0"
D G "EEPROM_SCL" 0 7 "PIN_B1"
D G "MAG_ADDR_R" 3 1 "0x3D" "addresa pro cteni"
D G "MAG_ADDR_W" 3 2 "0x3C"
D G "MAG_ROZ088" 3 7 "0x00"
289,11 → 287,11
C L "set_mag" 4 3 1 "FUNCTION"
C L "set_mag" 4 3 1 "FUNCTION"
C L "set_mag" 4 3 1 "FUNCTION"
F G "set_mag_roz" 4 26 "void()"
F G "set_mag_roz" 4 26 "void(int8 h)"
V L "h" 4 26 "int8" "nastavy rozsah"
F G "mag_read" 4 44 "int8()"
F G "mag_read" 4 44 "int8(int8 reg)"
V L "reg" 4 44 "int8" "pro cteni reg"
F G "mag_vypocet" 4 58 "sint16()"
F G "mag_vypocet" 4 58 "sint16(int8 h,int8 l)"
V L "h" 4 58 "int8"
V L "l" 4 58 "int8" "prepocet na 16bit cislo"
V L "x" 4 60 "sint16"
301,7 → 299,7
V L "h" 4 68 "int8"
V L "l" 4 68 "int8"
V L "x" 4 69 "sint16"
F G "mag_readY" 4 78 "sint16(int8 )" "nacteni osy x"
F G "mag_readY" 4 78 "sint16()" "nacteni osy x"
V L "h" 4 80 "int8"
V L "l" 4 80 "int8"
V L "x" 4 81 "sint16"
309,11 → 307,11
V L "h" 4 92 "int8"
V L "l" 4 92 "int8"
V L "x" 4 93 "sint16"
F G "MAIN" 0 12 "void()"
C L "MAIN" 0 22 1 "FUNCTION"
V L "x" 0 27 "sint16"
V L "Y" 0 27 "sint16"
V L "Z" 0 27 "sint16"
F G "MAIN" 0 4 "void()"
V L "x" 0 6 "sint16"
V L "Y" 0 6 "sint16"
V L "Z" 0 6 "sint16"
C L "MAIN" 0 14 1 "FUNCTION"
F B "reset_cpu" 0 0
F B "abs" 1 0
F B "sleep_ulpwu" 1 0
/Modules/Sensors/MAG01A/SW/PIC16F887/main.h
1,19 → 1,21
#include <16F887.h>
#device adc=8
 
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC //Internal RC Osc
#FUSES NOPUT //No Power Up Timer
#FUSES MCLR //Master Clear pin enabled
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOCPD //No EE protection
#FUSES NOBROWNOUT //No brownout reset
#FUSES IESO //Internal External Switch Over mode enabled
#FUSES FCMEN //Fail-safe clock monitor enabled
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOWRT //Program memory not write protected
#FUSES BORV40 //Brownout reset at 4.0V
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC //Internal RC Osc
#FUSES NOPUT //No Power Up Timer
#FUSES MCLR //Master Clear pin enabled
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOCPD //No EE protection
#FUSES NOBROWNOUT //No brownout reset
#FUSES IESO //Internal External Switch Over mode enabled
#FUSES FCMEN //Fail-safe clock monitor enabled
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOWRT //Program memory not write protected
#FUSES BORV40 //Brownout reset at 4.0V
 
#use delay(clock=8000000)
#use i2c(master, sda=PIN_C4, scl=PIN_C3)
#use rs232(baud=9600,parity=N,xmit=PIN_C7,rcv=PIN_C6,bits=8) //rcv TXD xmit RXD
 
/Modules/Sensors/MAG01A/SW/PIC16F887/main.hex
1,103 → 1,126
:1000000002308A00372A0000CD306737653AEF3674
:1000000003308A00172B0000CD306737653AEF3692
:10001000653A721D20100D050000A831A936EC309C
:100020006210CA2043244F103218B1193A10A006AA
:100030000A00D63C73366532EB3C203D20356532F4
:10004000EE377436693BF9316810EF39BA060A00A9
:10005000D63C73366532EB3C203D20356532EE37B9
:100060007436693BF9316810EF39BA060A00831615
:100070008611831286110830F8003E280000F81718
:100080004F28F813B00C03188615031C8611781737
:100090004F287813F80B42284D28000086153F3072
:1000A0008400840B51280000F81B4128781B492844
:1000B0000800831603178C170C140000000083122D
:1000C0000C087F3903199D280313A70003170D0897
:1000D0000313A80003170F080313A9002708B00093
:1000E0003720280803178D000313290803178F00F2
:1000F00083168C170C140000000083120C0D0E0DDB
:100100007F3903199D280313A70003170D08031354
:10011000A80003170F080313A9002708B000372011
:10012000280803178D000313290803178F008D0A71
:1001300003198F0A03135928031703130800083003
:10014000F800000086108316861000008312AC0DA4
:100150000610031CAE288316061483120318B32856
:10016000831606108312831686148312861CB62803
:10017000F80BA128000086108316861000000614D4
:100180000000000086148312861CC428F8010000B9
:1001900006187814861083168610831206108316AC
:1001A000061083120800831606140000861400004F
:1001B0008312061083160610000083128610831621
:1001C00086103C308312AC009F202B08AC009F208F
:1001D00083160610000086148312861CED2800008A
:1001E000F12800008316061400000614000086148F
:1001F000000083120610831606100000831286107A
:10020000831686103D308312AC009F20F701083022
:10021000AD007708AE008316061400008614831222
:10022000861C102906180314061C0310F80D000084
:100230008316861083128610AD0B0B2983160614C5
:100240000000831206102E080319292983160610B0
:1002500083120000831686148312861C2D29000049
:10026000861083168610000083120610831606106F
:1002700078088312AB002B08F8000800B0012B08A7
:10028000AF00B000AF012C082F07F8003008FA00CB
:100290000318FA0A7808AD007A08AE002D08F800B5
:1002A0002E08F90008000330AB00D3207808A7001F
:1002B0000430AB00D3207808A8002708AB0028083A
:1002C000AC003E217908AA007808A9002908F800A6
:1002D0002A08F9008A110A12B52A0730AB00D32088
:1002E0007808A7000830AB00D3207808A8002708BA
:1002F000AB002808AC003E217908AA007808A900C4
:100300002908F8002A08F9008A110A12BA2A0530C9
:10031000AB00D3207808A7000630AB00D3207808C4
:10032000A8002708AB002808AC003E217908AA00E5
:100330007808A9002908F8002A08F9008A110A1289
:10034000BF2AAF010408AE002F10831B2F14A81F73
:10035000B129AE172E1EAE0AA709A809A70A0319CC
:10036000A80A280EF038AA00AA07E23EAB00323EE7
:10037000AD0028080F39AB07AB07AD07E93EAC006D
:10038000AC07AC07270E0F39AC07AD07AC0DAD0DB0
:10039000AD09AD0D27080F39AD07AA0D0730A9002B
:1003A0000A30AD07AC03031CD129AC07AB03031C17
:1003B000D529AB07AA03031CD929AA07A903031C43
:1003C000DD2929308400831307302E052E13840382
:1003D0002E05031DF2292E1A840A2E1AF229203026
:1003E000F7000F2A84072D30040203192E17000886
:1003F000F700031D032A2E1B032A2E1A1D2AAE19ED
:10040000032A20300E2AAE1F0B2A2D30F70084035A
:100410002E13AE130F2AAE152E123030F707A80197
:100420000408A7002810831B28147708B000372081
:1004300027088400831328188317840A2E1FF329A2
:10044000080028308400831300080319342A02307E
:10045000F800F701F70B2A2AF80B292A9730F70042
:10046000F70B302A800B272A8A110A12102B8401DD
:1004700083131F308305713083168F000F08861198
:1004800083128615831603170908C03989000313E0
:100490001F129F1200300317880083128701880102
:1004A0008901FF300313A000831603170908C03920
:1004B000890003131F129F12003003178800831254
:1004C00003131F139F1383169F1383121F14941279
:1004D000A012200883168700831220162008831696
:1004E00087008312A0112008831687000130831231
:1004F00094000030831694000108C7390838810041
:10050000831290010030F8009200003083169200B0
:100510008312201520088316870083129701831603
:100520009B019C0101309D00831203178701880104
:10053000890104308D0000308F00031359200D30E5
:1005400003178D0000308F00031359201930031753
:100550008D0000308F0003135920283003178D00C1
:1005600000308F000313592053297908A20078081E
:10057000A1006D297908A4007808A30087297908CB
:10058000A6007808A5005830B00037203A30B000F7
:1005900037202030B0003720103084002208A80017
:1005A0002108A700A1212030B00037200D30B00075
:1005B00037200A30B00037205930B00037202030C3
:1005C000B0003720103084002408A8002308A700BA
:1005D000A1212030B00037200D30B00037200A3084
:1005E000B00037205A30B00037203A30B000372002
:1005F0002030B0003720103084002608A8002508DD
:10060000A700A1212030B00037200D30B0003720E6
:100610000A30B00037200830A700FA30A800212A9D
:08062000A70B0D2BAD2A6300AE
:100030000A005816A02C2C105A100D05000108308B
:10004000F80000008711A011200883168700000027
:100050008312AC0D0712031C3328201620088316C8
:10006000870037288312201220088316870000009B
:100070008312A0152008831687008312871D3E284F
:10008000F80B212800008711A01120088316870093
:10009000000083122016200883168700000000004D
:1000A0008312A0152008831687008312871D562807
:1000B000F8010000071A78148711A0112008831690
:1000C00087008312071220122008831687008312EC
:1000D0000800273084008313000803197C280230AD
:1000E000F800F701F70B7228F80B71289730F7002A
:1000F000F70B7828800B6F2808002016200883163D
:10010000870000008312A0152008831687000000D6
:100110008312071220122008831687000000831222
:100120008711A0112008831687003C308312AC0091
:100130001F20AC011F207030AC001F2020122008AF
:100140008316870000008312A015200883168700FD
:100150008312871DA9280000AD2800002016200862
:1001600083168700000006308312A700692020163E
:1001700020088316870000008312A015200883162C
:1001800087000000831207122012200883168700C0
:10019000000083128711A0112008831687003C30CD
:1001A0008312AC001F200130AC001F20E030AC00F7
:1001B0001F20201220088316870000008312A0153C
:1001C0002008831687008312871DE4280000E82892
:1001D00000002016200883168700000006308312D6
:1001E000A7006920201620088316870000008312CC
:1001F000A015200883168700000083120712201222
:10020000200883168700000083128711A0112008A0
:10021000831687003C308312AC001F200230AC00F4
:100220001F20AC011F202012200883168700000029
:100230008312A0152008831687008312871D1E29AC
:1002400000002229000020162008831687000000E5
:1002500006308312A70069208A110A127F2BA0138F
:10026000200883168700831287130830F800382986
:100270000000F8174929F813B00C03188717031C5E
:100280008713781749297813F80B3C294729000070
:1002900087173F308400840B4B290000F81B3B2953
:1002A000781B43290800831603178C170C140000D1
:1002B000000083120C087F39031997290313A70044
:1002C00003170D080313A80003170F080313A90051
:1002D0002708B0002F21280803178D0003132908D1
:1002E00003178F0083168C170C1400000000831274
:1002F0000C0D0E0D7F39031997290313A70003175F
:100300000D080313A80003170F080313A9002708FB
:10031000B0002F21280803178D00031329080317A5
:100320008F008D0A03198F0A031353290317031330
:100330000800201620088316870000008312A015ED
:10034000200883168700000083120712201220085D
:1003500083168700000083128711A01120088316DE
:1003600087003C308312AC001F202B08AC001F20FC
:10037000201220088316870000008312A015200891
:10038000831687008312871DC3290000C729000038
:1003900020162008831687000000831220162008EC
:1003A0008316870000008312A0152008831687009B
:1003B0000000831207122012200883168700000015
:1003C00083128711A0112008831687003D30831205
:1003D000AC001F20F7010830AD007708AE002016F2
:1003E00020088316870000008312A01520088316BA
:1003F00087008312871DFA29071A0314071E0310AA
:10040000F80D0000A01120088316870083128711C1
:10041000AD0BEF29201620088316870000008312F9
:1004200007122E080319192A2012200883168700A4
:1004300083120000A0152008831687008312871DF1
:100440001F2A00008711A0112008831687000000D2
:10045000831207122012200883168700780883125F
:10046000AB002B08F8000800B0012B08AF00B0006B
:10047000AF012C082F07F8003008FA000318FA0A19
:100480007808AD007A08AE002D08F8002E08F900B3
:1004900008000330AB0099217808A7000430AB00B6
:1004A00099217808A8002708AB002808AC0034225E
:1004B0007908AA007808A9002908F8002A08F90094
:1004C0008A110A12952B0730AB0099217808A700F2
:1004D0000830AB0099217808A8002708AB0028084D
:1004E000AC0034227908AA007808A9002908F8008D
:1004F0002A08F9008A110A129A2B0530AB009921BB
:100500007808A7000630AB0099217808A8002708D2
:10051000AB002808AC0034227908AA007808A900AA
:100520002908F8002A08F9008A110A129F2BAF0146
:100530000408AE002F10831B2F14A81FA72AAE1784
:100540002E1EAE0AA709A809A70A0319A80A280E91
:10055000F038AA00AA07E23EAB00323EAD00280800
:100560000F39AB07AB07AD07E93EAC00AC07AC07F2
:10057000270E0F39AC07AD07AC0DAD0DAD09AD0DB4
:1005800027080F39AD07AA0D0730A9000A30AD07BB
:10059000AC03031CC72AAC07AB03031CCB2AAB0775
:1005A000AA03031CCF2AAA07A903031CD32A2930B4
:1005B0008400831307302E052E1384032E05031D9C
:1005C000E82A2E1A840A2E1AE82A2030F700052B72
:1005D00084072D30040203192E170008F700031DAD
:1005E000F92A2E1BF92A2E1A132BAE19F92A2030BC
:1005F000042BAE1F012B2D30F70084032E13AE13F6
:10060000052BAE152E123030F707A8010408A700FD
:100610002810831B28147708B0002F212708840096
:10062000831328188317840A2E1FE92A08008401DF
:1006300083131F308305713083168F000F088312D8
:10064000A0132008831687008312871783160317C9
:100650000908C039890003131F129F1200300317C5
:1006600088008312870188018901FF300313A000ED
:10067000831603170908C039890003131F129F123C
:10068000003003178800831203131F139F13831670
:100690009F1383121F149412A01220088316870040
:1006A000831220162008831687008312A0112008C9
:1006B0008316870001308312940000308316940063
:1006C0000108C73908388100831290010030F80012
:1006D00092000030831692008312201520088316A2
:1006E00087008312970183169B019C0101309D00B6
:1006F0008312031787018801890103137D280430C1
:1007000003178D0000308F00031353210D300317A2
:100710008D0000308F0003135321193003178D0013
:1007200000308F0003135321492A7908A20078086A
:10073000A100632A7908A4007808A3007D2A79081B
:10074000A6007808A500023084002208A80021082D
:10075000A70097222030B0002F2102308400240807
:10076000A8002308A70097222030B0002F210230D4
:1007700084002608A8002508A70097222030B00092
:100780002F210D30B0002F210A30B0002F21323040
:08079000A7006920942B63000F
:04400E00F52CFF3F4F
:00000001FF
;PIC16F887
;CRC=8247 CREATED="16-4-13 18:24"
;CRC=F162 CREATED="15-V-13 16:26"
/Modules/Sensors/MAG01A/SW/PIC16F887/main.lst
1,21 → 1,18
CCS PCM C Compiler, Version 4.106, 47914 16-4-13 18:24
CCS PCM C Compiler, Version 4.106, 47914 15-V-13 16:26
 
Filename: c:\users\honza\documents\pic\i2c_magnetometr\main.lst
Filename: Z:\home\kaklik\svnMLAB\Modules\Sensors\MAG01A\SW\PIC16F887\main.lst
 
ROM used: 788 words (10%)
ROM used: 972 words (12%)
Largest free fragment is 2048
RAM used: 7 (2%) at main() level
RAM used: 12 (3%) at main() level
22 (6%) worst case
Stack: 3 locations
 
*
0000: MOVLW 02
0000: MOVLW 03
0001: MOVWF 0A
0002: GOTO 237
0002: GOTO 317
0003: NOP
.................... //Magnetometr Jan Chroust 2013
.................... //vypise hodnoty jednotlivych os
....................
.................... #include "main.h"
.................... #include <16F887.h>
.................... //////// Standard Header file for the PIC16F887 device ////////////////
24,190 → 21,226
....................
.................... #device adc=8
....................
.................... #FUSES NOWDT //No Watch Dog Timer
.................... #FUSES INTRC //Internal RC Osc
.................... #FUSES NOPUT //No Power Up Timer
.................... #FUSES MCLR //Master Clear pin enabled
.................... #FUSES NOPROTECT //Code not protected from reading
.................... #FUSES NOCPD //No EE protection
.................... #FUSES NOBROWNOUT //No brownout reset
.................... #FUSES IESO //Internal External Switch Over mode enabled
.................... #FUSES FCMEN //Fail-safe clock monitor enabled
.................... #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
.................... #FUSES NODEBUG //No Debug mode for ICD
.................... #FUSES NOWRT //Program memory not write protected
.................... #FUSES BORV40 //Brownout reset at 4.0V
.................... #FUSES NOWDT //No Watch Dog Timer
.................... #FUSES INTRC //Internal RC Osc
.................... #FUSES NOPUT //No Power Up Timer
.................... #FUSES MCLR //Master Clear pin enabled
.................... #FUSES NOPROTECT //Code not protected from reading
.................... #FUSES NOCPD //No EE protection
.................... #FUSES NOBROWNOUT //No brownout reset
.................... #FUSES IESO //Internal External Switch Over mode enabled
.................... #FUSES FCMEN //Fail-safe clock monitor enabled
.................... #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
.................... #FUSES NODEBUG //No Debug mode for ICD
.................... #FUSES NOWRT //Program memory not write protected
.................... #FUSES BORV40 //Brownout reset at 4.0V
....................
.................... #use delay(clock=8000000)
*
0221: MOVLW 28
0222: MOVWF 04
0223: BCF 03.7
0224: MOVF 00,W
0225: BTFSC 03.2
0226: GOTO 234
0227: MOVLW 02
0228: MOVWF 78
0229: CLRF 77
022A: DECFSZ 77,F
022B: GOTO 22A
022C: DECFSZ 78,F
022D: GOTO 229
022E: MOVLW 97
022F: MOVWF 77
0230: DECFSZ 77,F
0231: GOTO 230
0232: DECFSZ 00,F
0233: GOTO 227
0234: BCF 0A.3
0235: BCF 0A.4
0236: GOTO 310 (RETURN)
....................
....................
....................
.................... #define EEPROM_SDA PIN_B0
.................... #define EEPROM_SCL PIN_B1
.................... #use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL)
0069: MOVLW 27
006A: MOVWF 04
006B: BCF 03.7
006C: MOVF 00,W
006D: BTFSC 03.2
006E: GOTO 07C
006F: MOVLW 02
0070: MOVWF 78
0071: CLRF 77
0072: DECFSZ 77,F
0073: GOTO 072
0074: DECFSZ 78,F
0075: GOTO 071
0076: MOVLW 97
0077: MOVWF 77
0078: DECFSZ 77,F
0079: GOTO 078
007A: DECFSZ 00,F
007B: GOTO 06F
007C: RETURN
.................... #use i2c(master, sda=PIN_C4, scl=PIN_C3)
*
009F: MOVLW 08
00A0: MOVWF 78
00A1: NOP
00A2: BCF 06.1
00A3: BSF 03.5
00A4: BCF 06.1
00A5: NOP
00A6: BCF 03.5
00A7: RLF 2C,F
00A8: BCF 06.0
00A9: BTFSS 03.0
00AA: GOTO 0AE
00AB: BSF 03.5
00AC: BSF 06.0
00AD: BCF 03.5
00AE: BTFSC 03.0
00AF: GOTO 0B3
00B0: BSF 03.5
00B1: BCF 06.0
00B2: BCF 03.5
00B3: BSF 03.5
00B4: BSF 06.1
00B5: BCF 03.5
00B6: BTFSS 06.1
00B7: GOTO 0B6
00B8: DECFSZ 78,F
00B9: GOTO 0A1
00BA: NOP
00BB: BCF 06.1
00BC: BSF 03.5
00BD: BCF 06.1
00BE: NOP
00BF: BSF 06.0
00C0: NOP
00C1: NOP
00C2: BSF 06.1
00C3: BCF 03.5
00C4: BTFSS 06.1
00C5: GOTO 0C4
00C6: CLRF 78
00C7: NOP
00C8: BTFSC 06.0
00C9: BSF 78.0
00CA: BCF 06.1
00CB: BSF 03.5
00CC: BCF 06.1
00CD: BCF 03.5
00CE: BCF 06.0
00CF: BSF 03.5
00D0: BCF 06.0
00D1: BCF 03.5
00D2: RETURN
001F: MOVLW 08
0020: MOVWF 78
0021: NOP
0022: BCF 07.3
0023: BCF 20.3
0024: MOVF 20,W
0025: BSF 03.5
0026: MOVWF 07
0027: NOP
0028: BCF 03.5
0029: RLF 2C,F
002A: BCF 07.4
002B: BTFSS 03.0
002C: GOTO 033
002D: BSF 20.4
002E: MOVF 20,W
002F: BSF 03.5
0030: MOVWF 07
0031: GOTO 037
0032: BCF 03.5
0033: BCF 20.4
0034: MOVF 20,W
0035: BSF 03.5
0036: MOVWF 07
0037: NOP
0038: BCF 03.5
0039: BSF 20.3
003A: MOVF 20,W
003B: BSF 03.5
003C: MOVWF 07
003D: BCF 03.5
003E: BTFSS 07.3
003F: GOTO 03E
0040: DECFSZ 78,F
0041: GOTO 021
0042: NOP
0043: BCF 07.3
0044: BCF 20.3
0045: MOVF 20,W
0046: BSF 03.5
0047: MOVWF 07
0048: NOP
0049: BCF 03.5
004A: BSF 20.4
004B: MOVF 20,W
004C: BSF 03.5
004D: MOVWF 07
004E: NOP
004F: NOP
0050: BCF 03.5
0051: BSF 20.3
0052: MOVF 20,W
0053: BSF 03.5
0054: MOVWF 07
0055: BCF 03.5
0056: BTFSS 07.3
0057: GOTO 056
0058: CLRF 78
0059: NOP
005A: BTFSC 07.4
005B: BSF 78.0
005C: BCF 07.3
005D: BCF 20.3
005E: MOVF 20,W
005F: BSF 03.5
0060: MOVWF 07
0061: BCF 03.5
0062: BCF 07.4
0063: BCF 20.4
0064: MOVF 20,W
0065: BSF 03.5
0066: MOVWF 07
0067: BCF 03.5
0068: RETURN
*
0107: MOVLW 08
0108: MOVWF 2D
0109: MOVF 77,W
010A: MOVWF 2E
010B: BSF 03.5
010C: BSF 06.0
010D: NOP
010E: BSF 06.1
010F: BCF 03.5
0110: BTFSS 06.1
0111: GOTO 110
0112: BTFSC 06.0
0113: BSF 03.0
0114: BTFSS 06.0
0115: BCF 03.0
0116: RLF 78,F
0117: NOP
0118: BSF 03.5
0119: BCF 06.1
011A: BCF 03.5
011B: BCF 06.1
011C: DECFSZ 2D,F
011D: GOTO 10B
011E: BSF 03.5
011F: BSF 06.0
0120: NOP
0121: BCF 03.5
0122: BCF 06.0
0123: MOVF 2E,W
0124: BTFSC 03.2
0125: GOTO 129
0126: BSF 03.5
0127: BCF 06.0
0128: BCF 03.5
0129: NOP
012A: BSF 03.5
012B: BSF 06.1
012C: BCF 03.5
012D: BTFSS 06.1
012E: GOTO 12D
012F: NOP
0130: BCF 06.1
01EB: MOVLW 08
01EC: MOVWF 2D
01ED: MOVF 77,W
01EE: MOVWF 2E
01EF: BSF 20.4
01F0: MOVF 20,W
01F1: BSF 03.5
01F2: MOVWF 07
01F3: NOP
01F4: BCF 03.5
01F5: BSF 20.3
01F6: MOVF 20,W
01F7: BSF 03.5
01F8: MOVWF 07
01F9: BCF 03.5
01FA: BTFSS 07.3
01FB: GOTO 1FA
01FC: BTFSC 07.4
01FD: BSF 03.0
01FE: BTFSS 07.4
01FF: BCF 03.0
0200: RLF 78,F
0201: NOP
0202: BCF 20.3
0203: MOVF 20,W
0204: BSF 03.5
0205: MOVWF 07
0206: BCF 03.5
0207: BCF 07.3
0208: DECFSZ 2D,F
0209: GOTO 1EF
020A: BSF 20.4
020B: MOVF 20,W
020C: BSF 03.5
020D: MOVWF 07
020E: NOP
020F: BCF 03.5
0210: BCF 07.4
0211: MOVF 2E,W
0212: BTFSC 03.2
0213: GOTO 219
0214: BCF 20.4
0215: MOVF 20,W
0216: BSF 03.5
0217: MOVWF 07
0218: BCF 03.5
0219: NOP
021A: BSF 20.3
021B: MOVF 20,W
021C: BSF 03.5
021D: MOVWF 07
021E: BCF 03.5
021F: BTFSS 07.3
0220: GOTO 21F
0221: NOP
0222: BCF 07.3
0223: BCF 20.3
0224: MOVF 20,W
0225: BSF 03.5
0226: MOVWF 07
0227: NOP
0228: BCF 03.5
0229: BCF 07.4
022A: BCF 20.4
022B: MOVF 20,W
022C: BSF 03.5
022D: MOVWF 07
.................... #use rs232(baud=9600,parity=N,xmit=PIN_C7,rcv=PIN_C6,bits=8) //rcv TXD xmit RXD
*
012F: BCF 20.7
0130: MOVF 20,W
0131: BSF 03.5
0132: BCF 06.1
0133: NOP
0134: BCF 03.5
0135: BCF 06.0
0136: BSF 03.5
0137: BCF 06.0
.................... #use rs232(baud=9600,parity=N,xmit=PIN_B3,rcv=PIN_B2,bits=8) //rcv TXD xmit RXD
*
0037: BSF 03.5
0038: BCF 06.3
0039: BCF 03.5
003A: BCF 06.3
003B: MOVLW 08
003C: MOVWF 78
003D: GOTO 03E
003E: NOP
003F: BSF 78.7
0040: GOTO 04F
0041: BCF 78.7
0042: RRF 30,F
0043: BTFSC 03.0
0044: BSF 06.3
0045: BTFSS 03.0
0046: BCF 06.3
0047: BSF 78.6
0048: GOTO 04F
0049: BCF 78.6
004A: DECFSZ 78,F
004B: GOTO 042
004C: GOTO 04D
004D: NOP
004E: BSF 06.3
004F: MOVLW 3F
0050: MOVWF 04
0051: DECFSZ 04,F
0052: GOTO 051
0053: NOP
0054: BTFSC 78.7
0055: GOTO 041
0056: BTFSC 78.6
0057: GOTO 049
0058: RETURN
0132: MOVWF 07
0133: BCF 03.5
0134: BCF 07.7
0135: MOVLW 08
0136: MOVWF 78
0137: GOTO 138
0138: NOP
0139: BSF 78.7
013A: GOTO 149
013B: BCF 78.7
013C: RRF 30,F
013D: BTFSC 03.0
013E: BSF 07.7
013F: BTFSS 03.0
0140: BCF 07.7
0141: BSF 78.6
0142: GOTO 149
0143: BCF 78.6
0144: DECFSZ 78,F
0145: GOTO 13C
0146: GOTO 147
0147: NOP
0148: BSF 07.7
0149: MOVLW 3F
014A: MOVWF 04
014B: DECFSZ 04,F
014C: GOTO 14B
014D: NOP
014E: BTFSC 78.7
014F: GOTO 13B
0150: BTFSC 78.6
0151: GOTO 143
0152: RETURN
....................
....................
.................... #include "HMC5883L.h"
.................... #define MAG_ADDR_R 0x3D //addresa pro cteni
.................... #define MAG_ADDR_W 0x3C
229,27 → 262,206
.................... void set_mag (void) //uvodni nastaveni na kontinualni mereni, rozsah ± 8.1 Ga, frekvence mereni 15HZ
.................... {
.................... i2c_start(); //nastavení Configuration Register A
*
007D: BSF 20.4
007E: MOVF 20,W
007F: BSF 03.5
0080: MOVWF 07
0081: NOP
0082: BCF 03.5
0083: BSF 20.3
0084: MOVF 20,W
0085: BSF 03.5
0086: MOVWF 07
0087: NOP
0088: BCF 03.5
0089: BCF 07.4
008A: BCF 20.4
008B: MOVF 20,W
008C: BSF 03.5
008D: MOVWF 07
008E: NOP
008F: BCF 03.5
0090: BCF 07.3
0091: BCF 20.3
0092: MOVF 20,W
0093: BSF 03.5
0094: MOVWF 07
.................... I2C_Write(MAG_ADDR_W);
0095: MOVLW 3C
0096: BCF 03.5
0097: MOVWF 2C
0098: CALL 01F
.................... I2C_Write(0x00);
0099: CLRF 2C
009A: CALL 01F
.................... I2C_Write(0x70);
009B: MOVLW 70
009C: MOVWF 2C
009D: CALL 01F
.................... i2c_stop();
009E: BCF 20.4
009F: MOVF 20,W
00A0: BSF 03.5
00A1: MOVWF 07
00A2: NOP
00A3: BCF 03.5
00A4: BSF 20.3
00A5: MOVF 20,W
00A6: BSF 03.5
00A7: MOVWF 07
00A8: BCF 03.5
00A9: BTFSS 07.3
00AA: GOTO 0A9
00AB: NOP
00AC: GOTO 0AD
00AD: NOP
00AE: BSF 20.4
00AF: MOVF 20,W
00B0: BSF 03.5
00B1: MOVWF 07
00B2: NOP
.................... Delay_ms(6);
00B3: MOVLW 06
00B4: BCF 03.5
00B5: MOVWF 27
00B6: CALL 069
....................
.................... i2c_start(); //nastavení Configuration Register B
00B7: BSF 20.4
00B8: MOVF 20,W
00B9: BSF 03.5
00BA: MOVWF 07
00BB: NOP
00BC: BCF 03.5
00BD: BSF 20.3
00BE: MOVF 20,W
00BF: BSF 03.5
00C0: MOVWF 07
00C1: NOP
00C2: BCF 03.5
00C3: BCF 07.4
00C4: BCF 20.4
00C5: MOVF 20,W
00C6: BSF 03.5
00C7: MOVWF 07
00C8: NOP
00C9: BCF 03.5
00CA: BCF 07.3
00CB: BCF 20.3
00CC: MOVF 20,W
00CD: BSF 03.5
00CE: MOVWF 07
.................... I2C_Write(MAG_ADDR_W);
00CF: MOVLW 3C
00D0: BCF 03.5
00D1: MOVWF 2C
00D2: CALL 01F
.................... I2C_Write(0x01);
00D3: MOVLW 01
00D4: MOVWF 2C
00D5: CALL 01F
.................... I2C_Write(MAG_ROZ810);
00D6: MOVLW E0
00D7: MOVWF 2C
00D8: CALL 01F
.................... i2c_stop();
00D9: BCF 20.4
00DA: MOVF 20,W
00DB: BSF 03.5
00DC: MOVWF 07
00DD: NOP
00DE: BCF 03.5
00DF: BSF 20.3
00E0: MOVF 20,W
00E1: BSF 03.5
00E2: MOVWF 07
00E3: BCF 03.5
00E4: BTFSS 07.3
00E5: GOTO 0E4
00E6: NOP
00E7: GOTO 0E8
00E8: NOP
00E9: BSF 20.4
00EA: MOVF 20,W
00EB: BSF 03.5
00EC: MOVWF 07
00ED: NOP
....................
.................... Delay_ms(6);
00EE: MOVLW 06
00EF: BCF 03.5
00F0: MOVWF 27
00F1: CALL 069
....................
.................... i2c_start(); //nastveni Mode Register
00F2: BSF 20.4
00F3: MOVF 20,W
00F4: BSF 03.5
00F5: MOVWF 07
00F6: NOP
00F7: BCF 03.5
00F8: BSF 20.3
00F9: MOVF 20,W
00FA: BSF 03.5
00FB: MOVWF 07
00FC: NOP
00FD: BCF 03.5
00FE: BCF 07.4
00FF: BCF 20.4
0100: MOVF 20,W
0101: BSF 03.5
0102: MOVWF 07
0103: NOP
0104: BCF 03.5
0105: BCF 07.3
0106: BCF 20.3
0107: MOVF 20,W
0108: BSF 03.5
0109: MOVWF 07
.................... I2C_Write(MAG_ADDR_W);
010A: MOVLW 3C
010B: BCF 03.5
010C: MOVWF 2C
010D: CALL 01F
.................... I2C_Write(0x02);
010E: MOVLW 02
010F: MOVWF 2C
0110: CALL 01F
.................... I2C_Write(0x00);
0111: CLRF 2C
0112: CALL 01F
.................... i2c_stop();
0113: BCF 20.4
0114: MOVF 20,W
0115: BSF 03.5
0116: MOVWF 07
0117: NOP
0118: BCF 03.5
0119: BSF 20.3
011A: MOVF 20,W
011B: BSF 03.5
011C: MOVWF 07
011D: BCF 03.5
011E: BTFSS 07.3
011F: GOTO 11E
0120: NOP
0121: GOTO 122
0122: NOP
0123: BSF 20.4
0124: MOVF 20,W
0125: BSF 03.5
0126: MOVWF 07
0127: NOP
.................... Delay_ms(6);
0128: MOVLW 06
0129: BCF 03.5
012A: MOVWF 27
012B: CALL 069
.................... }
012C: BCF 0A.3
012D: BCF 0A.4
012E: GOTO 37F (RETURN)
....................
.................... void set_mag_roz (unsigned int8 h) //nastavy rozsah
.................... {
274,73 → 486,103
....................
.................... i2c_start();
*
00D3: BSF 03.5
00D4: BSF 06.0
00D5: NOP
00D6: BSF 06.1
00D7: NOP
00D8: BCF 03.5
00D9: BCF 06.0
00DA: BSF 03.5
00DB: BCF 06.0
00DC: NOP
00DD: BCF 03.5
00DE: BCF 06.1
00DF: BSF 03.5
00E0: BCF 06.1
0199: BSF 20.4
019A: MOVF 20,W
019B: BSF 03.5
019C: MOVWF 07
019D: NOP
019E: BCF 03.5
019F: BSF 20.3
01A0: MOVF 20,W
01A1: BSF 03.5
01A2: MOVWF 07
01A3: NOP
01A4: BCF 03.5
01A5: BCF 07.4
01A6: BCF 20.4
01A7: MOVF 20,W
01A8: BSF 03.5
01A9: MOVWF 07
01AA: NOP
01AB: BCF 03.5
01AC: BCF 07.3
01AD: BCF 20.3
01AE: MOVF 20,W
01AF: BSF 03.5
01B0: MOVWF 07
.................... I2C_Write(MAG_ADDR_W);
00E1: MOVLW 3C
00E2: BCF 03.5
00E3: MOVWF 2C
00E4: CALL 09F
01B1: MOVLW 3C
01B2: BCF 03.5
01B3: MOVWF 2C
01B4: CALL 01F
.................... I2C_write(reg);
00E5: MOVF 2B,W
00E6: MOVWF 2C
00E7: CALL 09F
01B5: MOVF 2B,W
01B6: MOVWF 2C
01B7: CALL 01F
.................... i2c_stop();
00E8: BSF 03.5
00E9: BCF 06.0
00EA: NOP
00EB: BSF 06.1
00EC: BCF 03.5
00ED: BTFSS 06.1
00EE: GOTO 0ED
00EF: NOP
00F0: GOTO 0F1
00F1: NOP
00F2: BSF 03.5
00F3: BSF 06.0
00F4: NOP
01B8: BCF 20.4
01B9: MOVF 20,W
01BA: BSF 03.5
01BB: MOVWF 07
01BC: NOP
01BD: BCF 03.5
01BE: BSF 20.3
01BF: MOVF 20,W
01C0: BSF 03.5
01C1: MOVWF 07
01C2: BCF 03.5
01C3: BTFSS 07.3
01C4: GOTO 1C3
01C5: NOP
01C6: GOTO 1C7
01C7: NOP
01C8: BSF 20.4
01C9: MOVF 20,W
01CA: BSF 03.5
01CB: MOVWF 07
01CC: NOP
.................... i2c_start();
00F5: BSF 06.0
00F6: NOP
00F7: BSF 06.1
00F8: NOP
00F9: BCF 03.5
00FA: BCF 06.0
00FB: BSF 03.5
00FC: BCF 06.0
00FD: NOP
00FE: BCF 03.5
00FF: BCF 06.1
0100: BSF 03.5
0101: BCF 06.1
01CD: BCF 03.5
01CE: BSF 20.4
01CF: MOVF 20,W
01D0: BSF 03.5
01D1: MOVWF 07
01D2: NOP
01D3: BCF 03.5
01D4: BSF 20.3
01D5: MOVF 20,W
01D6: BSF 03.5
01D7: MOVWF 07
01D8: NOP
01D9: BCF 03.5
01DA: BCF 07.4
01DB: BCF 20.4
01DC: MOVF 20,W
01DD: BSF 03.5
01DE: MOVWF 07
01DF: NOP
01E0: BCF 03.5
01E1: BCF 07.3
01E2: BCF 20.3
01E3: MOVF 20,W
01E4: BSF 03.5
01E5: MOVWF 07
.................... I2C_Write(MAG_ADDR_R);
0102: MOVLW 3D
0103: BCF 03.5
0104: MOVWF 2C
0105: CALL 09F
01E6: MOVLW 3D
01E7: BCF 03.5
01E8: MOVWF 2C
01E9: CALL 01F
.................... reg=i2c_read(0);
0106: CLRF 77
01EA: CLRF 77
*
0138: MOVF 78,W
0139: BCF 03.5
013A: MOVWF 2B
022E: MOVF 78,W
022F: BCF 03.5
0230: MOVWF 2B
.................... return reg;
013B: MOVF 2B,W
013C: MOVWF 78
0231: MOVF 2B,W
0232: MOVWF 78
.................... }
013D: RETURN
0233: RETURN
....................
....................
.................... signed int16 mag_vypocet(unsigned int8 h, unsigned int8 l) //prepocet na 16bit cislo
347,29 → 589,29
.................... {
.................... signed int16 x;
.................... x = (((unsigned int16) h << 8) + l );
013E: CLRF 30
013F: MOVF 2B,W
0140: MOVWF 2F
0141: MOVWF 30
0142: CLRF 2F
0143: MOVF 2C,W
0144: ADDWF 2F,W
0145: MOVWF 78
0146: MOVF 30,W
0147: MOVWF 7A
0148: BTFSC 03.0
0149: INCF 7A,F
014A: MOVF 78,W
014B: MOVWF 2D
014C: MOVF 7A,W
014D: MOVWF 2E
0234: CLRF 30
0235: MOVF 2B,W
0236: MOVWF 2F
0237: MOVWF 30
0238: CLRF 2F
0239: MOVF 2C,W
023A: ADDWF 2F,W
023B: MOVWF 78
023C: MOVF 30,W
023D: MOVWF 7A
023E: BTFSC 03.0
023F: INCF 7A,F
0240: MOVF 78,W
0241: MOVWF 2D
0242: MOVF 7A,W
0243: MOVWF 2E
.................... return x;
014E: MOVF 2D,W
014F: MOVWF 78
0150: MOVF 2E,W
0151: MOVWF 79
0244: MOVF 2D,W
0245: MOVWF 78
0246: MOVF 2E,W
0247: MOVWF 79
.................... }
0152: RETURN
0248: RETURN
....................
....................
.................... signed int16 mag_readX(void) //nacteni osy x
377,37 → 619,37
.................... unsigned int8 h,l;
.................... signed int16 x;
.................... h=mag_read(0x03);
0153: MOVLW 03
0154: MOVWF 2B
0155: CALL 0D3
0156: MOVF 78,W
0157: MOVWF 27
0249: MOVLW 03
024A: MOVWF 2B
024B: CALL 199
024C: MOVF 78,W
024D: MOVWF 27
.................... l=mag_read(0x04);
0158: MOVLW 04
0159: MOVWF 2B
015A: CALL 0D3
015B: MOVF 78,W
015C: MOVWF 28
024E: MOVLW 04
024F: MOVWF 2B
0250: CALL 199
0251: MOVF 78,W
0252: MOVWF 28
.................... x=mag_vypocet(h,l);
015D: MOVF 27,W
015E: MOVWF 2B
015F: MOVF 28,W
0160: MOVWF 2C
0161: CALL 13E
0162: MOVF 79,W
0163: MOVWF 2A
0164: MOVF 78,W
0165: MOVWF 29
0253: MOVF 27,W
0254: MOVWF 2B
0255: MOVF 28,W
0256: MOVWF 2C
0257: CALL 234
0258: MOVF 79,W
0259: MOVWF 2A
025A: MOVF 78,W
025B: MOVWF 29
.................... return x;
0166: MOVF 29,W
0167: MOVWF 78
0168: MOVF 2A,W
0169: MOVWF 79
025C: MOVF 29,W
025D: MOVWF 78
025E: MOVF 2A,W
025F: MOVWF 79
....................
.................... }
016A: BCF 0A.3
016B: BCF 0A.4
016C: GOTO 2B5 (RETURN)
0260: BCF 0A.3
0261: BCF 0A.4
0262: GOTO 395 (RETURN)
....................
....................
.................... signed int16 mag_readY(void) //nacteni osy x
415,37 → 657,37
.................... unsigned int8 h,l;
.................... signed int16 x;
.................... h=mag_read(0x07);
016D: MOVLW 07
016E: MOVWF 2B
016F: CALL 0D3
0170: MOVF 78,W
0171: MOVWF 27
0263: MOVLW 07
0264: MOVWF 2B
0265: CALL 199
0266: MOVF 78,W
0267: MOVWF 27
.................... l=mag_read(0x08);
0172: MOVLW 08
0173: MOVWF 2B
0174: CALL 0D3
0175: MOVF 78,W
0176: MOVWF 28
0268: MOVLW 08
0269: MOVWF 2B
026A: CALL 199
026B: MOVF 78,W
026C: MOVWF 28
.................... x=mag_vypocet(h,l);
0177: MOVF 27,W
0178: MOVWF 2B
0179: MOVF 28,W
017A: MOVWF 2C
017B: CALL 13E
017C: MOVF 79,W
017D: MOVWF 2A
017E: MOVF 78,W
017F: MOVWF 29
026D: MOVF 27,W
026E: MOVWF 2B
026F: MOVF 28,W
0270: MOVWF 2C
0271: CALL 234
0272: MOVF 79,W
0273: MOVWF 2A
0274: MOVF 78,W
0275: MOVWF 29
.................... return x;
0180: MOVF 29,W
0181: MOVWF 78
0182: MOVF 2A,W
0183: MOVWF 79
0276: MOVF 29,W
0277: MOVWF 78
0278: MOVF 2A,W
0279: MOVWF 79
....................
.................... }
0184: BCF 0A.3
0185: BCF 0A.4
0186: GOTO 2BA (RETURN)
027A: BCF 0A.3
027B: BCF 0A.4
027C: GOTO 39A (RETURN)
....................
....................
.................... signed int16 mag_readZ(void) //nacteni osy x
453,293 → 695,251
.................... unsigned int8 h,l;
.................... signed int16 x;
.................... h=mag_read(0x05);
0187: MOVLW 05
0188: MOVWF 2B
0189: CALL 0D3
018A: MOVF 78,W
018B: MOVWF 27
027D: MOVLW 05
027E: MOVWF 2B
027F: CALL 199
0280: MOVF 78,W
0281: MOVWF 27
.................... l=mag_read(0x06);
018C: MOVLW 06
018D: MOVWF 2B
018E: CALL 0D3
018F: MOVF 78,W
0190: MOVWF 28
0282: MOVLW 06
0283: MOVWF 2B
0284: CALL 199
0285: MOVF 78,W
0286: MOVWF 28
.................... x=mag_vypocet(h,l);
0191: MOVF 27,W
0192: MOVWF 2B
0193: MOVF 28,W
0194: MOVWF 2C
0195: CALL 13E
0196: MOVF 79,W
0197: MOVWF 2A
0198: MOVF 78,W
0199: MOVWF 29
0287: MOVF 27,W
0288: MOVWF 2B
0289: MOVF 28,W
028A: MOVWF 2C
028B: CALL 234
028C: MOVF 79,W
028D: MOVWF 2A
028E: MOVF 78,W
028F: MOVWF 29
.................... return x;
019A: MOVF 29,W
019B: MOVWF 78
019C: MOVF 2A,W
019D: MOVWF 79
0290: MOVF 29,W
0291: MOVWF 78
0292: MOVF 2A,W
0293: MOVWF 79
....................
.................... }
019E: BCF 0A.3
019F: BCF 0A.4
01A0: GOTO 2BF (RETURN)
0294: BCF 0A.3
0295: BCF 0A.4
0296: GOTO 39F (RETURN)
....................
....................
....................
....................
....................
....................
.................... void main()
.................... {
*
0237: CLRF 04
0238: BCF 03.7
0239: MOVLW 1F
023A: ANDWF 03,F
023B: MOVLW 71
023C: BSF 03.5
023D: MOVWF 0F
023E: MOVF 0F,W
023F: BCF 06.3
0240: BCF 03.5
0241: BSF 06.3
0242: BSF 03.5
0243: BSF 03.6
0244: MOVF 09,W
0245: ANDLW C0
0246: MOVWF 09
0247: BCF 03.6
0248: BCF 1F.4
0249: BCF 1F.5
024A: MOVLW 00
024B: BSF 03.6
024C: MOVWF 08
024D: BCF 03.5
024E: CLRF 07
024F: CLRF 08
0250: CLRF 09
....................
.................... setup_adc_ports(NO_ANALOGS|VSS_VDD);
0317: CLRF 04
0318: BCF 03.7
0319: MOVLW 1F
031A: ANDWF 03,F
031B: MOVLW 71
031C: BSF 03.5
031D: MOVWF 0F
031E: MOVF 0F,W
031F: BCF 03.5
0320: BCF 20.7
0321: MOVF 20,W
0322: BSF 03.5
0323: MOVWF 07
0324: BCF 03.5
0325: BSF 07.7
0326: BSF 03.5
0327: BSF 03.6
0328: MOVF 09,W
0329: ANDLW C0
032A: MOVWF 09
032B: BCF 03.6
032C: BCF 1F.4
032D: BCF 1F.5
032E: MOVLW 00
032F: BSF 03.6
0330: MOVWF 08
0331: BCF 03.5
0332: CLRF 07
0333: CLRF 08
0334: CLRF 09
.................... signed int16 X,Y,Z;
.................... setup_adc_ports(NO_ANALOGS|VSS_VDD);
*
0254: BSF 03.5
0255: BSF 03.6
0256: MOVF 09,W
0257: ANDLW C0
0258: MOVWF 09
0259: BCF 03.6
025A: BCF 1F.4
025B: BCF 1F.5
025C: MOVLW 00
025D: BSF 03.6
025E: MOVWF 08
.................... setup_adc(ADC_CLOCK_DIV_2);
025F: BCF 03.5
0260: BCF 03.6
0261: BCF 1F.6
0262: BCF 1F.7
0263: BSF 03.5
0264: BCF 1F.7
0265: BCF 03.5
0266: BSF 1F.0
.................... setup_spi(SPI_SS_DISABLED);
0267: BCF 14.5
0268: BCF 20.5
0269: MOVF 20,W
026A: BSF 03.5
026B: MOVWF 07
026C: BCF 03.5
026D: BSF 20.4
026E: MOVF 20,W
026F: BSF 03.5
0270: MOVWF 07
0271: BCF 03.5
0272: BCF 20.3
0273: MOVF 20,W
0274: BSF 03.5
0275: MOVWF 07
0276: MOVLW 01
0277: BCF 03.5
0278: MOVWF 14
0279: MOVLW 00
027A: BSF 03.5
027B: MOVWF 14
.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
027C: MOVF 01,W
027D: ANDLW C7
027E: IORLW 08
027F: MOVWF 01
.................... setup_timer_1(T1_DISABLED);
0280: BCF 03.5
0281: CLRF 10
.................... setup_timer_2(T2_DISABLED,0,1);
0282: MOVLW 00
0283: MOVWF 78
0284: MOVWF 12
0285: MOVLW 00
0286: BSF 03.5
0287: MOVWF 12
.................... setup_ccp1(CCP_OFF);
0288: BCF 03.5
0289: BSF 20.2
028A: MOVF 20,W
028B: BSF 03.5
028C: MOVWF 07
028D: BCF 03.5
028E: CLRF 17
028F: BSF 03.5
0290: CLRF 1B
0291: CLRF 1C
0292: MOVLW 01
0293: MOVWF 1D
.................... setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
0294: BCF 03.5
0295: BSF 03.6
0296: CLRF 07
0297: CLRF 08
0298: CLRF 09
0338: BSF 03.5
0339: BSF 03.6
033A: MOVF 09,W
033B: ANDLW C0
033C: MOVWF 09
033D: BCF 03.6
033E: BCF 1F.4
033F: BCF 1F.5
0340: MOVLW 00
0341: BSF 03.6
0342: MOVWF 08
.................... setup_adc(ADC_CLOCK_DIV_2);
0343: BCF 03.5
0344: BCF 03.6
0345: BCF 1F.6
0346: BCF 1F.7
0347: BSF 03.5
0348: BCF 1F.7
0349: BCF 03.5
034A: BSF 1F.0
.................... setup_spi(SPI_SS_DISABLED);
034B: BCF 14.5
034C: BCF 20.5
034D: MOVF 20,W
034E: BSF 03.5
034F: MOVWF 07
0350: BCF 03.5
0351: BSF 20.4
0352: MOVF 20,W
0353: BSF 03.5
0354: MOVWF 07
0355: BCF 03.5
0356: BCF 20.3
0357: MOVF 20,W
0358: BSF 03.5
0359: MOVWF 07
035A: MOVLW 01
035B: BCF 03.5
035C: MOVWF 14
035D: MOVLW 00
035E: BSF 03.5
035F: MOVWF 14
.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
0360: MOVF 01,W
0361: ANDLW C7
0362: IORLW 08
0363: MOVWF 01
.................... setup_timer_1(T1_DISABLED);
0364: BCF 03.5
0365: CLRF 10
.................... setup_timer_2(T2_DISABLED,0,1);
0366: MOVLW 00
0367: MOVWF 78
0368: MOVWF 12
0369: MOVLW 00
036A: BSF 03.5
036B: MOVWF 12
.................... setup_ccp1(CCP_OFF);
036C: BCF 03.5
036D: BSF 20.2
036E: MOVF 20,W
036F: BSF 03.5
0370: MOVWF 07
0371: BCF 03.5
0372: CLRF 17
0373: BSF 03.5
0374: CLRF 1B
0375: CLRF 1C
0376: MOVLW 01
0377: MOVWF 1D
.................... setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
0378: BCF 03.5
0379: BSF 03.6
037A: CLRF 07
037B: CLRF 08
037C: CLRF 09
....................
.................... printf("Magnetometr: \r\n",);
0299: MOVLW 04
029A: MOVWF 0D
029B: MOVLW 00
029C: MOVWF 0F
029D: BCF 03.6
029E: CALL 059
.................... printf("(c)mlab JACHO 2013: \r\n",);
029F: MOVLW 0D
02A0: BSF 03.6
02A1: MOVWF 0D
02A2: MOVLW 00
02A3: MOVWF 0F
02A4: BCF 03.6
02A5: CALL 059
.................... printf("Vysledky z jednotlivych os:\r\n",);
02A6: MOVLW 19
02A7: BSF 03.6
02A8: MOVWF 0D
02A9: MOVLW 00
02AA: MOVWF 0F
02AB: BCF 03.6
02AC: CALL 059
.................... signed int16 X,Y,Z;
.................... set_mag();
037D: BCF 03.6
037E: GOTO 07D
....................
.................... printf("Magnetometr: \r\n",);
037F: MOVLW 04
0380: BSF 03.6
0381: MOVWF 0D
0382: MOVLW 00
0383: MOVWF 0F
0384: BCF 03.6
0385: CALL 153
.................... printf("(c)mlab JACHO 2013: \r\n",);
0386: MOVLW 0D
0387: BSF 03.6
0388: MOVWF 0D
0389: MOVLW 00
038A: MOVWF 0F
038B: BCF 03.6
038C: CALL 153
.................... printf("X, Y, Z \r\n",);
038D: MOVLW 19
038E: BSF 03.6
038F: MOVWF 0D
0390: MOVLW 00
0391: MOVWF 0F
0392: BCF 03.6
0393: CALL 153
....................
.................... while(true)
.................... {
.................... printf("Vysledky z jednotlivych os:\r\n",);
02AD: MOVLW 28
02AE: BSF 03.6
02AF: MOVWF 0D
02B0: MOVLW 00
02B1: MOVWF 0F
02B2: BCF 03.6
02B3: CALL 059
.................... X=mag_readX();
02B4: GOTO 153
02B5: MOVF 79,W
02B6: MOVWF 22
02B7: MOVF 78,W
02B8: MOVWF 21
.................... Y=mag_readY();
02B9: GOTO 16D
02BA: MOVF 79,W
02BB: MOVWF 24
02BC: MOVF 78,W
02BD: MOVWF 23
.................... Z=mag_readZ();
02BE: GOTO 187
02BF: MOVF 79,W
02C0: MOVWF 26
02C1: MOVF 78,W
02C2: MOVWF 25
.................... printf("X: %Ld \r\n", X);
02C3: MOVLW 58
02C4: MOVWF 30
02C5: CALL 037
02C6: MOVLW 3A
02C7: MOVWF 30
02C8: CALL 037
02C9: MOVLW 20
02CA: MOVWF 30
02CB: CALL 037
02CC: MOVLW 10
02CD: MOVWF 04
02CE: MOVF 22,W
02CF: MOVWF 28
02D0: MOVF 21,W
02D1: MOVWF 27
02D2: CALL 1A1
02D3: MOVLW 20
02D4: MOVWF 30
02D5: CALL 037
02D6: MOVLW 0D
02D7: MOVWF 30
02D8: CALL 037
02D9: MOVLW 0A
02DA: MOVWF 30
02DB: CALL 037
.................... printf("Y %Ld \r\n", Y);
02DC: MOVLW 59
02DD: MOVWF 30
02DE: CALL 037
02DF: MOVLW 20
02E0: MOVWF 30
02E1: CALL 037
02E2: MOVLW 10
02E3: MOVWF 04
02E4: MOVF 24,W
02E5: MOVWF 28
02E6: MOVF 23,W
02E7: MOVWF 27
02E8: CALL 1A1
02E9: MOVLW 20
02EA: MOVWF 30
02EB: CALL 037
02EC: MOVLW 0D
02ED: MOVWF 30
02EE: CALL 037
02EF: MOVLW 0A
02F0: MOVWF 30
02F1: CALL 037
.................... printf("Z: %Ld \r\n", Z);
02F2: MOVLW 5A
02F3: MOVWF 30
02F4: CALL 037
02F5: MOVLW 3A
02F6: MOVWF 30
02F7: CALL 037
02F8: MOVLW 20
02F9: MOVWF 30
02FA: CALL 037
02FB: MOVLW 10
02FC: MOVWF 04
02FD: MOVF 26,W
02FE: MOVWF 28
02FF: MOVF 25,W
0300: MOVWF 27
0301: CALL 1A1
0302: MOVLW 20
0303: MOVWF 30
0304: CALL 037
0305: MOVLW 0D
0306: MOVWF 30
0307: CALL 037
0308: MOVLW 0A
0309: MOVWF 30
030A: CALL 037
.................... Delay_ms(2000);
030B: MOVLW 08
030C: MOVWF 27
030D: MOVLW FA
030E: MOVWF 28
030F: GOTO 221
0310: DECFSZ 27,F
0311: GOTO 30D
.................... while(true)
.................... {
.................... X = mag_readX();
0394: GOTO 249
0395: MOVF 79,W
0396: MOVWF 22
0397: MOVF 78,W
0398: MOVWF 21
.................... Y = mag_readY();
0399: GOTO 263
039A: MOVF 79,W
039B: MOVWF 24
039C: MOVF 78,W
039D: MOVWF 23
.................... Z = mag_readZ();
039E: GOTO 27D
039F: MOVF 79,W
03A0: MOVWF 26
03A1: MOVF 78,W
03A2: MOVWF 25
.................... printf("%4Ld %4Ld %4Ld \r\n", X, Y, Z);
03A3: MOVLW 02
03A4: MOVWF 04
03A5: MOVF 22,W
03A6: MOVWF 28
03A7: MOVF 21,W
03A8: MOVWF 27
03A9: CALL 297
03AA: MOVLW 20
03AB: MOVWF 30
03AC: CALL 12F
03AD: MOVLW 02
03AE: MOVWF 04
03AF: MOVF 24,W
03B0: MOVWF 28
03B1: MOVF 23,W
03B2: MOVWF 27
03B3: CALL 297
03B4: MOVLW 20
03B5: MOVWF 30
03B6: CALL 12F
03B7: MOVLW 02
03B8: MOVWF 04
03B9: MOVF 26,W
03BA: MOVWF 28
03BB: MOVF 25,W
03BC: MOVWF 27
03BD: CALL 297
03BE: MOVLW 20
03BF: MOVWF 30
03C0: CALL 12F
03C1: MOVLW 0D
03C2: MOVWF 30
03C3: CALL 12F
03C4: MOVLW 0A
03C5: MOVWF 30
03C6: CALL 12F
.................... Delay_ms(50);
03C7: MOVLW 32
03C8: MOVWF 27
03C9: CALL 069
....................
.................... }
03CA: GOTO 394
.................... }
0312: GOTO 2AD
.................... }
0313: SLEEP
03CB: SLEEP
 
Configuration Fuses:
Word 1: 2CF5 INTRC NOWDT NOPUT MCLR NOPROTECT NOCPD NOBROWNOUT IESO FCMEN NOLVP NODEBUG
/Modules/Sensors/MAG01A/SW/PIC16F887/main.pjt
1,10 → 1,10
[PROJECT]
Target=C:\Users\Honza\Documents\pic\I2C_magnetometr\main.hex
Target=main.hex
Development_Mode=
Processor_Text=PIC16F887
ToolSuite=CCS
Processor=0x887F
[C:\Users\Honza\Documents\pic\I2C_magnetometr\main]
[main]
Type=4
Path=
FileList=
12,15 → 12,19
OptionString=
AdditionalOptionString=
[mru-list]
1=C:\Users\Honza\Documents\pic\I2C_magnetometr\main.c
1=main.c
[Windows]
0=0000 %S 0 0 796 451 3 0
[Opened Files]
1=main.c
2=HMC5883L.c
3=main.h
4=C:\Program Files (x86)\PICC\devices\16F887.h
5=HMC5883L.h
6=
[Target Data]
OptionString=-p +FM
FileList=Z:\home\kaklik\svnMLAB\Modules\Sensors\MAG01A\SW\PIC16F887\main.c
[Units]
Link=0
Count=1
1=C:\Users\Honza\Documents\pic\I2C_magnetometr\main
[Opened Files]
1=..\I2C_magnetometr\main.c
2=..\kompas\main.c
3=HMC5883L.c
4=
1=main (main)
/Modules/Sensors/MAG01A/SW/PIC16F887/main.sta
1,11 → 1,11
 
ROM used: 788 (10%)
788 (10%) including unused fragments
ROM used: 972 (12%)
972 (12%) including unused fragments
 
1 Average locations per line
12 Average locations per statement
2 Average locations per line
15 Average locations per statement
 
RAM used: 7 (2%) at main() level
RAM used: 12 (3%) at main() level
22 (6%) worst case
 
Stack used: 3 worst case (out of 8 total available)
12,49 → 12,49
 
Lines Stmts % Files
----- ----- --- -----
43 22 32 main.c
20 0 0 main.h
423 0 0 ..\..\..\..\..\Program Files (x86)\PICC\devices\16F887.h
32 19 29 main.c
22 0 0 main.h
423 0 0 C:\Program Files (x86)\PICC\devices\16F887.h
19 0 0 HMC5883L.h
102 46 68 HMC5883L.c
102 46 71 HMC5883L.c
----- -----
607 68 Total
598 65 Total
 
Page ROM % RAM Vol Diff Functions:
---- --- --- --- --- ---- ----------
0 22 3 1 @delay_ms1
0 20 2 1 @delay_ms1
Inline 3 357 1.4 @I2C_READ_1
0 52 7 1 113 1.3 @I2C_WRITE_1
0 34 4 1 152 2.2 @PUTCHAR_1_
0 107 14 1 152 2.2 mag_read
0 21 3 6 129 4.6 mag_vypocet
0 74 8 1 113 1.3 @I2C_WRITE_1
0 36 4 1 152 2.2 @PUTCHAR_1_
0 178 18 0 357 1.4 set_mag
0 155 16 1 152 2.2 mag_read
0 21 2 6 129 4.6 mag_vypocet
0 26 3 4 171 2.7 mag_readX
0 26 3 4 171 2.7 mag_readY
0 26 3 4 171 2.7 mag_readZ
0 221 28 1 658 3.3 MAIN
0 9 1 0 44 1.9 @const99
0 70 9 3 257 7.2 @PSTRINGC7_68
0 12 2 0 @const101
0 15 2 0 1071 8.0 @const102
0 15 2 0 @const106
0 128 16 9 @PRINTF_LD_68
0 181 19 6 587 3.3 MAIN
0 9 1 0 @const102
0 70 7 3 @PSTRINGC7_69
0 12 1 0 @const104
0 6 1 0 @const105
0 128 13 9 @PRINTF_LD_69
 
Program metrics:
Functions 12
Statements 68
Comments 109
Volume (V) 5531
Difficilty (D) 39.8
Effort to implement (E) 220066
Time to implement (T) 3 hours, 24 minutes
Functions 10
Statements 65
Comments 99
Volume (V) 3874
Difficilty (D) 23.6
Effort to implement (E) 91333
Time to implement (T) 1 hours, 25 minutes
Est Delivered Bugs (B) 1
Cyclomatic Complexity 3
Maintainability (MI) 61
Cyclomatic Complexity 1
Maintainability (MI) 60
 
Segment Used Free
----------- ---- ----
00000-00003 4 0
00004-007FF 784 1260
00004-007FF 968 1076
00800-00FFF 0 2048
01000-017FF 0 2048
01800-01FFF 0 2048
/Modules/Sensors/MAG01A/SW/PIC16F887/main.sym
1,46 → 1,45
004-005 @READ_PROGRAM_MEMORY8.P1
004 @WRITE_PROGRAM_MEMORY8.P2
004 @WRITE_PROGRAM_MEMORY8.P1
004-005 @READ_PROGRAM_MEMORY8.P2
015 CCP_1_LOW
015 CCP_1
016 CCP_1_HIGH
01B CCP_2_LOW
01B CCP_2
01B CCP_2_LOW
01C CCP_2_HIGH
020 @TRIS_C
021-022 MAIN.x
023-024 MAIN.Y
025-026 MAIN.Z
027-028 @PRINTF_LD_68.P1
027 mag_readZ.h
027 @delay_ms1.P1
027 mag_readX.h
027-028 @PRINTF_LD_69.P1
027 mag_readY.h
027 MAIN.@SCRATCH1
027 @PSTRINGC7_68.@SCRATCH1
027 mag_readZ.h
027 @PSTRINGC7_69.@SCRATCH1
028 mag_readX.l
028 @delay_ms1.P1
028 mag_readY.l
028 mag_readZ.l
028 @PSTRINGC7_68.@SCRATCH2
028 @PSTRINGC7_69.@SCRATCH2
029-02A mag_readX.x
029-02A mag_readY.x
029-02A mag_readX.x
029-02A mag_readZ.x
029 @PSTRINGC7_68.@SCRATCH3
029 @PRINTF_LD_68.@SCRATCH1
02A @PRINTF_LD_68.@SCRATCH2
029 @PSTRINGC7_69.@SCRATCH3
029 @PRINTF_LD_69.@SCRATCH1
02A @PRINTF_LD_69.@SCRATCH2
02B mag_vypocet.h
02B mag_read.reg
02B mag_vypocet.h
02B @PRINTF_LD_68.@SCRATCH3
02B @PRINTF_LD_69.@SCRATCH3
02C mag_vypocet.l
02C @I2C_WRITE_1.P1
02C @I2C_READ_1.P2
02C @PRINTF_LD_68.@SCRATCH4
02C @PRINTF_LD_69.@SCRATCH4
02D-02E mag_vypocet.x
02D @I2C_READ_1.@SCRATCH1
02D @PRINTF_LD_68.@SCRATCH5
02D @PRINTF_LD_69.@SCRATCH5
02E @I2C_READ_1.@SCRATCH2
02E @PRINTF_LD_68.@SCRATCH6
02E @PRINTF_LD_69.@SCRATCH6
02F mag_vypocet.@SCRATCH1
02F @PRINTF_LD_68.@SCRATCH7
02F @PRINTF_LD_69.@SCRATCH7
030 @PUTCHAR_1_.P1
030 mag_vypocet.@SCRATCH2
077 @SCRATCH
54,23 → 53,23
10D-10E @WRITE_PROGRAM_MEMORY8.P2
 
ROM Allocation:
0221 @delay_ms1
0107 @I2C_READ_1
009F @I2C_WRITE_1
0037 @PUTCHAR_1_
00D3 mag_read
013E mag_vypocet
0153 mag_readX
016D mag_readY
0187 mag_readZ
0237 MAIN
0004 @const99
0059 @PSTRINGC7_68
000D @const101
0019 @const102
0028 @const106
01A1 @PRINTF_LD_68
0237 @cinit
0069 @delay_ms1
01EB @I2C_READ_1
001F @I2C_WRITE_1
012F @PUTCHAR_1_
007D set_mag
0199 mag_read
0234 mag_vypocet
0249 mag_readX
0263 mag_readY
027D mag_readZ
0317 MAIN
0004 @const102
0153 @PSTRINGC7_69
000D @const104
0019 @const105
0297 @PRINTF_LD_69
0317 @cinit
 
 
User Memory space:
78,17 → 77,17
User Memory space:
 
Project Directory:
c:\users\honza\documents\pic\i2c_magnetometr\
Z:\home\kaklik\svnMLAB\Modules\Sensors\MAG01A\SW\PIC16F887\
 
Project Files:
main.c
main.h
..\..\..\..\..\Program Files (x86)\PICC\devices\16F887.h
C:\Program Files (x86)\PICC\devices\16F887.h
HMC5883L.h
HMC5883L.c
 
Units:
c:\users\honza\documents\pic\i2c_magnetometr\main (main)
Z:\home\kaklik\svnMLAB\Modules\Sensors\MAG01A\SW\PIC16F887\main (main)
 
Compiler Settings:
Processor: PIC16F887
/Modules/Sensors/MAG01A/SW/PIC16F887/main.tre
1,75 → 1,73
ÀÄmain
ÀÄMAIN 0/221 Ram=1
ÀÄMAIN 0/181 Ram=6
ÃÄ??0??
ÃÄ@PSTRINGC7_68 0/70 Ram=3
³ ÃÄ@PUTCHAR_1_ 0/34 Ram=1
³ ÀÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PSTRINGC7_68 0/70 Ram=3
³ ÃÄ@PUTCHAR_1_ 0/34 Ram=1
³ ÀÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PSTRINGC7_68 0/70 Ram=3
³ ÃÄ@PUTCHAR_1_ 0/34 Ram=1
³ ÀÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PSTRINGC7_68 0/70 Ram=3
³ ÃÄ@PUTCHAR_1_ 0/34 Ram=1
³ ÀÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄset_mag 0/178 Ram=0
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÃÄ@delay_ms1 0/20 Ram=1
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÃÄ@delay_ms1 0/20 Ram=1
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÀÄ@delay_ms1 0/20 Ram=1
ÃÄ@PSTRINGC7_69 0/70 Ram=3
³ ÃÄ@PUTCHAR_1_ 0/36 Ram=1
³ ÀÄ@PUTCHAR_1_ 0/36 Ram=1
ÃÄ@PSTRINGC7_69 0/70 Ram=3
³ ÃÄ@PUTCHAR_1_ 0/36 Ram=1
³ ÀÄ@PUTCHAR_1_ 0/36 Ram=1
ÃÄ@PSTRINGC7_69 0/70 Ram=3
³ ÃÄ@PUTCHAR_1_ 0/36 Ram=1
³ ÀÄ@PUTCHAR_1_ 0/36 Ram=1
ÃÄmag_readX 0/26 Ram=4
³ ÃÄmag_read 0/107 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ÃÄmag_read 0/155 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÀÄ@I2C_READ_1 (Inline) Ram=3
³ ÃÄmag_read 0/107 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ÃÄmag_read 0/155 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÀÄ@I2C_READ_1 (Inline) Ram=3
³ ÀÄmag_vypocet 0/21 Ram=6
ÃÄmag_readY 0/26 Ram=4
³ ÃÄmag_read 0/107 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ÃÄmag_read 0/155 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÀÄ@I2C_READ_1 (Inline) Ram=3
³ ÃÄmag_read 0/107 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ÃÄmag_read 0/155 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÀÄ@I2C_READ_1 (Inline) Ram=3
³ ÀÄmag_vypocet 0/21 Ram=6
ÃÄmag_readZ 0/26 Ram=4
³ ÃÄmag_read 0/107 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ÃÄmag_read 0/155 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÀÄ@I2C_READ_1 (Inline) Ram=3
³ ÃÄmag_read 0/107 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/52 Ram=1
³ ÃÄmag_read 0/155 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ³ ÀÄ@I2C_READ_1 (Inline) Ram=3
³ ÀÄmag_vypocet 0/21 Ram=6
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PRINTF_LD_68 0/128 Ram=9
³ ÀÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PRINTF_LD_68 0/128 Ram=9
³ ÀÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PRINTF_LD_68 0/128 Ram=9
³ ÀÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÀÄ@delay_ms1 0/22 Ram=1
ÃÄ@PRINTF_LD_69 0/128 Ram=9
³ ÀÄ@PUTCHAR_1_ 0/36 Ram=1
ÃÄ@PUTCHAR_1_ 0/36 Ram=1
ÃÄ@PRINTF_LD_69 0/128 Ram=9
³ ÀÄ@PUTCHAR_1_ 0/36 Ram=1
ÃÄ@PUTCHAR_1_ 0/36 Ram=1
ÃÄ@PRINTF_LD_69 0/128 Ram=9
³ ÀÄ@PUTCHAR_1_ 0/36 Ram=1
ÃÄ@PUTCHAR_1_ 0/36 Ram=1
ÃÄ@PUTCHAR_1_ 0/36 Ram=1
ÃÄ@PUTCHAR_1_ 0/36 Ram=1
ÀÄ@delay_ms1 0/20 Ram=1