/Modules/Sensors/SHT25V01A/SW/PIC16F887/SHT25.c
0,0 → 1,91
void SHT25_soft_reset()
{
i2c_start(); // Start condition
i2c_write(0x80); // Device address
i2c_write(0xFE); // Device command
i2c_stop(); // Stop condition
}
 
unsigned int8 SHT25_setup(unsigned int8 setup_reg ) // writes to status register and returns its value
{
unsigned int8 reg;
 
i2c_start(); // Start condition
i2c_write(SHT25_ADDR); // Device address
i2c_write(0xE7); // Device command
 
i2c_start(); // Start condition
i2c_write(SHT25_ADDR+1); // Device address
reg=i2c_read(0); // Read status actual status register
 
reg = (reg & 0x3A) | setup_reg;
 
i2c_start(); // Start condition
i2c_write(SHT25_ADDR); // Device address
i2c_write(0xE6); // Write to status register
i2c_write(reg); // Device command
i2c_stop(); // Stop condition
 
delay_ms(10);
 
i2c_start(); // Start condition
i2c_write(SHT25_ADDR); // Device address
i2c_write(0xE7); // Device command
 
i2c_start(); // Start condition
i2c_write(SHT25_ADDR+1); // Device address
reg=i2c_read(0); // Read status actual status register
 
return (reg);
}
 
 
float SHT25_get_temp()
{
unsigned int8 MSB, LSB, Check;
unsigned int16 data;
 
i2c_start();
I2C_Write(SHT25_ADDR);
I2C_write(0xE3);
i2c_stop();
delay_ms(100);
i2c_start();
I2C_Write(SHT25_ADDR+1);
MSB=i2c_read(1);
LSB=i2c_read(1);
Check=i2c_read(0);
i2c_stop();
LSB = LSB >> 2; // trow out status bits
 
data = (((unsigned int16) MSB << 8) + (LSB << 4));
return(-46.85 + 175.72*((float)data/0xFFFF));
}
 
float SHT25_get_hum()
{
unsigned int8 MSB, LSB, Check;
unsigned int16 data;
 
i2c_start(); //RH
I2C_Write(SHT25_ADDR);
I2C_write(0xE5);
 
delay_ms(100);
 
i2c_start();
I2C_Write(SHT25_ADDR+1);
MSB=i2c_read(1);
LSB=i2c_read(1);
Check=i2c_read(0);
i2c_stop();
 
LSB = LSB >> 2; // trow out status bits
 
data = (((unsigned int16) MSB << 8) + (LSB << 4) );
return( -6.0 + 125.0*((float)data/0xFFFF));
}
 
/Modules/Sensors/SHT25V01A/SW/PIC16F887/SHT25.h
0,0 → 1,13
 
#define SHT25_HEATER_ON 0x04
#define SHT25_HEATER_OFF 0x00
#define SHT25_OTP_reload_off 0x02
#define SHT25_RH12_T14 0x00
#define SHT25_RH8_T12 0x01
#define SHT25_RH10_T13 0x80
#define SHT25_RH11_T11 0x81
 
#define SHT25_ADDR 0x80
 
#include "SHT25.c"
 
/Modules/Sensors/SHT25V01A/SW/PIC16F887/main.bak
1,103 → 1,10
#include "main.h"
#include "SHT25.h"
 
void SHT25_soft_reset()
{
i2c_start(); // Start condition
i2c_write(0x80); // Device address
i2c_write(0xFE); // Device command
i2c_stop(); // Stop condition
}
 
#define SHT25_HEATER_ON 0x04
#define SHT25_HEATER_OFF 0x00
#define SHT25_OTP_reload_off 0x02
#define SHT25_RH12_T14 0x00
#define SHT25_RH8_T12 0x01
#define SHT25_RH10_T13 0x80
#define SHT25_RH11_T11 0x81
 
#define SHT25_ADDR 0x80
 
unsigned int8 SHT25_setup(unsigned int8 setup_reg ) // writes to status register and returns its value
{
unsigned int8 reg;
 
i2c_start(); // Start condition
i2c_write(SHT25_ADDR); // Device address
i2c_write(0xE7); // Device command
 
i2c_start(); // Start condition
i2c_write(SHT25_ADDR+1); // Device address
reg=i2c_read(0); // Read status actual status register
 
reg = (reg & 0x3A) | setup_reg;
 
i2c_start(); // Start condition
i2c_write(SHT25_ADDR); // Device address
i2c_write(0xE7); // Write to status register
i2c_write(reg); // Device command
i2c_stop(); // Stop condition
 
return (reg);
}
 
 
float SHT25_get_temp()
{
unsigned int8 MSB, LSB, Check;
unsigned int16 data;
 
i2c_start();
I2C_Write(SHT25_ADDR);
I2C_write(0xE3);
i2c_stop();
delay_ms(100);
i2c_start();
I2C_Write(SHT25_ADDR+1);
MSB=i2c_read(1);
LSB=i2c_read(1);
Check=i2c_read(0);
i2c_stop();
LSB = LSB >> 2; // trow out status bits
 
data = (((unsigned int16) MSB << 8) + (LSB << 4));
return(-46.85 + 175.72*((float)data/0xFFFF));
}
 
float SHT25_get_hum()
{
unsigned int8 MSB, LSB, Check;
unsigned int16 data;
 
i2c_start(); //RH
I2C_Write(SHT25_ADDR);
I2C_write(0xE5);
// i2c_stop();
 
delay_ms(100);
 
i2c_start();
I2C_Write(SHT25_ADDR+1);
MSB=i2c_read(1);
LSB=i2c_read(1);
Check=i2c_read(0);
i2c_stop();
 
// printf("%X %X %X\r\n",MSB, LSB, Check);
 
LSB = LSB >> 2; // trow out status bits
 
data = (((unsigned int16) MSB << 8) + (LSB << 4) );
return( -6.0 + 125.0*((float)data/0xFFFF));
}
 
 
void main()
{
unsigned int8 i=0;
unsigned int8 i=0, sht_config;
 
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
114,13 → 21,13
 
while(TRUE)
{
if (TRUE)
printf("setup: %X \r\n",SHT25_setup(SHT25_RH12_T14 | SHT25_HEATER_OFF));
if (i<10) sht_config = SHT25_RH12_T14 | SHT25_HEATER_OFF; // loop alters on chip heater on and off to check correct function
else
{
printf("setup: %X \r\n",SHT25_setup(SHT25_RH12_T14 | SHT25_HEATER_ON));
i = 0;
sht_config = SHT25_RH12_T14 | SHT25_HEATER_ON;
if (i > 20) i = 0;
}
printf("setup: %X %X \r\n",SHT25_setup(sht_config),sht_config);
delay_ms (500);
printf("Temp: %f \r\n",SHT25_get_temp());
delay_ms (500);
/Modules/Sensors/SHT25V01A/SW/PIC16F887/main.c
1,103 → 1,13
/*
SHT25 sensor demo firmware
*/
 
#include "main.h"
#include "SHT25.h"
 
void SHT25_soft_reset()
{
i2c_start(); // Start condition
i2c_write(0x80); // Device address
i2c_write(0xFE); // Device command
i2c_stop(); // Stop condition
}
 
#define SHT25_HEATER_ON 0x04
#define SHT25_HEATER_OFF 0x00
#define SHT25_OTP_reload_off 0x02
#define SHT25_RH12_T14 0x00
#define SHT25_RH8_T12 0x01
#define SHT25_RH10_T13 0x80
#define SHT25_RH11_T11 0x81
 
#define SHT25_ADDR 0x80
 
unsigned int8 SHT25_setup(unsigned int8 setup_reg ) // writes to status register and returns its value
{
unsigned int8 reg;
 
i2c_start(); // Start condition
i2c_write(SHT25_ADDR); // Device address
i2c_write(0xE7); // Device command
 
i2c_start(); // Start condition
i2c_write(SHT25_ADDR+1); // Device address
reg=i2c_read(0); // Read status actual status register
 
reg = (reg & 0x3A) | setup_reg;
 
i2c_start(); // Start condition
i2c_write(SHT25_ADDR); // Device address
i2c_write(0xE7); // Write to status register
i2c_write(reg); // Device command
i2c_stop(); // Stop condition
 
return (reg);
}
 
 
float SHT25_get_temp()
{
unsigned int8 MSB, LSB, Check;
unsigned int16 data;
 
i2c_start();
I2C_Write(SHT25_ADDR);
I2C_write(0xE3);
i2c_stop();
delay_ms(100);
i2c_start();
I2C_Write(SHT25_ADDR+1);
MSB=i2c_read(1);
LSB=i2c_read(1);
Check=i2c_read(0);
i2c_stop();
LSB = LSB >> 2; // trow out status bits
 
data = (((unsigned int16) MSB << 8) + (LSB << 4));
return(-46.85 + 175.72*((float)data/0xFFFF));
}
 
float SHT25_get_hum()
{
unsigned int8 MSB, LSB, Check;
unsigned int16 data;
 
i2c_start(); //RH
I2C_Write(SHT25_ADDR);
I2C_write(0xE5);
// i2c_stop();
 
delay_ms(100);
 
i2c_start();
I2C_Write(SHT25_ADDR+1);
MSB=i2c_read(1);
LSB=i2c_read(1);
Check=i2c_read(0);
i2c_stop();
 
// printf("%X %X %X\r\n",MSB, LSB, Check);
 
LSB = LSB >> 2; // trow out status bits
 
data = (((unsigned int16) MSB << 8) + (LSB << 4) );
return( -6.0 + 125.0*((float)data/0xFFFF));
}
 
 
void main()
{
unsigned int8 i=0;
unsigned int8 i=0, sht_config;
 
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
114,13 → 24,13
 
while(TRUE)
{
if (i<10)
printf("setup: %X \r\n",SHT25_setup(SHT25_RH12_T14 | SHT25_HEATER_OFF));
if (i<10) sht_config = SHT25_RH12_T14 | SHT25_HEATER_OFF; // loop alters on chip heater on and off to check correct function
else
{
printf("setup: %X \r\n",SHT25_setup(SHT25_RH12_T14 | SHT25_HEATER_ON));
i = 0;
sht_config = SHT25_RH12_T14 | SHT25_HEATER_ON;
if (i > 20) i = 0;
}
printf("setup: %X %X \r\n",SHT25_setup(sht_config),sht_config);
delay_ms (500);
printf("Temp: %f \r\n",SHT25_get_temp());
delay_ms (500);
/Modules/Sensors/SHT25V01A/SW/PIC16F887/main.cof
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Modules/Sensors/SHT25V01A/SW/PIC16F887/main.err
1,2 → 1,2
Memory usage: ROM=28% RAM=3% - 10%
Memory usage: ROM=29% RAM=3% - 10%
0 Errors, 0 Warnings.
/Modules/Sensors/SHT25V01A/SW/PIC16F887/main.esym
1,7 → 1,7
D G "__PCM__" 0 134 ""4.106""
D G "__DEVICE__" 0 134 "887"
D G "__DATE__" 0 134 ""14-IV-13""
D G "__TIME__" 0 134 ""13:34:10"" "Standard Header file for the PIC16F887 device ////////////////"
D G "__PCM__" 0 44 ""4.106""
D G "__DEVICE__" 0 44 "887"
D G "__DATE__" 0 44 ""14-IV-13""
D G "__TIME__" 0 44 ""13:00:06"" "SHT25 sensor demo firmware"
d G "PIN_A0" 2 20 "40"
d G "PIN_A1" 2 21 "41"
d G "PIN_A2" 2 22 "42"
273,50 → 273,56
d G "INT_RB5" 2 418 "0x0200B08"
d G "INT_RB6" 2 419 "0x0400B08"
d G "INT_RB7" 2 420 "0x0800B08"
F G "SHT25_soft_reset" 0 3 "void()"
C L "SHT25_soft_reset" 0 5 1 "FUNCTION"
C L "SHT25_soft_reset" 0 5 1 "FUNCTION"
C L "SHT25_soft_reset" 0 5 1 "FUNCTION"
C L "SHT25_soft_reset" 0 5 1 "FUNCTION"
D G "SHT25_HEATER_ON" 0 11 "0x04"
D G "SHT25_HEATER_OFF" 0 12 "0x00"
D G "SHT25_OTP_reload_off" 0 13 "0x02"
D G "SHT25_RH12_T14" 0 14 "0x00"
D G "SHT25_RH8_T12" 0 15 "0x01"
D G "SHT25_RH10_T13" 0 16 "0x80"
D G "SHT25_RH11_T11" 0 17 "0x81"
D G "SHT25_ADDR" 0 19 "0x80"
F G "SHT25_setup" 0 21 "int8(int8 setup_reg)"
V L "setup_reg" 0 21 "int8" "writes to status register and returns its value"
V L "reg" 0 23 "int8"
C L "SHT25_setup" 0 5 1 "FUNCTION"
C L "SHT25_setup" 0 5 1 "FUNCTION"
C L "SHT25_setup" 0 5 1 "FUNCTION"
C L "SHT25_setup" 0 5 1 "FUNCTION"
C L "SHT25_setup" 0 5 1 "FUNCTION"
C L "SHT25_setup" 0 5 1 "FUNCTION"
C L "SHT25_setup" 0 5 1 "FUNCTION"
C L "SHT25_setup" 0 5 1 "FUNCTION"
C L "SHT25_setup" 0 5 1 "FUNCTION"
C L "SHT25_setup" 0 5 1 "FUNCTION"
C L "SHT25_setup" 0 5 1 "FUNCTION"
F G "SHT25_get_temp" 0 45 "float()"
V L "MSB" 0 47 "int8"
V L "LSB" 0 47 "int8"
V L "Check" 0 47 "int8"
V L "data" 0 48 "int16"
C L "SHT25_get_temp" 0 5 1 "FUNCTION"
F G "SHT25_get_hum" 0 70 "float()"
V L "MSB" 0 72 "int8"
V L "LSB" 0 72 "int8"
V L "Check" 0 72 "int8"
V L "data" 0 73 "int16"
C L "SHT25_get_hum" 0 5 1 "FUNCTION"
C L "SHT25_get_hum" 0 5 1 "FUNCTION"
C L "SHT25_get_hum" 0 5 1 "FUNCTION"
C L "SHT25_get_hum" 0 5 1 "FUNCTION"
F G "MAIN" 0 98 "void()"
V L "i" 0 100 "int8"
D G "SHT25_HEATER_ON" 3 2 "0x04"
D G "SHT25_HEATER_OFF" 3 3 "0x00"
D G "SHT25_OTP_reload_off" 3 4 "0x02"
D G "SHT25_RH12_T14" 3 5 "0x00"
D G "SHT25_RH8_T12" 3 6 "0x01"
D G "SHT25_RH10_T13" 3 7 "0x80"
D G "SHT25_RH11_T11" 3 8 "0x81"
D G "SHT25_ADDR" 3 10 "0x80"
F G "SHT25_soft_reset" 4 1 "void()"
C L "SHT25_soft_reset" 4 3 1 "FUNCTION"
C L "SHT25_soft_reset" 4 3 1 "FUNCTION"
C L "SHT25_soft_reset" 4 3 1 "FUNCTION"
C L "SHT25_soft_reset" 4 3 1 "FUNCTION"
F G "SHT25_setup" 4 9 "int8(int8 setup_reg)"
V L "setup_reg" 4 9 "int8" "writes to status register and returns its value"
V L "reg" 4 11 "int8"
C L "SHT25_setup" 4 3 1 "FUNCTION"
C L "SHT25_setup" 4 3 1 "FUNCTION"
C L "SHT25_setup" 4 3 1 "FUNCTION"
C L "SHT25_setup" 4 3 1 "FUNCTION"
C L "SHT25_setup" 4 3 1 "FUNCTION"
C L "SHT25_setup" 4 3 1 "FUNCTION"
C L "SHT25_setup" 4 3 1 "FUNCTION"
C L "SHT25_setup" 4 3 1 "FUNCTION"
C L "SHT25_setup" 4 3 1 "FUNCTION"
C L "SHT25_setup" 4 3 1 "FUNCTION"
C L "SHT25_setup" 4 3 1 "FUNCTION"
C L "SHT25_setup" 4 3 1 "FUNCTION"
C L "SHT25_setup" 4 3 1 "FUNCTION"
C L "SHT25_setup" 4 3 1 "FUNCTION"
C L "SHT25_setup" 4 3 1 "FUNCTION"
C L "SHT25_setup" 4 3 1 "FUNCTION"
C L "SHT25_setup" 4 3 1 "FUNCTION"
F G "SHT25_get_temp" 4 43 "float()"
V L "MSB" 4 45 "int8"
V L "LSB" 4 45 "int8"
V L "Check" 4 45 "int8"
V L "data" 4 46 "int16"
C L "SHT25_get_temp" 4 3 1 "FUNCTION"
F G "SHT25_get_hum" 4 68 "float()"
V L "MSB" 4 70 "int8"
V L "LSB" 4 70 "int8"
V L "Check" 4 70 "int8"
V L "data" 4 71 "int16"
C L "SHT25_get_hum" 4 3 1 "FUNCTION"
C L "SHT25_get_hum" 4 3 1 "FUNCTION"
F G "MAIN" 0 8 "void()"
V L "i" 0 10 "int8"
V L "sht_config" 0 10 "int8"
C L "MAIN" 0 27 1 "FUNCTION"
F B "reset_cpu" 0 0
F B "abs" 1 0
F B "sleep_ulpwu" 1 0
/Modules/Sensors/SHT25V01A/SW/PIC16F887/main.hex
2,249 → 2,258
:10001000ED34E434F43CA0306E32203AE536F03270
:10002000F230F43AF232A0396537F3377210653C9A
:10003000E136703665100D050000F332F43A701D9C
:10004000A01258100D050000F332F43A701DA012F2
:1000500058100D050001D4326D383A102533A00632
:100060000A00C83A6D1DA01266100D050000083088
:10007000F80000008711A0112008831687000000F7
:100080008312A70D0712031C4B2820162008831685
:1000900087004F2883122012200883168700000053
:1000A0008312A0152008831687008312871D562807
:1000B000F80B392800008711A0112008831687004B
:1000C000000083122016200883168700000000001D
:1000D0008312A0152008831687008312871D6E28BF
:1000E000F8010000071A78148711A0112008831660
:1000F00087008312071220122008831687008312BC
:100100000800201620088316870000008312A0151F
:10011000200883168700000083120712201220088F
:1001200083168700000083128711A0112008831610
:10013000870080308312A7003720FE30A7003720C9
:10014000201220088316870000008312A0152008C3
:10015000831687008312871DAB280000AF2800009C
:100160002016200883168700000083128A150A12C1
:10017000662883168613831286130830F800C02879
:100180000000F817D128F813B30C03188617031CC6
:1001900086137817D1287813F80BC428CF280000CD
:1001A00086173F308400840BD3280000F81BC32837
:1001B000781BCB280800831603178C170C1400003B
:1001C000000083120C087F3903191F290313A200B2
:1001D00003170D080313A30003170F080313A4004C
:1001E0002208B300B920230803178D000313240845
:1001F00003178F0083168C170C1400000000831265
:100200000C0D0E0D7F3903191F290313A2000317CC
:100210000D080313A30003170F080313A4002208FB
:10022000B300B920230803178D0003132408031714
:100230008F008D0A03198F0A0313DB28031703139A
:100240008A150A126F2827308400831300080319C7
:1002500036290230F800F701F70B2C29F80B2B296F
:100260009730F700F70B3229800B29290800083056
:10027000A8007708A9002016200883168700000030
:100280008312A0152008831687008312871D462934
:10029000071A0314071E0310F80D0000A011200810
:1002A0008316870083128711A80B3B29201620088C
:1002B0008316870000008312071229080319652995
:1002C000201220088316870083120000A015200842
:1002D000831687008312871D6B2900008711A011E8
:1002E00020088316870000008312071220122008BE
:1002F00083168700831208002016200883168700C3
:1003000000008312A01520088316870000008312C6
:10031000071220122008831687000000831287111D
:10032000A01120088316870080308312A700372091
:10033000E730A7003720201620088316870000002A
:100340008312A01520088316870000008312871DE2
:10035000A7290712201220088316870000008312A5
:100360008711A01120088316870081308312A7000F
:100370003720F70137217808A30023083A392204EF
:10038000A300201620088316870000008312A01502
:1003900020088316870000008312871DCD290712CD
:1003A0002012200883168700000083128711A011F5
:1003B00020088316870080308312A7003720E7309B
:1003C000A70037202308A700372020122008831613
:1003D000870000008312A01520088316870083126F
:1003E000871DF0290000F42900002016200883163C
:1003F0008700000083122308F80008008316031703
:100400008C170C140000000003182D2A83120C080E
:100410007F390313A70003170D080313A800031760
:100420000F080313A9002708B300B92028080317F1
:100430008D000313290803178F0083168C170C14E3
:100440000000000083120313A60B272A2A2A831612
:1004500003172D2A4C2A8316031783120C0D0E0D39
:100460007F390313A70003170D080313A800031710
:100470000F080313A9002708B300B92028080317A1
:100480008D000313290803178F008D0A03198F0AA3
:1004900003100313A60BFE290800A41B5F2A0F30CC
:1004A000F700230EF7050A30770203185A2A303076
:1004B000F7075C2A2408F7077708B300B9200F3044
:1004C000A3050A3023020318672A3030692AA413CF
:1004D0002408A3072308B300B92008008E30F700D2
:1004E0002808F8002708F900FA01F808031D822AF5
:1004F0007908F800F9010830F702F808031D822A8C
:10050000F7018A2A0310F81B892AF90DF80DF70361
:10051000822AF81308002B080319502BB7002F0864
:100520000319502BB702031C9A2A7F30B707031810
:10053000502BA02A8130B702031C502B0319502BDB
:100540003708F700F801F901FA01B6012C08B500E7
:10055000B5172D08B4002E08B3001930B7003208C3
:10056000B3020318C32A0130B4020318C32AB50228
:100570000318C32AB6020318C32AB60AB50AB40A76
:100580003208B307F52A3108B4020318DE2A013015
:10059000B5020318DE2AB6020318DE2AB60AB50A27
:1005A0003108B4073208B307031CF52AB40A031D47
:1005B000F52AB50A031DF52AB60AF52A300880384F
:1005C000B5020318F42A0130B6020318F42AB60A59
:1005D00030088038B5073108B407031CD22AB50AA1
:1005E000031DD22AB60AD22A7A14B70BF82A032B93
:1005F0000310B30DB40DB50DB60D0310FA0DF90DC2
:10060000F80DB80DAF2A381C0B2B0310F80CF90CA1
:10061000FA0CB80C0E2BF7030319502BB81B372B11
:100620000310B30DB40DB50DB60D3208B3020318A7
:10063000232B0130B4020318232BB5020318232BFC
:10064000B602031C462B3108B40203182E2B0130CE
:10065000B50203182E2BB602031C462B3008803837
:10066000B5020318372B0130B602031C462BFA0AD9
:10067000031D462BF90A031D462BF80A031D462BC2
:10068000F70A0319502BF80CF90CFA0C2C08B700D8
:100690003008B706B71F4E2BF817542BF813542BFE
:1006A000F701F801F901FA01080033080319C52B15
:1006B000BB0037080319C52BBB070318662B7F3017
:1006C000BB02031CC52B0319C52B6A2B8130BB074A
:1006D0000318C52B3B08F700F801F901FA013408AB
:1006E000BF00BF173508BE003608BD001830BB007C
:1006F000BC013D1C932B3A08FA07031C852BF90A11
:10070000031D852BF80A0319BC173908F907031CC8
:100710008C2BF80A0319BC173808B500B517350833
:10072000F8070318BC17BC0DF80CF90CFA0CBF0C39
:10073000BE0CBD0C0310BB0B782B0130F707031860
:10074000C52BF81BAA2BBF0DFA0DF90DF80DF703F9
:100750000319C52BBF1FBB2BFA0A031DBB2BF90ABC
:10076000031DBB2BF80A031DBB2BF80CF90CFA0C6C
:10077000F70A0319C52B3408BC003808BC06BC1F97
:10078000C32BF817C92BF813C92BF701F801F9018E
:10079000FA01080080308318AC06B101B2012808C4
:1007A000B0002C08B00627080319BA2CAF00F700D8
:1007B0002B080319C32CAF0203195F2C031C1D2C3B
:1007C0002C08B500B5172D08B4002E08B300B201EF
:1007D0000310B50CB40CB30CB20CAF0BE72BB01F6D
:1007E000F42B3114D72C31102F1031162A308400FD
:1007F0008313EC2C3112B01B072C2F1C122CB50CC0
:10080000B40CB30CB20CF70A0319D22C122CB51B82
:10081000152C0310B20DB30DB40DB50DF70303196C
:10082000D22C072C31177F2C31132808B000B01FB1
:100830001B2CB517CB2CB513CB2C2B08AF00F70016
:100840002708AF022808B500B5172908B4002A0800
:10085000B300B2010310B50CB40CB30CB20CAF0B67
:10086000292CB01F362CB114D72CB1102F10B11673
:100870002E3084008313EC2CB112B01B492C2F1C9A
:10088000542CB50CB40CB30CB20CF70A0319D22CCF
:10089000542CB51B572C0310B20DB30DB40DB50D70
:1008A000F7030319D22C492CB1177F2CB1132C0854
:1008B000B000B01F5D2CB517CB2CB513CB2C2C087A
:1008C000B500B5172D08B4002E08B300B01F6C2C6E
:1008D000B5133115D72C3111B2012F102A308400F5
:1008E0008313EC2CB01B952C2808B0002F1C7F2CF8
:1008F000B50CB40CB30CB20CF70A0319D22CB21F0E
:10090000902CB30A031D902CB40A031D902CB50A39
:10091000031D902CB50CB40CB30CF70A0319D22CA0
:10092000311B142CB11B562CB42C8030B506B51FCE
:100930009D2CD72C2C08B000AA2C2808B000B50894
:10094000031DAA2CB408031DAA2CB308031DAA2C4E
:10095000F701CB2CB51BB42C0310B20DB30DB40DA5
:10096000B50DF70BAA2CD22CB01FB82CB517CB2C79
:10097000B513CB2C2B08F7002C08B5002D08B400BC
:100980002E08B300CB2C2708F7002808B50029084B
:10099000B4002A08B3003508F8003408F900330819
:1009A000FA000A2DF701F801F901FA010A2DB20146
:1009B000B309B409B509B209B20A031DE52CB30A9B
:1009C000031DE52CB40A0319B50A3118F32BB1182D
:1009D000352C31196B2C9A2C0008B307031CF62C0C
:1009E000B40A031DF62CB50A03192F14840300085A
:1009F000B407031CFE2CB50A03192F148403000846
:100A0000801F803AB50703182F14311AFA2BB11A38
:100A10003C2C722C0800201620088316870000004A
:100A20008312A01520088316870000008312071286
:100A30002012200883168700000083128711A0115E
:100A400020088316870080308312A7003720E33008
:100A5000A700372020122008831687000000831289
:100A6000A0152008831687008312871D352D0000EE
:100A7000392D0000201620088316870000006430FE
:100A80008312A70023212016200883168700000068
:100A90008312A01520088316870000008312071216
:100AA0002012200883168700000083128711A011EE
:100AB00020088316870081308312A7003720013079
:100AC000F70037217808A2000130F70037217808B5
:100AD000A300F70137217808A4002012200883160C
:100AE000870000008312A015200883168700831258
:100AF000871D782D00007C2D00002016200883160D
:100B0000870000008312A30CA30C3F30A305A801AB
:100B10002208A700A800A701230EF700F030F70570
:100B200077082707A5002808A6000318A60A2608A4
:100B3000A8002508A7006E227708A7007808A8005B
:100B40007908A9007A08AA00AE007908AD007808F3
:100B5000AC007708AB00B201FF30B1007F30B000CD
:100B60008E30AF008B225230B600B830B5002F3037
:100B7000B4008630B3007A08BA007908B900780862
:100B8000B8007708B700552383106630AA00A90083
:100B9000BB30A8008430A7007A08AE007908AD0009
:100BA0007808AC007708AB00CA238A150A12DB2844
:100BB000F701F801F901FA01BB01BC01BD01BE0159
:100BC0003A083904380437040319162E2030BF00C0
:100BD0000310B30DB40DB50DB60DBB0DBC0DBD0DA1
:100BE000BE0D3A083E02031DFF2D39083D02031DCC
:100BF000FF2D38083C02031DFF2D37083B02031C64
:100C0000102E3708BB023808031C380FBC02390805
:100C1000031C390FBD023A08031C3A0FBE0203142D
:100C2000F70DF80DF90DFA0DBF0BE82D3B308400E0
:100C3000831308000408AB002A08AD000319392EFD
:100C40002908B6002808B5002708B4002608B30014
:100C5000BA01B9012030B8008230B70055237A08B4
:100C6000A9007908A8007808A7007708A600AD0BAE
:100C7000202E2908B6002808B5002708B400260849
:100C8000B3003308B63CB300FA013408B700B41718
:100C90000310B40CB50CB60CFA0CF90CF80CF70CEC
:100CA000B30B482EB71F5F2EF709F809F909FA09A7
:100CB000F70A0319F80A0319F90A0319FA0A7A0854
:100CC000A9007908A8007808A7007708A600A91F3E
:100CD000762EAB03AB16A609A709A809A909A60A8F
:100CE0000319A70A0319A80A0319A90A3B30B2007D
:100CF0009A30B100CA30B000AF010A30AD002A0806
:100D00000319AB0A2908B6002808B5002708B40063
:100D10002608B3003208BA003108B9003008B8001C
:100D20002F08B700D8250008A600840A0008A700ED
:100D3000840A0008A800840A0008A900FD3084077E
:100D4000F708031DB62E2A0A2D020319B62E2B080A
:100D50000319B82E0F392D020319B02E0318E82EEF
:100D6000AB1BE82E2B1BB82E2030E42E2030AB0519
:100D7000AB1EC62EAB122A08031DAB037708AB00CF
:100D80002D30B300B9202B08F700AB012A082D0243
:100D9000031DD42E7708AB002E30B300B9202B08EA
:100DA000F7002030AB0500303030AB1EE42EAB1224
:100DB0002A08031DAB037708AB002D30B300B92020
:100DC0002B08F700AB013030F7077708B300B920E4
:100DD0003208B6003108B5003008B4002F08B3005F
:100DE000BA01B901B8010A30B700D8257A08B200B3
:100DF0007908B1007808B0007708AF00AD0B822EFB
:100E00000800201620088316870000008312A01512
:100E10002008831687000000831207122012200882
:100E200083168700000083128711A0112008831603
:100E3000870080308312A7003720E530A7003720D5
:100E40006430A700232120162008831687000000A5
:100E50008312A01520088316870000008312871DC7
:100E60002F2F0712201220088316870000008312FC
:100E70008711A01120088316870081308312A700F4
:100E800037200130F70037217808A2000130F70041
:100E900037217808A300F70137217808A400201231
:100EA00020088316870000008312A01520088316EF
:100EB00087008312871D5A2F00005E2F0000201626
:100EC00020088316870000008312A30CA30C3F3078
:100ED000A305A8012208A700A800A701230EF70078
:100EE000F030F70577082707A5002808A6000318A3
:100EF000A60A2608A8002508A7006E227708A700E2
:100F00007808A8007908A9007A08AA00AE00790834
:100F1000AD007808AC007708AB00B201FF30B1003B
:100F20007F30B0008E30AF008B22B601B5017A3031
:100F3000B4008530B3007A08BA007908B90078089F
:100F4000B8007708B70055238310AA01A901C03063
:100F5000A8008130A7007A08AE007908AD007808B3
:0E0F6000AC007708AB00CA238A150A121929C3
:10004000A0125810252CA0060A00D4326D383A10A0
:100050002533A0060A00C83A6D1DA01266100D05D2
:1000600000000830F80000008711A0112008831656
:10007000870000008312A80D0712031C45282016D4
:10008000200883168700492883122012200883162F
:10009000870000008312A0152008831687008312B2
:1000A000871D5028F80B332800008711A011200865
:1000B000831687000000831220162008831687000D
:1000C000000000008312A015200883168700831209
:1000D000871D6828F8010000071A78148711A011FD
:1000E0002008831687008312071220122008831627
:1000F000870083120800201620088316870000005E
:100100008312A015200883168700000083120712AF
:100110002012200883168700000083128711A01187
:1001200020088316870080308312A8003120FE301B
:10013000A8003120201220088316870000008312B7
:10014000A0152008831687008312871DA5280000AC
:10015000A9280000201620088316870000008312BB
:100160008A150A12662883168613831286130830AE
:10017000F800BA280000F817CB28F813B40C0318BD
:100180008617031C86137817CB287813F80BBE2824
:10019000C928000086173F308400840BCD2800005A
:1001A000F81BBD28781BC5280800831603178C1779
:1001B0000C140000000083120C087F390319192960
:1001C0000313A30003170D080313A40003170F085C
:1001D0000313A5002308B400B320240803178D00DF
:1001E0000313250803178F0083168C170C140000C7
:1001F000000083120C0D0E0D7F390319192903130A
:10020000A30003170D080313A40003170F0803131B
:10021000A5002308B400B320240803178D0003139E
:10022000250803178F008D0A03198F0A0313D52899
:10023000031703138A150A126F28283084008313CA
:100240000008031930290230F800F701F70B2629BE
:10025000F80B25299730F700F70B2C29800B232961
:1002600008000830A9007708AA0020162008831685
:10027000870000008312A0152008831687008312D0
:10028000871D4029071A0314071E0310F80D0000EC
:10029000A01120088316870083128711A90B352926
:1002A00020162008831687000000831207122A08F0
:1002B00003195F292012200883168700831200008B
:1002C000A0152008831687008312871D652900006A
:1002D0008711A011200883168700000083120712DF
:1002E0002012200883168700831208002016200899
:1002F0008316870000008312A0152008831687004C
:1003000000008312071220122008831687000000C5
:1003100083128711A0112008831687008030831272
:10032000A8003120E730A8003120201620088316CD
:10033000870000008312A0152008831687000000A4
:100340008312871DA1290712201220088316870017
:10035000000083128711A0112008831687008130C6
:100360008312A8003120F70131217808A400240865
:100370003A392304A40020162008831687000000C1
:100380008312A01520088316870000008312871DA2
:10039000C729071220122008831687000000831245
:1003A0008711A01120088316870080308312A800CF
:1003B0003120E630A80031202408A8003120201286
:1003C00020088316870000008312A01520088316DA
:1003D00087008312871DEA290000EE2900002016FD
:1003E00020088316870000000A308312A8001D2110
:1003F000201620088316870000008312A01520080D
:10040000831687000000831207122012200883162B
:100410008700000083128711A0112008831687002F
:1004200080308312A8003120E730A8003120201648
:1004300020088316870000008312A0152008831669
:10044000870000008312871D232A0712201220082C
:1004500083168700000083128711A01120088316DD
:10046000870081308312A8003120F70131217808FC
:10047000A4002408F8008A150A1289288316031795
:100480008C170C140000000003186D2A83120C084E
:100490007F390313A80003170D080313A9000317DE
:1004A0000F080313AA002808B400B3202908031773
:1004B0008D0003132A0803178F0083168C170C1462
:1004C0000000000083120313A70B672A6A2A831611
:1004D00003176D2A8C2A8316031783120C0D0E0D39
:1004E0007F390313A80003170D080313A90003178E
:1004F0000F080313AA002808B400B3202908031723
:100500008D0003132A0803178F008D0A03198F0A21
:1005100003100313A70B3E2A0800A51B9F2A0F30C8
:10052000F700240EF7050A30770203189A2A3030B4
:10053000F7079C2A2508F7077708B400B3200F3087
:10054000A4050A3024020318A72A3030A92AA513CB
:100550002508A4072408B400B32008008E30F70053
:100560002908F8002808F900FA01F808031DC22A32
:100570007908F800F9010830F702F808031DC22ACB
:10058000F701CA2A0310F81BC92AF90DF80DF70361
:10059000C22AF81308002C080319902BB800300861
:1005A0000319902BB802031CDA2A7F30B80703180E
:1005B000902BE02A8130B802031C902B0319902B5A
:1005C0003808F700F801F901FA01B7012D08B60063
:1005D000B6172E08B5002F08B4001930B80033083C
:1005E000B4020318032B0130B5020318032BB60223
:1005F0000318032BB7020318032BB70AB60AB50A70
:100600003308B407352B3208B50203181E2B01300E
:10061000B60203181E2BB70203181E2BB70AB60A20
:100620003208B5073308B407031C352BB50A031D80
:10063000352BB60A031D352BB70A352B3108803808
:10064000B6020318342B0130B7020318342BB70A53
:1006500031088038B6073208B507031C122BB60ADA
:10066000031D122BB70A122B7A14B80B382B432B0D
:100670000310B40DB50DB60DB70D0310FA0DF90D3D
:10068000F80DB90DEF2A391C4B2B0310F80CF90C9F
:10069000FA0CB90C4E2BF7030319902BB91B772BCF
:1006A0000310B40DB50DB60DB70D3308B402031821
:1006B000632B0130B5020318632BB6020318632BBA
:1006C000B702031C862B3208B50203186E2B0130CB
:1006D000B60203186E2BB702031C862B3108803834
:1006E000B6020318772B0130B702031C862BFA0AD7
:1006F000031D862BF90A031D862BF80A031D862B82
:10070000F70A0319902BF80CF90CFA0C2D08B80015
:100710003108B806B81F8E2BF817942BF813942BBA
:10072000F701F801F901FA01080034080319052C52
:10073000BC0038080319052CBC070318A62B7F3012
:10074000BC02031C052C0319052CAA2B8130BC0705
:100750000318052C3C08F700F801F901FA013508E7
:10076000C000C0173608BF003708BE001830BC00F4
:10077000BD013E1CD32B3B08FA07031CC52BF90A0D
:10078000031DC52BF80A0319BD173A08F907031C06
:10079000CC2BF80A0319BD173908B600B61736086E
:1007A000F8070318BD17BD0DF80CF90CFA0CC00CB6
:1007B000BF0CBE0C0310BC0BB82B0130F70703189D
:1007C000052CF81BEA2BC00DFA0DF90DF80DF703F7
:1007D0000319052CC01FFB2BFA0A031DFB2BF90A7A
:1007E000031DFB2BF80A031DFB2BF80CF90CFA0C6C
:1007F000F70A0319052C3508BD003908BD06BD1FD1
:10080000032CF817092CF813092CF701F801F9014A
:10081000FA01080080308318AD06B201B30129083F
:10082000B1002D08B10628080319FA2CB000F70012
:100830002C080319032DB00203199F2C031C5D2CF7
:100840002D08B600B6172E08B5002F08B400B30166
:100850000310B60CB50CB40CB30CB00B272CB11FA5
:10086000342C3214172D3210301032162B308400F5
:1008700083132C2D3212B11B472C301C522CB60C7A
:10088000B50CB40CB30CF70A0319122D522CB61B7D
:10089000552C0310B30DB40DB50DB60DF7030319A8
:1008A000122D472C3217BF2C32132908B100B11F6B
:1008B0005B2CB6170B2DB6130B2D2C08B000F700D0
:1008C0002808B0022908B600B6172A08B5002B0878
:1008D000B400B3010310B60CB50CB40CB30CB00BE0
:1008E000692CB11F762CB214172DB2103010B2162D
:1008F0002F30840083132C2DB212B11B892C301C95
:10090000942CB60CB50CB40CB30CF70A0319122DC9
:10091000942CB61B972C0310B30DB40DB50DB60D6A
:10092000F7030319122D892CB217BF2CB2132D080F
:10093000B100B11F9D2CB6170B2DB6130B2D2D0832
:10094000B600B6172E08B5002F08B400B11FAC2CA6
:10095000B6133215172D3211B30130102B3084002D
:1009600083132C2DB11BD52C2908B100301CBF2CB2
:10097000B60CB50CB40CB30CF70A0319122DB31F47
:10098000D02CB40A031DD02CB50A031DD02CB60AF6
:10099000031DD02CB60CB50CB40CF70A0319122D9C
:1009A000321B542CB21B962CF42C8030B606B61F8A
:1009B000DD2C172D2D08B100EA2C2908B100B6084E
:1009C000031DEA2CB508031DEA2CB408031DEA2C0C
:1009D000F7010B2DB61BF42C0310B30DB40DB50DA0
:1009E000B60DF70BEA2C122DB11FF82CB6170B2DF4
:1009F000B6130B2D2C08F7002D08B6002E08B500F5
:100A00002F08B4000B2D2808F7002908B6002A0883
:100A1000B5002B08B4003608F8003508F900340892
:100A2000FA004A2DF701F801F901FA014A2DB30144
:100A3000B409B509B609B309B30A031D252DB40AD3
:100A4000031D252DB50A0319B60A3218332CB21826
:100A5000752C3219AB2CDA2C0008B407031C362D88
:100A6000B50A031D362DB60A031930148403000895
:100A7000B507031C3E2DB60A031930148403000881
:100A8000801F803AB60703183014321A3A2CB21A73
:100A90007C2CB22C0800201620088316870000004A
:100AA0008312A01520088316870000008312871D7B
:100AB000572D07122012200883168700000083128A
:100AC0008711A01120088316870080308312A800A8
:100AD0003120E330A800312020122008831687003F
:100AE00000008312A0152008831687008312871D3B
:100AF000772D00007B2D000020162008831687002C
:100B0000000064308312A8001D21201620088316DF
:100B1000870000008312A0152008831687000000BC
:100B20008312071220122008831687000000831208
:100B30008711A01120088316870081308312A80036
:100B400031200130F70031217808A3000130F7008F
:100B500031217808A400F70131217808A50020127E
:100B600020088316870000008312A0152008831632
:100B700087008312871DBA2D0000BE2D00002016AD
:100B800020088316870000008312A40CA40C3F30B9
:100B9000A405A9012308A800A900A801240EF700B4
:100BA000F030F70577082807A6002908A7000318E2
:100BB000A70A2708A9002608A800AE227708A800DF
:100BC0007808A9007908AA007A08AB00AF00790874
:100BD000AE007808AD007708AC00B301FF30B2007A
:100BE0007F30B1008E30B000CB225230B700B83029
:100BF000B6002F30B5008630B4007A08BB00790803
:100C0000BA007808B9007708B800952383106630D9
:100C1000AB00AA00BB30A9008430A8007A08AF005E
:100C20007908AE007808AD007708AC000A248A1570
:100C30000A12C528F701F801F901FA01BC01BD014A
:100C4000BE01BF013B083A04390438040319582E89
:100C50002030C0000310B40DB50DB60DB70DBC0D9E
:100C6000BD0DBE0DBF0D3B083F02031D412E3A08CE
:100C70003E02031D412E39083D02031D412E380856
:100C80003C02031C522E3808BC023908031C390FE1
:100C9000BD023A08031C3A0FBE023B08031C3B0F7F
:100CA000BF020314F70DF80DF90DFA0DC00B2A2E33
:100CB0003C308400831308000408AC002B08AE000D
:100CC00003197B2E2A08B7002908B6002808B500AA
:100CD0002708B400BB01BA012030B9008230B80047
:100CE00095237A08AA007908A9007808A80077084F
:100CF000A700AE0B622E2A08B7002908B600280804
:100D0000B5002708B4003408B63CB400FA01350831
:100D1000B800B5170310B50CB60CB70CFA0CF90CEB
:100D2000F80CF70CB40B8A2EB81FA12EF709F8099E
:100D3000F909FA09F70A0319F80A0319F90A031954
:100D4000FA0A7A08AA007908A9007808A8007708A2
:100D5000A700AA1FB82EAC03AC16A709A809A909B9
:100D6000AA09A70A0319A80A0319A90A0319AA0AB2
:100D70003B30B3009A30B200CA30B100B0010A3043
:100D8000AE002B080319AC0A2A08B7002908B600E0
:100D90002808B5002708B4003308BB003208BA00A1
:100DA0003108B9003008B8001A260008A700840AE4
:100DB0000008A800840A0008A900840A0008AA0004
:100DC000FD308407F708031DF82E2B0A2E020319A5
:100DD000F82E2C080319FA2E0F392E020319F22EC1
:100DE00003182A2FAC1B2A2F2C1BFA2E2030262F5B
:100DF0002030AC05AC1E082FAC122B08031DAC0331
:100E00007708AC002D30B400B3202C08F700AC01FB
:100E10002B082E02031D162F7708AC002E30B400CD
:100E2000B3202C08F7002030AC0500303030AC1E69
:100E3000262FAC122B08031DAC037708AC002D3015
:100E4000B400B3202C08F700AC013030F707770866
:100E5000B400B3203308B7003208B6003108B5003B
:100E60003008B400BB01BA01B9010A30B8001A2633
:100E70007A08B3007908B2007808B1007708B000AA
:100E8000AE0BC42E08002016200883168700000031
:100E90008312A01520088316870000008312071212
:100EA0002012200883168700000083128711A011EA
:100EB00020088316870080308312A8003120E53097
:100EC000A80031206430A8001D21201620088316B8
:100ED000870000008312A0152008831687000000F9
:100EE0008312871D712F0712201220088316870096
:100EF000000083128711A01120088316870081301B
:100F00008312A80031200130F70031217808A300B6
:100F10000130F70031217808A400F7013121780869
:100F2000A500201220088316870000008312A01558
:100F30002008831687008312871D9C2F0000A02F96
:100F40000000201620088316870000008312A40CDE
:100F5000A40C3F30A405A9012308A800A900A801FA
:100F6000240EF700F030F70577082807A6002908B7
:100F7000A7000318A70A2708A9002608A800AE2280
:100F80007708A8007808A9007908AA007A08AB00B9
:100F9000AF007908AE007808AD007708AC00B30167
:100FA000FF30B2007F30B1008E30B000CB22B701ED
:100FB000B6017A30B5008530B4007A08BB007908F4
:100FC000BA007808B9007708B80095238310AB0100
:100FD000AA01C030A9008130A8007A08AF007908C2
:100FE000AE007808AD007708AC000A248A150A1212
:020FF0000329D3
:10100000840183131F308305713083168F000F080E
:10101000861383128617831603170908C0398900BF
:1010200003131F129F1200300317880083128701D9
257,38 → 266,36
:1010900008388100831290010030F800920000307F
:1010A000831692008312201520088316870083126E
:1010B000970183169B019C0101309D008312031749
:1010C0008701880189018A11031381288A15043058
:1010D00003178D0000308F008A110313DB288A1557
:1010E0000230A200FA30A7008A1123218A15A20B30
:1010F00072282108093C031CA628A2018A117C2120
:101100008A157808A2001D3003178D0000308F006B
:10111000031007300313A6008A11FE218A15220846
:10112000A3003730A4008A114D228A152030B30065
:101130008A11B9208A150D30B3008A11B9208A1599
:101140000A30B3008A11B9208A15D0280430A200D1
:101150008A117C218A157808A200243003178D009B
:1011600000308F00031007300313A6008A11FE2100
:101170008A152208A3003730A4008A114D228A154F
:101180002030B3008A11B9208A150D30B3008A11BE
:10119000B9208A150A30B3008A11B9208A15A10135
:1011A0000230A200FA30A7008A1123218A15A20B6F
:1011B000D2288A110B2D8A157708A2007808A3007F
:1011C0007908A4007A08A5002B3003178D000030A1
:1011D0008F00031006300313A6008A11FE218A1522
:1011E000893084002508A9002408A8002308A70046
:1011F0002208A6000230AA008A111A268A15203079
:10120000B3008A11B9208A150D30B3008A11B920B4
:101210008A150A30B3008A11B9208A150230A2005B
:10122000FA30A7008A1123218A15A20B10298A11EE
:10123000012F8A157708A2007808A3007908A40076
:101240007A08A500313003178D0000308F0003109D
:1012500005300313A6008A11FE218A158930840007
:101260002508A9002408A8002308A7002208A60032
:101270000230AA008A111A268A152030B3008A117A
:10128000B9208A150D30B3008A11B9208A150A30A9
:10129000B3008A11B9208A150430A200FA30A700E1
:1012A0008A1123218A15A20B4E29A10A79286300ED
:1010C0008701880189018A1103137B288A1504305E
:1010D00003178D0000308F008A110313D5288A155D
:1010E0000230A300FA30A8008A111D218A15A30B33
:1010F00072282108093C031C7F28A201852804309E
:10110000A2002108143C031CA1012208A3008A119B
:1011100076298A157808A3001D3003178D0000304A
:101120008F00031007300313A7008A113E228A158F
:101130002308A4003730A5008A118D228A1520309B
:10114000B4008A11B3208A152208A4003730A50004
:101150008A118D228A152030B4008A11B3208A1595
:101160000D30B4008A11B3208A150A30B4008A11F8
:10117000B3208A150230A300FA30A8008A111D217D
:101180008A15A30BBC288A114B2D8A157708A3005A
:101190007808A4007908A5007A08A600253003176E
:1011A0008D0000308F00031006300313A7008A1152
:1011B0003E228A15893084002608AA002508A90045
:1011C0002408A8002308A7000230AB008A115C267F
:1011D0008A152030B4008A11B3208A150D30B4006E
:1011E0008A11B3208A150A30B4008A11B3208A15F7
:1011F0000230A300FA30A8008A111D218A15A30B22
:10120000FA288A11432F8A157708A3007808A400CA
:101210007908A5007A08A6002B3003178D0000304E
:101220008F00031005300313A7008A113E228A1590
:10123000893084002608AA002508A9002408A800EF
:101240002308A7000230AB008A115C268A152030E3
:10125000B4008A11B3208A150D30B4008A11B3206E
:101260008A150A30B4008A11B3208A150430A3000D
:10127000FA30A8008A111D218A15A30B3829A10A6A
:041280007928630066
:04400E00F42CFF3F50
:00000001FF
;PIC16F887
;CRC=B39D CREATED="14-IV-13 13:34"
;CRC=7EA8 CREATED="14-IV-13 13:00"
/Modules/Sensors/SHT25V01A/SW/PIC16F887/main.lst
1,11 → 1,11
CCS PCM C Compiler, Version 4.106, 47914 14-IV-13 13:34
CCS PCM C Compiler, Version 4.106, 47914 14-IV-13 13:00
 
Filename: Z:\home\kaklik\MLAB\Modules\Sensors\SHT25V01A\SW\PIC16F887\main.lst
Filename: D:\MLAB\Modules\Sensors\SHT25V01A\SW\PIC16F887\main.lst
 
ROM used: 2319 words (28%)
ROM used: 2363 words (29%)
Largest free fragment is 2048
RAM used: 11 (3%) at main() level
37 (10%) worst case
RAM used: 12 (3%) at main() level
38 (10%) worst case
Stack: 2 locations
 
*
13,6 → 13,10
0001: MOVWF 0A
0002: GOTO 000
0003: NOP
.................... /*
.................... SHT25 sensor demo firmware
.................... */
....................
.................... #include "main.h"
.................... #include <16F887.h>
.................... //////// Standard Header file for the PIC16F887 device ////////////////
37,287 → 41,289
....................
.................... #use delay(clock=8000000)
*
0123: MOVLW 27
0124: MOVWF 04
0125: BCF 03.7
0126: MOVF 00,W
0127: BTFSC 03.2
0128: GOTO 136
0129: MOVLW 02
012A: MOVWF 78
012B: CLRF 77
011D: MOVLW 28
011E: MOVWF 04
011F: BCF 03.7
0120: MOVF 00,W
0121: BTFSC 03.2
0122: GOTO 130
0123: MOVLW 02
0124: MOVWF 78
0125: CLRF 77
0126: DECFSZ 77,F
0127: GOTO 126
0128: DECFSZ 78,F
0129: GOTO 125
012A: MOVLW 97
012B: MOVWF 77
012C: DECFSZ 77,F
012D: GOTO 12C
012E: DECFSZ 78,F
012F: GOTO 12B
0130: MOVLW 97
0131: MOVWF 77
0132: DECFSZ 77,F
0133: GOTO 132
0134: DECFSZ 00,F
0135: GOTO 129
0136: RETURN
012E: DECFSZ 00,F
012F: GOTO 123
0130: RETURN
....................
.................... #use i2c(master, sda=PIN_C4, scl=PIN_C3)
*
0037: MOVLW 08
0038: MOVWF 78
0031: MOVLW 08
0032: MOVWF 78
0033: NOP
0034: BCF 07.3
0035: BCF 20.3
0036: MOVF 20,W
0037: BSF 03.5
0038: MOVWF 07
0039: NOP
003A: BCF 07.3
003B: BCF 20.3
003C: MOVF 20,W
003D: BSF 03.5
003E: MOVWF 07
003F: NOP
0040: BCF 03.5
0041: RLF 27,F
0042: BCF 07.4
0043: BTFSS 03.0
0044: GOTO 04B
0045: BSF 20.4
003A: BCF 03.5
003B: RLF 28,F
003C: BCF 07.4
003D: BTFSS 03.0
003E: GOTO 045
003F: BSF 20.4
0040: MOVF 20,W
0041: BSF 03.5
0042: MOVWF 07
0043: GOTO 049
0044: BCF 03.5
0045: BCF 20.4
0046: MOVF 20,W
0047: BSF 03.5
0048: MOVWF 07
0049: GOTO 04F
0049: NOP
004A: BCF 03.5
004B: BCF 20.4
004B: BSF 20.3
004C: MOVF 20,W
004D: BSF 03.5
004E: MOVWF 07
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: DECFSZ 78,F
0059: GOTO 039
004F: BCF 03.5
0050: BTFSS 07.3
0051: GOTO 050
0052: DECFSZ 78,F
0053: GOTO 033
0054: NOP
0055: BCF 07.3
0056: BCF 20.3
0057: MOVF 20,W
0058: BSF 03.5
0059: MOVWF 07
005A: NOP
005B: BCF 07.3
005C: BCF 20.3
005B: BCF 03.5
005C: BSF 20.4
005D: MOVF 20,W
005E: BSF 03.5
005F: MOVWF 07
0060: NOP
0061: BCF 03.5
0062: BSF 20.4
0063: MOVF 20,W
0064: BSF 03.5
0065: MOVWF 07
0066: NOP
0067: NOP
0068: BCF 03.5
0069: BSF 20.3
006A: MOVF 20,W
006B: BSF 03.5
006C: MOVWF 07
006D: BCF 03.5
006E: BTFSS 07.3
006F: GOTO 06E
0070: CLRF 78
0071: NOP
0072: BTFSC 07.4
0073: BSF 78.0
0074: BCF 07.3
0075: BCF 20.3
0061: NOP
0062: BCF 03.5
0063: BSF 20.3
0064: MOVF 20,W
0065: BSF 03.5
0066: MOVWF 07
0067: BCF 03.5
0068: BTFSS 07.3
0069: GOTO 068
006A: CLRF 78
006B: NOP
006C: BTFSC 07.4
006D: BSF 78.0
006E: BCF 07.3
006F: BCF 20.3
0070: MOVF 20,W
0071: BSF 03.5
0072: MOVWF 07
0073: BCF 03.5
0074: BCF 07.4
0075: BCF 20.4
0076: MOVF 20,W
0077: BSF 03.5
0078: MOVWF 07
0079: BCF 03.5
007A: BCF 07.4
007B: BCF 20.4
007C: MOVF 20,W
007D: BSF 03.5
007E: MOVWF 07
007F: BCF 03.5
0080: RETURN
007A: RETURN
*
0137: MOVLW 08
0138: MOVWF 28
0139: MOVF 77,W
013A: MOVWF 29
013B: BSF 20.4
0131: MOVLW 08
0132: MOVWF 29
0133: MOVF 77,W
0134: MOVWF 2A
0135: BSF 20.4
0136: MOVF 20,W
0137: BSF 03.5
0138: MOVWF 07
0139: NOP
013A: BCF 03.5
013B: BSF 20.3
013C: MOVF 20,W
013D: BSF 03.5
013E: MOVWF 07
013F: NOP
0140: BCF 03.5
0141: BSF 20.3
0142: MOVF 20,W
0143: BSF 03.5
0144: MOVWF 07
0145: BCF 03.5
0146: BTFSS 07.3
0147: GOTO 146
0148: BTFSC 07.4
0149: BSF 03.0
014A: BTFSS 07.4
014B: BCF 03.0
014C: RLF 78,F
014D: NOP
014E: BCF 20.3
014F: MOVF 20,W
0150: BSF 03.5
0151: MOVWF 07
0152: BCF 03.5
0153: BCF 07.3
0154: DECFSZ 28,F
0155: GOTO 13B
0156: BSF 20.4
0157: MOVF 20,W
0158: BSF 03.5
0159: MOVWF 07
015A: NOP
015B: BCF 03.5
015C: BCF 07.4
015D: MOVF 29,W
015E: BTFSC 03.2
015F: GOTO 165
0160: BCF 20.4
013F: BCF 03.5
0140: BTFSS 07.3
0141: GOTO 140
0142: BTFSC 07.4
0143: BSF 03.0
0144: BTFSS 07.4
0145: BCF 03.0
0146: RLF 78,F
0147: NOP
0148: BCF 20.3
0149: MOVF 20,W
014A: BSF 03.5
014B: MOVWF 07
014C: BCF 03.5
014D: BCF 07.3
014E: DECFSZ 29,F
014F: GOTO 135
0150: BSF 20.4
0151: MOVF 20,W
0152: BSF 03.5
0153: MOVWF 07
0154: NOP
0155: BCF 03.5
0156: BCF 07.4
0157: MOVF 2A,W
0158: BTFSC 03.2
0159: GOTO 15F
015A: BCF 20.4
015B: MOVF 20,W
015C: BSF 03.5
015D: MOVWF 07
015E: BCF 03.5
015F: NOP
0160: BSF 20.3
0161: MOVF 20,W
0162: BSF 03.5
0163: MOVWF 07
0164: BCF 03.5
0165: NOP
0166: BSF 20.3
0167: MOVF 20,W
0168: BSF 03.5
0169: MOVWF 07
016A: BCF 03.5
016B: BTFSS 07.3
016C: GOTO 16B
0165: BTFSS 07.3
0166: GOTO 165
0167: NOP
0168: BCF 07.3
0169: BCF 20.3
016A: MOVF 20,W
016B: BSF 03.5
016C: MOVWF 07
016D: NOP
016E: BCF 07.3
016F: BCF 20.3
0170: MOVF 20,W
0171: BSF 03.5
0172: MOVWF 07
0173: NOP
016E: BCF 03.5
016F: BCF 07.4
0170: BCF 20.4
0171: MOVF 20,W
0172: BSF 03.5
0173: MOVWF 07
0174: BCF 03.5
0175: BCF 07.4
0176: BCF 20.4
0177: MOVF 20,W
0178: BSF 03.5
0179: MOVWF 07
017A: BCF 03.5
017B: RETURN
0175: RETURN
.................... #use rs232(baud=9600,parity=N,xmit=PIN_B7,rcv=PIN_B6,bits=8) //rcv TXD xmit RXD
*
00B9: BSF 03.5
00BA: BCF 06.7
00BB: BCF 03.5
00BC: BCF 06.7
00BD: MOVLW 08
00BE: MOVWF 78
00BF: GOTO 0C0
00C0: NOP
00C1: BSF 78.7
00C2: GOTO 0D1
00C3: BCF 78.7
00C4: RRF 33,F
00C5: BTFSC 03.0
00C6: BSF 06.7
00C7: BTFSS 03.0
00C8: BCF 06.7
00C9: BSF 78.6
00CA: GOTO 0D1
00CB: BCF 78.6
00CC: DECFSZ 78,F
00CD: GOTO 0C4
00CE: GOTO 0CF
00B3: BSF 03.5
00B4: BCF 06.7
00B5: BCF 03.5
00B6: BCF 06.7
00B7: MOVLW 08
00B8: MOVWF 78
00B9: GOTO 0BA
00BA: NOP
00BB: BSF 78.7
00BC: GOTO 0CB
00BD: BCF 78.7
00BE: RRF 34,F
00BF: BTFSC 03.0
00C0: BSF 06.7
00C1: BTFSS 03.0
00C2: BCF 06.7
00C3: BSF 78.6
00C4: GOTO 0CB
00C5: BCF 78.6
00C6: DECFSZ 78,F
00C7: GOTO 0BE
00C8: GOTO 0C9
00C9: NOP
00CA: BSF 06.7
00CB: MOVLW 3F
00CC: MOVWF 04
00CD: DECFSZ 04,F
00CE: GOTO 0CD
00CF: NOP
00D0: BSF 06.7
00D1: MOVLW 3F
00D2: MOVWF 04
00D3: DECFSZ 04,F
00D4: GOTO 0D3
00D5: NOP
00D6: BTFSC 78.7
00D7: GOTO 0C3
00D8: BTFSC 78.6
00D9: GOTO 0CB
00DA: RETURN
00D0: BTFSC 78.7
00D1: GOTO 0BD
00D2: BTFSC 78.6
00D3: GOTO 0C5
00D4: RETURN
....................
....................
.................... #include "SHT25.h"
....................
.................... #define SHT25_HEATER_ON 0x04
.................... #define SHT25_HEATER_OFF 0x00
.................... #define SHT25_OTP_reload_off 0x02
.................... #define SHT25_RH12_T14 0x00
.................... #define SHT25_RH8_T12 0x01
.................... #define SHT25_RH10_T13 0x80
.................... #define SHT25_RH11_T11 0x81
....................
.................... #define SHT25_ADDR 0x80
....................
.................... #include "SHT25.c"
.................... void SHT25_soft_reset()
.................... {
.................... i2c_start(); // Start condition
*
0081: BSF 20.4
007B: BSF 20.4
007C: MOVF 20,W
007D: BSF 03.5
007E: MOVWF 07
007F: NOP
0080: BCF 03.5
0081: BSF 20.3
0082: MOVF 20,W
0083: BSF 03.5
0084: MOVWF 07
0085: NOP
0086: BCF 03.5
0087: BSF 20.3
0088: MOVF 20,W
0089: BSF 03.5
008A: MOVWF 07
008B: NOP
008C: BCF 03.5
008D: BCF 07.4
008E: BCF 20.4
008F: MOVF 20,W
0090: BSF 03.5
0091: MOVWF 07
0092: NOP
0093: BCF 03.5
0094: BCF 07.3
0095: BCF 20.3
0096: MOVF 20,W
0097: BSF 03.5
0098: MOVWF 07
0087: BCF 07.4
0088: BCF 20.4
0089: MOVF 20,W
008A: BSF 03.5
008B: MOVWF 07
008C: NOP
008D: BCF 03.5
008E: BCF 07.3
008F: BCF 20.3
0090: MOVF 20,W
0091: BSF 03.5
0092: MOVWF 07
.................... i2c_write(0x80); // Device address
0099: MOVLW 80
009A: BCF 03.5
009B: MOVWF 27
009C: CALL 037
0093: MOVLW 80
0094: BCF 03.5
0095: MOVWF 28
0096: CALL 031
.................... i2c_write(0xFE); // Device command
009D: MOVLW FE
009E: MOVWF 27
009F: CALL 037
0097: MOVLW FE
0098: MOVWF 28
0099: CALL 031
.................... i2c_stop(); // Stop condition
00A0: BCF 20.4
009A: BCF 20.4
009B: MOVF 20,W
009C: BSF 03.5
009D: MOVWF 07
009E: NOP
009F: BCF 03.5
00A0: BSF 20.3
00A1: MOVF 20,W
00A2: BSF 03.5
00A3: MOVWF 07
00A4: NOP
00A5: BCF 03.5
00A6: BSF 20.3
00A7: MOVF 20,W
00A8: BSF 03.5
00A9: MOVWF 07
00AA: BCF 03.5
00AB: BTFSS 07.3
00AC: GOTO 0AB
00AD: NOP
00AE: GOTO 0AF
00AF: NOP
00B0: BSF 20.4
00B1: MOVF 20,W
00B2: BSF 03.5
00B3: MOVWF 07
00B4: NOP
00A4: BCF 03.5
00A5: BTFSS 07.3
00A6: GOTO 0A5
00A7: NOP
00A8: GOTO 0A9
00A9: NOP
00AA: BSF 20.4
00AB: MOVF 20,W
00AC: BSF 03.5
00AD: MOVWF 07
00AE: NOP
.................... }
00B5: BCF 03.5
00B6: BSF 0A.3
00B7: BCF 0A.4
00B8: GOTO 066 (RETURN)
00AF: BCF 03.5
00B0: BSF 0A.3
00B1: BCF 0A.4
00B2: GOTO 066 (RETURN)
....................
.................... #define SHT25_HEATER_ON 0x04
.................... #define SHT25_HEATER_OFF 0x00
.................... #define SHT25_OTP_reload_off 0x02
.................... #define SHT25_RH12_T14 0x00
.................... #define SHT25_RH8_T12 0x01
.................... #define SHT25_RH10_T13 0x80
.................... #define SHT25_RH11_T11 0x81
....................
.................... #define SHT25_ADDR 0x80
....................
.................... unsigned int8 SHT25_setup(unsigned int8 setup_reg ) // writes to status register and returns its value
.................... {
.................... unsigned int8 reg;
324,153 → 330,233
....................
.................... i2c_start(); // Start condition
*
017C: BSF 20.4
0176: BSF 20.4
0177: MOVF 20,W
0178: BSF 03.5
0179: MOVWF 07
017A: NOP
017B: BCF 03.5
017C: BSF 20.3
017D: MOVF 20,W
017E: BSF 03.5
017F: MOVWF 07
0180: NOP
0181: BCF 03.5
0182: BSF 20.3
0183: MOVF 20,W
0184: BSF 03.5
0185: MOVWF 07
0186: NOP
0187: BCF 03.5
0188: BCF 07.4
0189: BCF 20.4
018A: MOVF 20,W
018B: BSF 03.5
018C: MOVWF 07
018D: NOP
018E: BCF 03.5
018F: BCF 07.3
0190: BCF 20.3
0191: MOVF 20,W
0192: BSF 03.5
0193: MOVWF 07
0182: BCF 07.4
0183: BCF 20.4
0184: MOVF 20,W
0185: BSF 03.5
0186: MOVWF 07
0187: NOP
0188: BCF 03.5
0189: BCF 07.3
018A: BCF 20.3
018B: MOVF 20,W
018C: BSF 03.5
018D: MOVWF 07
.................... i2c_write(SHT25_ADDR); // Device address
0194: MOVLW 80
0195: BCF 03.5
0196: MOVWF 27
0197: CALL 037
018E: MOVLW 80
018F: BCF 03.5
0190: MOVWF 28
0191: CALL 031
.................... i2c_write(0xE7); // Device command
0198: MOVLW E7
0199: MOVWF 27
019A: CALL 037
0192: MOVLW E7
0193: MOVWF 28
0194: CALL 031
....................
.................... i2c_start(); // Start condition
019B: BSF 20.4
0195: BSF 20.4
0196: MOVF 20,W
0197: BSF 03.5
0198: MOVWF 07
0199: NOP
019A: BCF 03.5
019B: BSF 20.3
019C: MOVF 20,W
019D: BSF 03.5
019E: MOVWF 07
019F: NOP
01A0: BCF 03.5
01A1: BSF 20.3
01A2: MOVF 20,W
01A3: BSF 03.5
01A4: MOVWF 07
01A5: NOP
01A6: BCF 03.5
01A7: BTFSS 07.3
01A8: GOTO 1A7
01A9: BCF 07.4
01AA: BCF 20.4
01AB: MOVF 20,W
01AC: BSF 03.5
01AD: MOVWF 07
01AE: NOP
01AF: BCF 03.5
01B0: BCF 07.3
01B1: BCF 20.3
01B2: MOVF 20,W
01B3: BSF 03.5
01B4: MOVWF 07
01A1: BTFSS 07.3
01A2: GOTO 1A1
01A3: BCF 07.4
01A4: BCF 20.4
01A5: MOVF 20,W
01A6: BSF 03.5
01A7: MOVWF 07
01A8: NOP
01A9: BCF 03.5
01AA: BCF 07.3
01AB: BCF 20.3
01AC: MOVF 20,W
01AD: BSF 03.5
01AE: MOVWF 07
.................... i2c_write(SHT25_ADDR+1); // Device address
01B5: MOVLW 81
01B6: BCF 03.5
01B7: MOVWF 27
01B8: CALL 037
01AF: MOVLW 81
01B0: BCF 03.5
01B1: MOVWF 28
01B2: CALL 031
.................... reg=i2c_read(0); // Read status actual status register
01B9: CLRF 77
01BA: CALL 137
01BB: MOVF 78,W
01BC: MOVWF 23
01B3: CLRF 77
01B4: CALL 131
01B5: MOVF 78,W
01B6: MOVWF 24
....................
.................... reg = (reg & 0x3A) | setup_reg;
01BD: MOVF 23,W
01BE: ANDLW 3A
01BF: IORWF 22,W
01C0: MOVWF 23
01B7: MOVF 24,W
01B8: ANDLW 3A
01B9: IORWF 23,W
01BA: MOVWF 24
....................
.................... i2c_start(); // Start condition
01C1: BSF 20.4
01BB: BSF 20.4
01BC: MOVF 20,W
01BD: BSF 03.5
01BE: MOVWF 07
01BF: NOP
01C0: BCF 03.5
01C1: BSF 20.3
01C2: MOVF 20,W
01C3: BSF 03.5
01C4: MOVWF 07
01C5: NOP
01C6: BCF 03.5
01C7: BSF 20.3
01C8: MOVF 20,W
01C9: BSF 03.5
01CA: MOVWF 07
01CB: NOP
01CC: BCF 03.5
01CD: BTFSS 07.3
01CE: GOTO 1CD
01CF: BCF 07.4
01D0: BCF 20.4
01D1: MOVF 20,W
01D2: BSF 03.5
01D3: MOVWF 07
01D4: NOP
01D5: BCF 03.5
01D6: BCF 07.3
01D7: BCF 20.3
01D8: MOVF 20,W
01D9: BSF 03.5
01DA: MOVWF 07
01C7: BTFSS 07.3
01C8: GOTO 1C7
01C9: BCF 07.4
01CA: BCF 20.4
01CB: MOVF 20,W
01CC: BSF 03.5
01CD: MOVWF 07
01CE: NOP
01CF: BCF 03.5
01D0: BCF 07.3
01D1: BCF 20.3
01D2: MOVF 20,W
01D3: BSF 03.5
01D4: MOVWF 07
.................... i2c_write(SHT25_ADDR); // Device address
01DB: MOVLW 80
01DC: BCF 03.5
01DD: MOVWF 27
01DE: CALL 037
.................... i2c_write(0xE7); // Write to status register
01DF: MOVLW E7
01E0: MOVWF 27
01E1: CALL 037
01D5: MOVLW 80
01D6: BCF 03.5
01D7: MOVWF 28
01D8: CALL 031
.................... i2c_write(0xE6); // Write to status register
01D9: MOVLW E6
01DA: MOVWF 28
01DB: CALL 031
.................... i2c_write(reg); // Device command
01E2: MOVF 23,W
01E3: MOVWF 27
01E4: CALL 037
01DC: MOVF 24,W
01DD: MOVWF 28
01DE: CALL 031
.................... i2c_stop(); // Stop condition
01E5: BCF 20.4
01DF: BCF 20.4
01E0: MOVF 20,W
01E1: BSF 03.5
01E2: MOVWF 07
01E3: NOP
01E4: BCF 03.5
01E5: BSF 20.3
01E6: MOVF 20,W
01E7: BSF 03.5
01E8: MOVWF 07
01E9: NOP
01EA: BCF 03.5
01EB: BSF 20.3
01EC: MOVF 20,W
01ED: BSF 03.5
01EE: MOVWF 07
01EF: BCF 03.5
01F0: BTFSS 07.3
01F1: GOTO 1F0
01F2: NOP
01F3: GOTO 1F4
01F4: NOP
01F5: BSF 20.4
01F6: MOVF 20,W
01F7: BSF 03.5
01F8: MOVWF 07
01F9: NOP
01E9: BCF 03.5
01EA: BTFSS 07.3
01EB: GOTO 1EA
01EC: NOP
01ED: GOTO 1EE
01EE: NOP
01EF: BSF 20.4
01F0: MOVF 20,W
01F1: BSF 03.5
01F2: MOVWF 07
01F3: NOP
....................
.................... delay_ms(10);
01F4: MOVLW 0A
01F5: BCF 03.5
01F6: MOVWF 28
01F7: CALL 11D
....................
.................... i2c_start(); // Start condition
01F8: BSF 20.4
01F9: MOVF 20,W
01FA: BSF 03.5
01FB: MOVWF 07
01FC: NOP
01FD: BCF 03.5
01FE: BSF 20.3
01FF: MOVF 20,W
0200: BSF 03.5
0201: MOVWF 07
0202: NOP
0203: BCF 03.5
0204: BCF 07.4
0205: BCF 20.4
0206: MOVF 20,W
0207: BSF 03.5
0208: MOVWF 07
0209: NOP
020A: BCF 03.5
020B: BCF 07.3
020C: BCF 20.3
020D: MOVF 20,W
020E: BSF 03.5
020F: MOVWF 07
.................... i2c_write(SHT25_ADDR); // Device address
0210: MOVLW 80
0211: BCF 03.5
0212: MOVWF 28
0213: CALL 031
.................... i2c_write(0xE7); // Device command
0214: MOVLW E7
0215: MOVWF 28
0216: CALL 031
....................
.................... i2c_start(); // Start condition
0217: BSF 20.4
0218: MOVF 20,W
0219: BSF 03.5
021A: MOVWF 07
021B: NOP
021C: BCF 03.5
021D: BSF 20.3
021E: MOVF 20,W
021F: BSF 03.5
0220: MOVWF 07
0221: NOP
0222: BCF 03.5
0223: BTFSS 07.3
0224: GOTO 223
0225: BCF 07.4
0226: BCF 20.4
0227: MOVF 20,W
0228: BSF 03.5
0229: MOVWF 07
022A: NOP
022B: BCF 03.5
022C: BCF 07.3
022D: BCF 20.3
022E: MOVF 20,W
022F: BSF 03.5
0230: MOVWF 07
.................... i2c_write(SHT25_ADDR+1); // Device address
0231: MOVLW 81
0232: BCF 03.5
0233: MOVWF 28
0234: CALL 031
.................... reg=i2c_read(0); // Read status actual status register
0235: CLRF 77
0236: CALL 131
0237: MOVF 78,W
0238: MOVWF 24
....................
.................... return (reg);
01FA: BCF 03.5
01FB: MOVF 23,W
01FC: MOVWF 78
0239: MOVF 24,W
023A: MOVWF 78
.................... }
01FD: RETURN
023B: BSF 0A.3
023C: BCF 0A.4
023D: GOTO 089 (RETURN)
....................
....................
.................... float SHT25_get_temp()
480,229 → 566,231
....................
.................... i2c_start();
*
050B: BSF 20.4
050C: MOVF 20,W
050D: BSF 03.5
050E: MOVWF 07
050F: NOP
0510: BCF 03.5
0511: BSF 20.3
0512: MOVF 20,W
0513: BSF 03.5
0514: MOVWF 07
0515: NOP
0516: BCF 03.5
0517: BCF 07.4
0518: BCF 20.4
0519: MOVF 20,W
051A: BSF 03.5
051B: MOVWF 07
051C: NOP
051D: BCF 03.5
051E: BCF 07.3
051F: BCF 20.3
0520: MOVF 20,W
0521: BSF 03.5
0522: MOVWF 07
054B: BSF 20.4
054C: MOVF 20,W
054D: BSF 03.5
054E: MOVWF 07
054F: NOP
0550: BCF 03.5
0551: BSF 20.3
0552: MOVF 20,W
0553: BSF 03.5
0554: MOVWF 07
0555: NOP
0556: BCF 03.5
0557: BTFSS 07.3
0558: GOTO 557
0559: BCF 07.4
055A: BCF 20.4
055B: MOVF 20,W
055C: BSF 03.5
055D: MOVWF 07
055E: NOP
055F: BCF 03.5
0560: BCF 07.3
0561: BCF 20.3
0562: MOVF 20,W
0563: BSF 03.5
0564: MOVWF 07
.................... I2C_Write(SHT25_ADDR);
0523: MOVLW 80
0524: BCF 03.5
0525: MOVWF 27
0526: CALL 037
0565: MOVLW 80
0566: BCF 03.5
0567: MOVWF 28
0568: CALL 031
.................... I2C_write(0xE3);
0527: MOVLW E3
0528: MOVWF 27
0529: CALL 037
0569: MOVLW E3
056A: MOVWF 28
056B: CALL 031
.................... i2c_stop();
052A: BCF 20.4
052B: MOVF 20,W
052C: BSF 03.5
052D: MOVWF 07
052E: NOP
052F: BCF 03.5
0530: BSF 20.3
0531: MOVF 20,W
0532: BSF 03.5
0533: MOVWF 07
0534: BCF 03.5
0535: BTFSS 07.3
0536: GOTO 535
0537: NOP
0538: GOTO 539
0539: NOP
053A: BSF 20.4
053B: MOVF 20,W
053C: BSF 03.5
053D: MOVWF 07
053E: NOP
056C: BCF 20.4
056D: MOVF 20,W
056E: BSF 03.5
056F: MOVWF 07
0570: NOP
0571: BCF 03.5
0572: BSF 20.3
0573: MOVF 20,W
0574: BSF 03.5
0575: MOVWF 07
0576: BCF 03.5
0577: BTFSS 07.3
0578: GOTO 577
0579: NOP
057A: GOTO 57B
057B: NOP
057C: BSF 20.4
057D: MOVF 20,W
057E: BSF 03.5
057F: MOVWF 07
0580: NOP
....................
.................... delay_ms(100);
053F: MOVLW 64
0540: BCF 03.5
0541: MOVWF 27
0542: CALL 123
0581: MOVLW 64
0582: BCF 03.5
0583: MOVWF 28
0584: CALL 11D
....................
.................... i2c_start();
0543: BSF 20.4
0544: MOVF 20,W
0545: BSF 03.5
0546: MOVWF 07
0547: NOP
0548: BCF 03.5
0549: BSF 20.3
054A: MOVF 20,W
054B: BSF 03.5
054C: MOVWF 07
054D: NOP
054E: BCF 03.5
054F: BCF 07.4
0550: BCF 20.4
0551: MOVF 20,W
0552: BSF 03.5
0553: MOVWF 07
0554: NOP
0555: BCF 03.5
0556: BCF 07.3
0557: BCF 20.3
0558: MOVF 20,W
0559: BSF 03.5
055A: MOVWF 07
0585: BSF 20.4
0586: MOVF 20,W
0587: BSF 03.5
0588: MOVWF 07
0589: NOP
058A: BCF 03.5
058B: BSF 20.3
058C: MOVF 20,W
058D: BSF 03.5
058E: MOVWF 07
058F: NOP
0590: BCF 03.5
0591: BCF 07.4
0592: BCF 20.4
0593: MOVF 20,W
0594: BSF 03.5
0595: MOVWF 07
0596: NOP
0597: BCF 03.5
0598: BCF 07.3
0599: BCF 20.3
059A: MOVF 20,W
059B: BSF 03.5
059C: MOVWF 07
.................... I2C_Write(SHT25_ADDR+1);
055B: MOVLW 81
055C: BCF 03.5
055D: MOVWF 27
055E: CALL 037
059D: MOVLW 81
059E: BCF 03.5
059F: MOVWF 28
05A0: CALL 031
.................... MSB=i2c_read(1);
055F: MOVLW 01
0560: MOVWF 77
0561: CALL 137
0562: MOVF 78,W
0563: MOVWF 22
05A1: MOVLW 01
05A2: MOVWF 77
05A3: CALL 131
05A4: MOVF 78,W
05A5: MOVWF 23
.................... LSB=i2c_read(1);
0564: MOVLW 01
0565: MOVWF 77
0566: CALL 137
0567: MOVF 78,W
0568: MOVWF 23
05A6: MOVLW 01
05A7: MOVWF 77
05A8: CALL 131
05A9: MOVF 78,W
05AA: MOVWF 24
.................... Check=i2c_read(0);
0569: CLRF 77
056A: CALL 137
056B: MOVF 78,W
056C: MOVWF 24
05AB: CLRF 77
05AC: CALL 131
05AD: MOVF 78,W
05AE: MOVWF 25
.................... i2c_stop();
056D: BCF 20.4
056E: MOVF 20,W
056F: BSF 03.5
0570: MOVWF 07
0571: NOP
0572: BCF 03.5
0573: BSF 20.3
0574: MOVF 20,W
0575: BSF 03.5
0576: MOVWF 07
0577: BCF 03.5
0578: BTFSS 07.3
0579: GOTO 578
057A: NOP
057B: GOTO 57C
057C: NOP
057D: BSF 20.4
057E: MOVF 20,W
057F: BSF 03.5
0580: MOVWF 07
0581: NOP
05AF: BCF 20.4
05B0: MOVF 20,W
05B1: BSF 03.5
05B2: MOVWF 07
05B3: NOP
05B4: BCF 03.5
05B5: BSF 20.3
05B6: MOVF 20,W
05B7: BSF 03.5
05B8: MOVWF 07
05B9: BCF 03.5
05BA: BTFSS 07.3
05BB: GOTO 5BA
05BC: NOP
05BD: GOTO 5BE
05BE: NOP
05BF: BSF 20.4
05C0: MOVF 20,W
05C1: BSF 03.5
05C2: MOVWF 07
05C3: NOP
....................
.................... LSB = LSB >> 2; // trow out status bits
0582: BCF 03.5
0583: RRF 23,F
0584: RRF 23,F
0585: MOVLW 3F
0586: ANDWF 23,F
05C4: BCF 03.5
05C5: RRF 24,F
05C6: RRF 24,F
05C7: MOVLW 3F
05C8: ANDWF 24,F
....................
.................... data = (((unsigned int16) MSB << 8) + (LSB << 4));
0587: CLRF 28
0588: MOVF 22,W
0589: MOVWF 27
058A: MOVWF 28
058B: CLRF 27
058C: SWAPF 23,W
058D: MOVWF 77
058E: MOVLW F0
058F: ANDWF 77,F
0590: MOVF 77,W
0591: ADDWF 27,W
0592: MOVWF 25
0593: MOVF 28,W
0594: MOVWF 26
0595: BTFSC 03.0
0596: INCF 26,F
05C9: CLRF 29
05CA: MOVF 23,W
05CB: MOVWF 28
05CC: MOVWF 29
05CD: CLRF 28
05CE: SWAPF 24,W
05CF: MOVWF 77
05D0: MOVLW F0
05D1: ANDWF 77,F
05D2: MOVF 77,W
05D3: ADDWF 28,W
05D4: MOVWF 26
05D5: MOVF 29,W
05D6: MOVWF 27
05D7: BTFSC 03.0
05D8: INCF 27,F
.................... return(-46.85 + 175.72*((float)data/0xFFFF));
0597: MOVF 26,W
0598: MOVWF 28
0599: MOVF 25,W
059A: MOVWF 27
059B: CALL 26E
059C: MOVF 77,W
059D: MOVWF 27
059E: MOVF 78,W
059F: MOVWF 28
05A0: MOVF 79,W
05A1: MOVWF 29
05A2: MOVF 7A,W
05A3: MOVWF 2A
05A4: MOVWF 2E
05A5: MOVF 79,W
05A6: MOVWF 2D
05A7: MOVF 78,W
05A8: MOVWF 2C
05A9: MOVF 77,W
05AA: MOVWF 2B
05AB: CLRF 32
05AC: MOVLW FF
05AD: MOVWF 31
05AE: MOVLW 7F
05AF: MOVWF 30
05B0: MOVLW 8E
05B1: MOVWF 2F
05B2: CALL 28B
05B3: MOVLW 52
05B4: MOVWF 36
05B5: MOVLW B8
05B6: MOVWF 35
05B7: MOVLW 2F
05B8: MOVWF 34
05B9: MOVLW 86
05BA: MOVWF 33
05BB: MOVF 7A,W
05BC: MOVWF 3A
05BD: MOVF 79,W
05BE: MOVWF 39
05BF: MOVF 78,W
05C0: MOVWF 38
05C1: MOVF 77,W
05C2: MOVWF 37
05C3: CALL 355
05C4: BCF 03.1
05C5: MOVLW 66
05C6: MOVWF 2A
05C7: MOVWF 29
05C8: MOVLW BB
05C9: MOVWF 28
05CA: MOVLW 84
05CB: MOVWF 27
05CC: MOVF 7A,W
05CD: MOVWF 2E
05CE: MOVF 79,W
05CF: MOVWF 2D
05D0: MOVF 78,W
05D1: MOVWF 2C
05D2: MOVF 77,W
05D3: MOVWF 2B
05D4: CALL 3CA
05D9: MOVF 27,W
05DA: MOVWF 29
05DB: MOVF 26,W
05DC: MOVWF 28
05DD: CALL 2AE
05DE: MOVF 77,W
05DF: MOVWF 28
05E0: MOVF 78,W
05E1: MOVWF 29
05E2: MOVF 79,W
05E3: MOVWF 2A
05E4: MOVF 7A,W
05E5: MOVWF 2B
05E6: MOVWF 2F
05E7: MOVF 79,W
05E8: MOVWF 2E
05E9: MOVF 78,W
05EA: MOVWF 2D
05EB: MOVF 77,W
05EC: MOVWF 2C
05ED: CLRF 33
05EE: MOVLW FF
05EF: MOVWF 32
05F0: MOVLW 7F
05F1: MOVWF 31
05F2: MOVLW 8E
05F3: MOVWF 30
05F4: CALL 2CB
05F5: MOVLW 52
05F6: MOVWF 37
05F7: MOVLW B8
05F8: MOVWF 36
05F9: MOVLW 2F
05FA: MOVWF 35
05FB: MOVLW 86
05FC: MOVWF 34
05FD: MOVF 7A,W
05FE: MOVWF 3B
05FF: MOVF 79,W
0600: MOVWF 3A
0601: MOVF 78,W
0602: MOVWF 39
0603: MOVF 77,W
0604: MOVWF 38
0605: CALL 395
0606: BCF 03.1
0607: MOVLW 66
0608: MOVWF 2B
0609: MOVWF 2A
060A: MOVLW BB
060B: MOVWF 29
060C: MOVLW 84
060D: MOVWF 28
060E: MOVF 7A,W
060F: MOVWF 2F
0610: MOVF 79,W
0611: MOVWF 2E
0612: MOVF 78,W
0613: MOVWF 2D
0614: MOVF 77,W
0615: MOVWF 2C
0616: CALL 40A
.................... }
05D5: BSF 0A.3
05D6: BCF 0A.4
05D7: GOTO 0DB (RETURN)
0617: BSF 0A.3
0618: BCF 0A.4
0619: GOTO 0C5 (RETURN)
....................
.................... float SHT25_get_hum()
.................... {
711,214 → 799,214
....................
.................... i2c_start(); //RH
*
0701: BSF 20.4
0702: MOVF 20,W
0703: BSF 03.5
0704: MOVWF 07
0705: NOP
0706: BCF 03.5
0707: BSF 20.3
0708: MOVF 20,W
0709: BSF 03.5
070A: MOVWF 07
070B: NOP
070C: BCF 03.5
070D: BCF 07.4
070E: BCF 20.4
070F: MOVF 20,W
0710: BSF 03.5
0711: MOVWF 07
0712: NOP
0713: BCF 03.5
0714: BCF 07.3
0715: BCF 20.3
0716: MOVF 20,W
0717: BSF 03.5
0718: MOVWF 07
0743: BSF 20.4
0744: MOVF 20,W
0745: BSF 03.5
0746: MOVWF 07
0747: NOP
0748: BCF 03.5
0749: BSF 20.3
074A: MOVF 20,W
074B: BSF 03.5
074C: MOVWF 07
074D: NOP
074E: BCF 03.5
074F: BCF 07.4
0750: BCF 20.4
0751: MOVF 20,W
0752: BSF 03.5
0753: MOVWF 07
0754: NOP
0755: BCF 03.5
0756: BCF 07.3
0757: BCF 20.3
0758: MOVF 20,W
0759: BSF 03.5
075A: MOVWF 07
.................... I2C_Write(SHT25_ADDR);
0719: MOVLW 80
071A: BCF 03.5
071B: MOVWF 27
071C: CALL 037
075B: MOVLW 80
075C: BCF 03.5
075D: MOVWF 28
075E: CALL 031
.................... I2C_write(0xE5);
071D: MOVLW E5
071E: MOVWF 27
071F: CALL 037
.................... // i2c_stop();
075F: MOVLW E5
0760: MOVWF 28
0761: CALL 031
....................
.................... delay_ms(100);
0720: MOVLW 64
0721: MOVWF 27
0722: CALL 123
0762: MOVLW 64
0763: MOVWF 28
0764: CALL 11D
....................
.................... i2c_start();
0723: BSF 20.4
0724: MOVF 20,W
0725: BSF 03.5
0726: MOVWF 07
0727: NOP
0728: BCF 03.5
0729: BSF 20.3
072A: MOVF 20,W
072B: BSF 03.5
072C: MOVWF 07
072D: NOP
072E: BCF 03.5
072F: BTFSS 07.3
0730: GOTO 72F
0731: BCF 07.4
0732: BCF 20.4
0733: MOVF 20,W
0734: BSF 03.5
0735: MOVWF 07
0736: NOP
0737: BCF 03.5
0738: BCF 07.3
0739: BCF 20.3
073A: MOVF 20,W
073B: BSF 03.5
073C: MOVWF 07
0765: BSF 20.4
0766: MOVF 20,W
0767: BSF 03.5
0768: MOVWF 07
0769: NOP
076A: BCF 03.5
076B: BSF 20.3
076C: MOVF 20,W
076D: BSF 03.5
076E: MOVWF 07
076F: NOP
0770: BCF 03.5
0771: BTFSS 07.3
0772: GOTO 771
0773: BCF 07.4
0774: BCF 20.4
0775: MOVF 20,W
0776: BSF 03.5
0777: MOVWF 07
0778: NOP
0779: BCF 03.5
077A: BCF 07.3
077B: BCF 20.3
077C: MOVF 20,W
077D: BSF 03.5
077E: MOVWF 07
.................... I2C_Write(SHT25_ADDR+1);
073D: MOVLW 81
073E: BCF 03.5
073F: MOVWF 27
0740: CALL 037
077F: MOVLW 81
0780: BCF 03.5
0781: MOVWF 28
0782: CALL 031
.................... MSB=i2c_read(1);
0741: MOVLW 01
0742: MOVWF 77
0743: CALL 137
0744: MOVF 78,W
0745: MOVWF 22
0783: MOVLW 01
0784: MOVWF 77
0785: CALL 131
0786: MOVF 78,W
0787: MOVWF 23
.................... LSB=i2c_read(1);
0746: MOVLW 01
0747: MOVWF 77
0748: CALL 137
0749: MOVF 78,W
074A: MOVWF 23
0788: MOVLW 01
0789: MOVWF 77
078A: CALL 131
078B: MOVF 78,W
078C: MOVWF 24
.................... Check=i2c_read(0);
074B: CLRF 77
074C: CALL 137
074D: MOVF 78,W
074E: MOVWF 24
078D: CLRF 77
078E: CALL 131
078F: MOVF 78,W
0790: MOVWF 25
.................... i2c_stop();
074F: BCF 20.4
0750: MOVF 20,W
0751: BSF 03.5
0752: MOVWF 07
0753: NOP
0754: BCF 03.5
0755: BSF 20.3
0756: MOVF 20,W
0757: BSF 03.5
0758: MOVWF 07
0759: BCF 03.5
075A: BTFSS 07.3
075B: GOTO 75A
075C: NOP
075D: GOTO 75E
075E: NOP
075F: BSF 20.4
0760: MOVF 20,W
0761: BSF 03.5
0762: MOVWF 07
0763: NOP
0791: BCF 20.4
0792: MOVF 20,W
0793: BSF 03.5
0794: MOVWF 07
0795: NOP
0796: BCF 03.5
0797: BSF 20.3
0798: MOVF 20,W
0799: BSF 03.5
079A: MOVWF 07
079B: BCF 03.5
079C: BTFSS 07.3
079D: GOTO 79C
079E: NOP
079F: GOTO 7A0
07A0: NOP
07A1: BSF 20.4
07A2: MOVF 20,W
07A3: BSF 03.5
07A4: MOVWF 07
07A5: NOP
....................
.................... // printf("%X %X %X\r\n",MSB, LSB, Check);
....................
.................... LSB = LSB >> 2; // trow out status bits
0764: BCF 03.5
0765: RRF 23,F
0766: RRF 23,F
0767: MOVLW 3F
0768: ANDWF 23,F
07A6: BCF 03.5
07A7: RRF 24,F
07A8: RRF 24,F
07A9: MOVLW 3F
07AA: ANDWF 24,F
....................
.................... data = (((unsigned int16) MSB << 8) + (LSB << 4) );
0769: CLRF 28
076A: MOVF 22,W
076B: MOVWF 27
076C: MOVWF 28
076D: CLRF 27
076E: SWAPF 23,W
076F: MOVWF 77
0770: MOVLW F0
0771: ANDWF 77,F
0772: MOVF 77,W
0773: ADDWF 27,W
0774: MOVWF 25
0775: MOVF 28,W
0776: MOVWF 26
0777: BTFSC 03.0
0778: INCF 26,F
07AB: CLRF 29
07AC: MOVF 23,W
07AD: MOVWF 28
07AE: MOVWF 29
07AF: CLRF 28
07B0: SWAPF 24,W
07B1: MOVWF 77
07B2: MOVLW F0
07B3: ANDWF 77,F
07B4: MOVF 77,W
07B5: ADDWF 28,W
07B6: MOVWF 26
07B7: MOVF 29,W
07B8: MOVWF 27
07B9: BTFSC 03.0
07BA: INCF 27,F
.................... return( -6.0 + 125.0*((float)data/0xFFFF));
0779: MOVF 26,W
077A: MOVWF 28
077B: MOVF 25,W
077C: MOVWF 27
077D: CALL 26E
077E: MOVF 77,W
077F: MOVWF 27
0780: MOVF 78,W
0781: MOVWF 28
0782: MOVF 79,W
0783: MOVWF 29
0784: MOVF 7A,W
0785: MOVWF 2A
0786: MOVWF 2E
0787: MOVF 79,W
0788: MOVWF 2D
0789: MOVF 78,W
078A: MOVWF 2C
078B: MOVF 77,W
078C: MOVWF 2B
078D: CLRF 32
078E: MOVLW FF
078F: MOVWF 31
0790: MOVLW 7F
0791: MOVWF 30
0792: MOVLW 8E
0793: MOVWF 2F
0794: CALL 28B
0795: CLRF 36
0796: CLRF 35
0797: MOVLW 7A
0798: MOVWF 34
0799: MOVLW 85
079A: MOVWF 33
079B: MOVF 7A,W
079C: MOVWF 3A
079D: MOVF 79,W
079E: MOVWF 39
079F: MOVF 78,W
07A0: MOVWF 38
07A1: MOVF 77,W
07A2: MOVWF 37
07A3: CALL 355
07A4: BCF 03.1
07A5: CLRF 2A
07A6: CLRF 29
07A7: MOVLW C0
07A8: MOVWF 28
07A9: MOVLW 81
07AA: MOVWF 27
07AB: MOVF 7A,W
07AC: MOVWF 2E
07AD: MOVF 79,W
07AE: MOVWF 2D
07AF: MOVF 78,W
07B0: MOVWF 2C
07B1: MOVF 77,W
07B2: MOVWF 2B
07B3: CALL 3CA
07BB: MOVF 27,W
07BC: MOVWF 29
07BD: MOVF 26,W
07BE: MOVWF 28
07BF: CALL 2AE
07C0: MOVF 77,W
07C1: MOVWF 28
07C2: MOVF 78,W
07C3: MOVWF 29
07C4: MOVF 79,W
07C5: MOVWF 2A
07C6: MOVF 7A,W
07C7: MOVWF 2B
07C8: MOVWF 2F
07C9: MOVF 79,W
07CA: MOVWF 2E
07CB: MOVF 78,W
07CC: MOVWF 2D
07CD: MOVF 77,W
07CE: MOVWF 2C
07CF: CLRF 33
07D0: MOVLW FF
07D1: MOVWF 32
07D2: MOVLW 7F
07D3: MOVWF 31
07D4: MOVLW 8E
07D5: MOVWF 30
07D6: CALL 2CB
07D7: CLRF 37
07D8: CLRF 36
07D9: MOVLW 7A
07DA: MOVWF 35
07DB: MOVLW 85
07DC: MOVWF 34
07DD: MOVF 7A,W
07DE: MOVWF 3B
07DF: MOVF 79,W
07E0: MOVWF 3A
07E1: MOVF 78,W
07E2: MOVWF 39
07E3: MOVF 77,W
07E4: MOVWF 38
07E5: CALL 395
07E6: BCF 03.1
07E7: CLRF 2B
07E8: CLRF 2A
07E9: MOVLW C0
07EA: MOVWF 29
07EB: MOVLW 81
07EC: MOVWF 28
07ED: MOVF 7A,W
07EE: MOVWF 2F
07EF: MOVF 79,W
07F0: MOVWF 2E
07F1: MOVF 78,W
07F2: MOVWF 2D
07F3: MOVF 77,W
07F4: MOVWF 2C
07F5: CALL 40A
.................... }
07B4: BSF 0A.3
07B5: BCF 0A.4
07B6: GOTO 119 (RETURN)
07F6: BSF 0A.3
07F7: BCF 0A.4
07F8: GOTO 103 (RETURN)
....................
....................
....................
....................
....................
.................... void main()
.................... {
*
0036: DATA 00,00
0030: DATA 00,00
*
0800: CLRF 04
0801: BCF 03.7
948,7 → 1036,7
0819: CLRF 09
*
081D: CLRF 21
.................... unsigned int8 i=0;
.................... unsigned int8 i=0, sht_config;
....................
.................... setup_adc_ports(NO_ANALOGS|VSS_VDD);
081E: BSF 03.5
1031,7 → 1119,7
.................... SHT25_soft_reset();
0863: BCF 0A.3
0864: BCF 03.6
0865: GOTO 081
0865: GOTO 07B
0866: BSF 0A.3
.................... printf("SHT25 humidity and temperature sensor example \r\n",);
0867: MOVLW 04
1041,260 → 1129,238
086B: MOVWF 0F
086C: BCF 0A.3
086D: BCF 03.6
086E: GOTO 0DB
086E: GOTO 0D5
086F: BSF 0A.3
.................... delay_ms (500);
0870: MOVLW 02
0871: MOVWF 22
0871: MOVWF 23
0872: MOVLW FA
0873: MOVWF 27
0873: MOVWF 28
0874: BCF 0A.3
0875: CALL 123
0875: CALL 11D
0876: BSF 0A.3
0877: DECFSZ 22,F
0877: DECFSZ 23,F
0878: GOTO 072
....................
.................... while(TRUE)
.................... {
.................... if (i<10)
.................... if (i<10) sht_config = SHT25_RH12_T14 | SHT25_HEATER_OFF; // loop alters on chip heater on and off to check correct function
0879: MOVF 21,W
087A: SUBLW 09
087B: BTFSS 03.0
087C: GOTO 0A6
.................... printf("setup: %X \r\n",SHT25_setup(SHT25_RH12_T14 | SHT25_HEATER_OFF));
087C: GOTO 07F
087D: CLRF 22
087E: BCF 0A.3
087F: CALL 17C
0880: BSF 0A.3
0881: MOVF 78,W
0882: MOVWF 22
0883: MOVLW 1D
0884: BSF 03.6
0885: MOVWF 0D
0886: MOVLW 00
0887: MOVWF 0F
0888: BCF 03.0
0889: MOVLW 07
088A: BCF 03.6
088B: MOVWF 26
088C: BCF 0A.3
088D: CALL 1FE
088E: BSF 0A.3
088F: MOVF 22,W
0890: MOVWF 23
0891: MOVLW 37
0892: MOVWF 24
0893: BCF 0A.3
0894: CALL 24D
0895: BSF 0A.3
0896: MOVLW 20
0897: MOVWF 33
0898: BCF 0A.3
0899: CALL 0B9
089A: BSF 0A.3
089B: MOVLW 0D
089C: MOVWF 33
089D: BCF 0A.3
089E: CALL 0B9
089F: BSF 0A.3
08A0: MOVLW 0A
08A1: MOVWF 33
08A2: BCF 0A.3
08A3: CALL 0B9
08A4: BSF 0A.3
.................... else
08A5: GOTO 0D0
087E: GOTO 085
.................... {
.................... printf("setup: %X \r\n",SHT25_setup(SHT25_RH12_T14 | SHT25_HEATER_ON));
08A6: MOVLW 04
08A7: MOVWF 22
.................... sht_config = SHT25_RH12_T14 | SHT25_HEATER_ON;
087F: MOVLW 04
0880: MOVWF 22
.................... if (i > 20) i = 0;
0881: MOVF 21,W
0882: SUBLW 14
0883: BTFSS 03.0
0884: CLRF 21
.................... }
.................... printf("setup: %X %X \r\n",SHT25_setup(sht_config),sht_config);
0885: MOVF 22,W
0886: MOVWF 23
0887: BCF 0A.3
0888: GOTO 176
0889: BSF 0A.3
088A: MOVF 78,W
088B: MOVWF 23
088C: MOVLW 1D
088D: BSF 03.6
088E: MOVWF 0D
088F: MOVLW 00
0890: MOVWF 0F
0891: BCF 03.0
0892: MOVLW 07
0893: BCF 03.6
0894: MOVWF 27
0895: BCF 0A.3
0896: CALL 23E
0897: BSF 0A.3
0898: MOVF 23,W
0899: MOVWF 24
089A: MOVLW 37
089B: MOVWF 25
089C: BCF 0A.3
089D: CALL 28D
089E: BSF 0A.3
089F: MOVLW 20
08A0: MOVWF 34
08A1: BCF 0A.3
08A2: CALL 0B3
08A3: BSF 0A.3
08A4: MOVF 22,W
08A5: MOVWF 24
08A6: MOVLW 37
08A7: MOVWF 25
08A8: BCF 0A.3
08A9: CALL 17C
08A9: CALL 28D
08AA: BSF 0A.3
08AB: MOVF 78,W
08AC: MOVWF 22
08AD: MOVLW 24
08AE: BSF 03.6
08AF: MOVWF 0D
08B0: MOVLW 00
08B1: MOVWF 0F
08B2: BCF 03.0
08B3: MOVLW 07
08B4: BCF 03.6
08B5: MOVWF 26
08B6: BCF 0A.3
08B7: CALL 1FE
08B8: BSF 0A.3
08B9: MOVF 22,W
08BA: MOVWF 23
08BB: MOVLW 37
08BC: MOVWF 24
08BD: BCF 0A.3
08BE: CALL 24D
08BF: BSF 0A.3
08C0: MOVLW 20
08C1: MOVWF 33
08C2: BCF 0A.3
08C3: CALL 0B9
08C4: BSF 0A.3
08C5: MOVLW 0D
08C6: MOVWF 33
08C7: BCF 0A.3
08C8: CALL 0B9
08C9: BSF 0A.3
08CA: MOVLW 0A
08CB: MOVWF 33
08CC: BCF 0A.3
08CD: CALL 0B9
08CE: BSF 0A.3
.................... i = 0;
08CF: CLRF 21
.................... }
08AB: MOVLW 20
08AC: MOVWF 34
08AD: BCF 0A.3
08AE: CALL 0B3
08AF: BSF 0A.3
08B0: MOVLW 0D
08B1: MOVWF 34
08B2: BCF 0A.3
08B3: CALL 0B3
08B4: BSF 0A.3
08B5: MOVLW 0A
08B6: MOVWF 34
08B7: BCF 0A.3
08B8: CALL 0B3
08B9: BSF 0A.3
.................... delay_ms (500);
08D0: MOVLW 02
08D1: MOVWF 22
08D2: MOVLW FA
08D3: MOVWF 27
08D4: BCF 0A.3
08D5: CALL 123
08D6: BSF 0A.3
08D7: DECFSZ 22,F
08D8: GOTO 0D2
08BA: MOVLW 02
08BB: MOVWF 23
08BC: MOVLW FA
08BD: MOVWF 28
08BE: BCF 0A.3
08BF: CALL 11D
08C0: BSF 0A.3
08C1: DECFSZ 23,F
08C2: GOTO 0BC
.................... printf("Temp: %f \r\n",SHT25_get_temp());
08D9: BCF 0A.3
08DA: GOTO 50B
08DB: BSF 0A.3
08DC: MOVF 77,W
08DD: MOVWF 22
08DE: MOVF 78,W
08DF: MOVWF 23
08E0: MOVF 79,W
08E1: MOVWF 24
08E2: MOVF 7A,W
08E3: MOVWF 25
08E4: MOVLW 2B
08E5: BSF 03.6
08E6: MOVWF 0D
08E7: MOVLW 00
08E8: MOVWF 0F
08E9: BCF 03.0
08EA: MOVLW 06
08EB: BCF 03.6
08EC: MOVWF 26
08ED: BCF 0A.3
08EE: CALL 1FE
08EF: BSF 0A.3
08F0: MOVLW 89
08F1: MOVWF 04
08F2: MOVF 25,W
08F3: MOVWF 29
08F4: MOVF 24,W
08F5: MOVWF 28
08F6: MOVF 23,W
08F7: MOVWF 27
08F8: MOVF 22,W
08F9: MOVWF 26
08FA: MOVLW 02
08FB: MOVWF 2A
08C3: BCF 0A.3
08C4: GOTO 54B
08C5: BSF 0A.3
08C6: MOVF 77,W
08C7: MOVWF 23
08C8: MOVF 78,W
08C9: MOVWF 24
08CA: MOVF 79,W
08CB: MOVWF 25
08CC: MOVF 7A,W
08CD: MOVWF 26
08CE: MOVLW 25
08CF: BSF 03.6
08D0: MOVWF 0D
08D1: MOVLW 00
08D2: MOVWF 0F
08D3: BCF 03.0
08D4: MOVLW 06
08D5: BCF 03.6
08D6: MOVWF 27
08D7: BCF 0A.3
08D8: CALL 23E
08D9: BSF 0A.3
08DA: MOVLW 89
08DB: MOVWF 04
08DC: MOVF 26,W
08DD: MOVWF 2A
08DE: MOVF 25,W
08DF: MOVWF 29
08E0: MOVF 24,W
08E1: MOVWF 28
08E2: MOVF 23,W
08E3: MOVWF 27
08E4: MOVLW 02
08E5: MOVWF 2B
08E6: BCF 0A.3
08E7: CALL 65C
08E8: BSF 0A.3
08E9: MOVLW 20
08EA: MOVWF 34
08EB: BCF 0A.3
08EC: CALL 0B3
08ED: BSF 0A.3
08EE: MOVLW 0D
08EF: MOVWF 34
08F0: BCF 0A.3
08F1: CALL 0B3
08F2: BSF 0A.3
08F3: MOVLW 0A
08F4: MOVWF 34
08F5: BCF 0A.3
08F6: CALL 0B3
08F7: BSF 0A.3
.................... delay_ms (500);
08F8: MOVLW 02
08F9: MOVWF 23
08FA: MOVLW FA
08FB: MOVWF 28
08FC: BCF 0A.3
08FD: CALL 61A
08FD: CALL 11D
08FE: BSF 0A.3
08FF: MOVLW 20
0900: MOVWF 33
08FF: DECFSZ 23,F
0900: GOTO 0FA
.................... printf("Hum: %f \r\n",SHT25_get_hum());
0901: BCF 0A.3
0902: CALL 0B9
0902: GOTO 743
0903: BSF 0A.3
0904: MOVLW 0D
0905: MOVWF 33
0906: BCF 0A.3
0907: CALL 0B9
0908: BSF 0A.3
0909: MOVLW 0A
090A: MOVWF 33
090B: BCF 0A.3
090C: CALL 0B9
090D: BSF 0A.3
.................... delay_ms (500);
090E: MOVLW 02
090F: MOVWF 22
0910: MOVLW FA
0911: MOVWF 27
0912: BCF 0A.3
0913: CALL 123
0914: BSF 0A.3
0915: DECFSZ 22,F
0916: GOTO 110
.................... printf("Hum: %f \r\n",SHT25_get_hum());
0917: BCF 0A.3
0918: GOTO 701
0919: BSF 0A.3
091A: MOVF 77,W
091B: MOVWF 22
091C: MOVF 78,W
091D: MOVWF 23
091E: MOVF 79,W
091F: MOVWF 24
0920: MOVF 7A,W
0921: MOVWF 25
0922: MOVLW 31
0923: BSF 03.6
0924: MOVWF 0D
0925: MOVLW 00
0926: MOVWF 0F
0927: BCF 03.0
0928: MOVLW 05
0929: BCF 03.6
092A: MOVWF 26
092B: BCF 0A.3
092C: CALL 1FE
092D: BSF 0A.3
092E: MOVLW 89
092F: MOVWF 04
0930: MOVF 25,W
0931: MOVWF 29
0932: MOVF 24,W
0933: MOVWF 28
0934: MOVF 23,W
0935: MOVWF 27
0936: MOVF 22,W
0937: MOVWF 26
0938: MOVLW 02
0939: MOVWF 2A
0904: MOVF 77,W
0905: MOVWF 23
0906: MOVF 78,W
0907: MOVWF 24
0908: MOVF 79,W
0909: MOVWF 25
090A: MOVF 7A,W
090B: MOVWF 26
090C: MOVLW 2B
090D: BSF 03.6
090E: MOVWF 0D
090F: MOVLW 00
0910: MOVWF 0F
0911: BCF 03.0
0912: MOVLW 05
0913: BCF 03.6
0914: MOVWF 27
0915: BCF 0A.3
0916: CALL 23E
0917: BSF 0A.3
0918: MOVLW 89
0919: MOVWF 04
091A: MOVF 26,W
091B: MOVWF 2A
091C: MOVF 25,W
091D: MOVWF 29
091E: MOVF 24,W
091F: MOVWF 28
0920: MOVF 23,W
0921: MOVWF 27
0922: MOVLW 02
0923: MOVWF 2B
0924: BCF 0A.3
0925: CALL 65C
0926: BSF 0A.3
0927: MOVLW 20
0928: MOVWF 34
0929: BCF 0A.3
092A: CALL 0B3
092B: BSF 0A.3
092C: MOVLW 0D
092D: MOVWF 34
092E: BCF 0A.3
092F: CALL 0B3
0930: BSF 0A.3
0931: MOVLW 0A
0932: MOVWF 34
0933: BCF 0A.3
0934: CALL 0B3
0935: BSF 0A.3
.................... delay_ms (1000);
0936: MOVLW 04
0937: MOVWF 23
0938: MOVLW FA
0939: MOVWF 28
093A: BCF 0A.3
093B: CALL 61A
093B: CALL 11D
093C: BSF 0A.3
093D: MOVLW 20
093E: MOVWF 33
093F: BCF 0A.3
0940: CALL 0B9
0941: BSF 0A.3
0942: MOVLW 0D
0943: MOVWF 33
0944: BCF 0A.3
0945: CALL 0B9
0946: BSF 0A.3
0947: MOVLW 0A
0948: MOVWF 33
0949: BCF 0A.3
094A: CALL 0B9
094B: BSF 0A.3
.................... delay_ms (1000);
094C: MOVLW 04
094D: MOVWF 22
094E: MOVLW FA
094F: MOVWF 27
0950: BCF 0A.3
0951: CALL 123
0952: BSF 0A.3
0953: DECFSZ 22,F
0954: GOTO 14E
093D: DECFSZ 23,F
093E: GOTO 138
.................... i++;
0955: INCF 21,F
093F: INCF 21,F
.................... }
0956: GOTO 079
0940: GOTO 079
.................... }
....................
0957: SLEEP
0941: SLEEP
 
Configuration Fuses:
Word 1: 2CF4 INTRC_IO NOWDT NOPUT MCLR NOPROTECT NOCPD NOBROWNOUT IESO FCMEN NOLVP NODEBUG
/Modules/Sensors/SHT25V01A/SW/PIC16F887/main.pjt
17,12 → 17,14
0=0000 %S 0 0 796 451 3 0
[Opened Files]
1=main.c
2=
2=main.h
3=C:\Program Files\PICC\devices\16F887.h
4=
4=SHT25.c
5=SHT25.h
6=
[Target Data]
OptionString=-p +FM
FileList=Z:\home\kaklik\MLAB\Modules\Sensors\SHT25V01A\SW\PIC16F887\main.c
FileList=D:\MLAB\Modules\Sensors\SHT25V01A\SW\PIC16F887\main.c
[Units]
Count=1
1=main (main)
/Modules/Sensors/SHT25V01A/SW/PIC16F887/main.sta
1,22 → 1,24
 
ROM used: 2319 (28%)
2392 (29%) including unused fragments
ROM used: 2363 (29%)
2370 (29%) including unused fragments
 
4 Average locations per line
34 Average locations per statement
31 Average locations per statement
 
RAM used: 11 (3%) at main() level
37 (10%) worst case
RAM used: 12 (3%) at main() level
38 (10%) worst case
 
Stack used: 2 worst case (out of 8 total available)
 
Lines Stmts % Files
----- ----- --- -----
133 68 100 main.c
43 26 34 main.c
23 0 0 main.h
423 0 0 C:\Program Files (x86)\PICC\devices\16F887.h
423 0 0 C:\Program Files\PICC\devices\16F887.h
14 0 0 SHT25.h
92 51 66 SHT25.c
----- -----
579 68 Total
595 77 Total
 
Page ROM % RAM Vol Diff Functions:
---- --- --- --- --- ---- ----------
24,21 → 26,20
0 69 3 3 @I2C_READ_1
0 74 3 1 @I2C_WRITE_1
0 34 1 1 @PUTCHAR_1_
0 56 2 0 68 0.6 SHT25_soft_reset
0 130 6 3 349 4.0 SHT25_setup
0 205 9 9 572 6.0 SHT25_get_temp
0 56 2 0 55 1.1 SHT25_soft_reset
0 200 8 3 550 4.0 SHT25_setup
0 207 9 9 572 6.0 SHT25_get_temp
0 29 1 2 @ITOF
0 202 9 14 @DIVFF
0 117 5 13 @MULFF
0 321 14 16 @ADDFF
0 182 8 9 552 6.0 SHT25_get_hum
1 344 15 5 763 5.2 MAIN
0 25 1 0 @const104
1 322 14 6 831 5.7 MAIN
0 25 1 0 @const105
0 72 3 3 @PSTRINGC7_69
0 7 0 0 @const106
0 8 0 0 @const107
0 79 3 4 @PSTRINGCN7_69
0 33 1 2 @PRINTF_X_69
0 7 0 0 @const112
0 6 0 0 @const113
Inline 5 @FTOSD
0 66 3 13 @DIV3232
47,21 → 48,21
 
Program metrics:
Functions 5
Statements 68
Comments 104
Volume (V) 3203
Difficilty (D) 19.6
Effort to implement (E) 62707
Time to implement (T) 58 minutes
Statements 77
Comments 124
Volume (V) 3540
Difficilty (D) 21.1
Effort to implement (E) 74648
Time to implement (T) 1 hours, 9 minutes
Est Delivered Bugs (B) 1
Cyclomatic Complexity 1
Maintainability (MI) 130
Cyclomatic Complexity 2
Maintainability (MI) 142
 
Segment Used Free
----------- ---- ----
00000-00003 4 0
00004-007FF 1971 73
00800-00FFF 344 1704
00004-007FF 2037 7
00800-00FFF 322 1726
01000-017FF 0 2048
01800-01FFF 0 2048
 
/Modules/Sensors/SHT25V01A/SW/PIC16F887/main.sym
8,89 → 8,90
01C CCP_2_HIGH
020 @TRIS_C
021 MAIN.i
022 SHT25_setup.setup_reg
022 SHT25_get_hum.MSB
022 SHT25_get_temp.MSB
022 MAIN.@SCRATCH1
022 @PSTRINGC7_69.@SCRATCH1
023 @PRINTF_X_69.P1
023 SHT25_setup.reg
023 SHT25_get_hum.LSB
023 SHT25_get_temp.LSB
023 MAIN.@SCRATCH2
023 @PSTRINGC7_69.@SCRATCH2
024 SHT25_get_hum.Check
024 SHT25_get_temp.Check
022 MAIN.sht_config
023 SHT25_setup.setup_reg
023 SHT25_get_temp.MSB
023 SHT25_get_hum.MSB
023 MAIN.@SCRATCH1
023 @PSTRINGC7_69.@SCRATCH1
024 SHT25_get_hum.LSB
024 @PRINTF_X_69.P1
024 SHT25_setup.@SCRATCH1
024 MAIN.@SCRATCH3
024 @PSTRINGC7_69.@SCRATCH3
025-026 SHT25_get_temp.data
025-026 SHT25_get_hum.data
025 MAIN.@SCRATCH4
026 @PSTRINGCN7_69.P1
026-029 @PRINTF_L32D_69FPFPF.P2
027 @I2C_READ_1.P1
027 @I2C_WRITE_1.P2
027-02A @ADDFF.P3
027-028 @ITOF.P4
027 @delay_ms1.P5
027 SHT25_get_temp.@SCRATCH1
027 SHT25_get_hum.@SCRATCH1
027 @PSTRINGCN7_69.@SCRATCH1
028 @I2C_READ_1.@SCRATCH1
028 SHT25_get_temp.@SCRATCH2
028 SHT25_get_hum.@SCRATCH2
028 @PSTRINGCN7_69.@SCRATCH2
029 @I2C_READ_1.@SCRATCH2
029 SHT25_get_temp.@SCRATCH3
029 SHT25_get_hum.@SCRATCH3
029 @PSTRINGCN7_69.@SCRATCH3
02A @PRINTF_L32D_69FPFPF.P1
02A SHT25_get_temp.@SCRATCH4
02A SHT25_get_hum.@SCRATCH4
02B-02E @ADDFF.P1
02B-02E @DIVFF.P2
02B @PRINTF_L32D_69FPFPF.@SCRATCH1
02C @PRINTF_L32D_69FPFPF.@SCRATCH2
02D @PRINTF_L32D_69FPFPF.@SCRATCH3
02E @PRINTF_L32D_69FPFPF.@SCRATCH4
02F-032 @DIVFF.P1
02F @ADDFF.@SCRATCH1
02F @PRINTF_L32D_69FPFPF.@SCRATCH5
030 @ADDFF.@SCRATCH2
030 @PRINTF_L32D_69FPFPF.@SCRATCH6
031 @ADDFF.@SCRATCH3
031 @PRINTF_L32D_69FPFPF.@SCRATCH7
032 @ADDFF.@SCRATCH4
032 @PRINTF_L32D_69FPFPF.@SCRATCH8
033-036 @DIV3232.P1
033-036 @FTOSD.P2
033-036 @MULFF.P3
033 @PUTCHAR_1_.P4
033 @DIVFF.@SCRATCH1
033 @ADDFF.@SCRATCH5
034 @DIVFF.@SCRATCH2
034 @ADDFF.@SCRATCH6
035 @DIVFF.@SCRATCH3
035 @ADDFF.@SCRATCH7
036 @DIVFF.@SCRATCH4
036 @ADDFF.@SCRATCH8
037-03A @MULFF.P1
037-03A @DIV3232.P2
037 @DIVFF.@SCRATCH5
037 @FTOSD.@SCRATCH1
038 @DIVFF.@SCRATCH6
03B @MULFF.@SCRATCH1
03B @DIV3232.@SCRATCH1
03C @MULFF.@SCRATCH2
03C @DIV3232.@SCRATCH2
03D @MULFF.@SCRATCH3
03D @DIV3232.@SCRATCH3
03E @MULFF.@SCRATCH4
03E @DIV3232.@SCRATCH4
03F @MULFF.@SCRATCH5
03F @DIV3232.@SCRATCH5
024 SHT25_setup.reg
024 SHT25_get_temp.LSB
024 MAIN.@SCRATCH2
024 @PSTRINGC7_69.@SCRATCH2
025 @PRINTF_X_69.P1
025 SHT25_get_temp.Check
025 SHT25_get_hum.Check
025 SHT25_setup.@SCRATCH1
025 MAIN.@SCRATCH3
025 @PSTRINGC7_69.@SCRATCH3
026-027 SHT25_get_hum.data
026-027 SHT25_get_temp.data
026 MAIN.@SCRATCH4
027-02A @PRINTF_L32D_69FPFPF.P1
027 @PSTRINGCN7_69.P2
028 @I2C_WRITE_1.P1
028-029 @ITOF.P2
028-02B @ADDFF.P3
028 @delay_ms1.P4
028 @I2C_READ_1.P5
028 SHT25_get_temp.@SCRATCH1
028 SHT25_get_hum.@SCRATCH1
028 @PSTRINGCN7_69.@SCRATCH1
029 @I2C_READ_1.@SCRATCH1
029 SHT25_get_temp.@SCRATCH2
029 SHT25_get_hum.@SCRATCH2
029 @PSTRINGCN7_69.@SCRATCH2
02A @I2C_READ_1.@SCRATCH2
02A SHT25_get_temp.@SCRATCH3
02A SHT25_get_hum.@SCRATCH3
02A @PSTRINGCN7_69.@SCRATCH3
02B @PRINTF_L32D_69FPFPF.P1
02B SHT25_get_temp.@SCRATCH4
02B SHT25_get_hum.@SCRATCH4
02C-02F @DIVFF.P1
02C-02F @ADDFF.P2
02C @PRINTF_L32D_69FPFPF.@SCRATCH1
02D @PRINTF_L32D_69FPFPF.@SCRATCH2
02E @PRINTF_L32D_69FPFPF.@SCRATCH3
02F @PRINTF_L32D_69FPFPF.@SCRATCH4
030-033 @DIVFF.P1
030 @ADDFF.@SCRATCH1
030 @PRINTF_L32D_69FPFPF.@SCRATCH5
031 @ADDFF.@SCRATCH2
031 @PRINTF_L32D_69FPFPF.@SCRATCH6
032 @ADDFF.@SCRATCH3
032 @PRINTF_L32D_69FPFPF.@SCRATCH7
033 @ADDFF.@SCRATCH4
033 @PRINTF_L32D_69FPFPF.@SCRATCH8
034-037 @FTOSD.P1
034-037 @DIV3232.P2
034-037 @MULFF.P3
034 @PUTCHAR_1_.P4
034 @DIVFF.@SCRATCH1
034 @ADDFF.@SCRATCH5
035 @DIVFF.@SCRATCH2
035 @ADDFF.@SCRATCH6
036 @DIVFF.@SCRATCH3
036 @ADDFF.@SCRATCH7
037 @DIVFF.@SCRATCH4
037 @ADDFF.@SCRATCH8
038-03B @MULFF.P1
038-03B @DIV3232.P2
038 @DIVFF.@SCRATCH5
038 @FTOSD.@SCRATCH1
039 @DIVFF.@SCRATCH6
03C @MULFF.@SCRATCH1
03C @DIV3232.@SCRATCH1
03D @MULFF.@SCRATCH2
03D @DIV3232.@SCRATCH2
03E @MULFF.@SCRATCH3
03E @DIV3232.@SCRATCH3
03F @MULFF.@SCRATCH4
03F @DIV3232.@SCRATCH4
040 @MULFF.@SCRATCH5
040 @DIV3232.@SCRATCH5
077 @SCRATCH
078 @SCRATCH
078 _RETURN_
102,30 → 103,29
10D-10E @WRITE_PROGRAM_MEMORY8.P2
 
ROM Allocation:
0123 @delay_ms1
0137 @I2C_READ_1
0037 @I2C_WRITE_1
00B9 @PUTCHAR_1_
0081 SHT25_soft_reset
017C SHT25_setup
050B SHT25_get_temp
026E @ITOF
028B @DIVFF
0355 @MULFF
03CA @ADDFF
0701 SHT25_get_hum
011D @delay_ms1
0131 @I2C_READ_1
0031 @I2C_WRITE_1
00B3 @PUTCHAR_1_
007B SHT25_soft_reset
0176 SHT25_setup
054B SHT25_get_temp
02AE @ITOF
02CB @DIVFF
0395 @MULFF
040A @ADDFF
0743 SHT25_get_hum
0800 MAIN
0004 @const104
00DB @PSTRINGC7_69
001D @const106
01FE @PSTRINGCN7_69
024D @PRINTF_X_69
0024 @const112
002B @const113
0641 @FTOSD
05D8 @DIV3232
061A @PRINTF_L32D_69FPFPF
0031 @const122
0004 @const105
00D5 @PSTRINGC7_69
001D @const107
023E @PSTRINGCN7_69
028D @PRINTF_X_69
0025 @const113
0683 @FTOSD
061A @DIV3232
065C @PRINTF_L32D_69FPFPF
002B @const122
0800 @cinit
 
 
134,15 → 134,17
User Memory space:
 
Project Directory:
Z:\home\kaklik\MLAB\Modules\Sensors\SHT25V01A\SW\PIC16F887\
D:\MLAB\Modules\Sensors\SHT25V01A\SW\PIC16F887\
 
Project Files:
main.c
main.h
C:\Program Files (x86)\PICC\devices\16F887.h
C:\Program Files\PICC\devices\16F887.h
SHT25.h
SHT25.c
 
Units:
Z:\home\kaklik\MLAB\Modules\Sensors\SHT25V01A\SW\PIC16F887\main (main)
D:\MLAB\Modules\Sensors\SHT25V01A\SW\PIC16F887\main (main)
 
Compiler Settings:
Processor: PIC16F887
/Modules/Sensors/SHT25V01A/SW/PIC16F887/main.tre
1,5 → 1,5
ÀÄmain
ÀÄMAIN 1/344 Ram=5
ÀÄMAIN 1/322 Ram=6
ÃÄ??0??
ÃÄSHT25_soft_reset 0/56 Ram=0
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
8,7 → 8,7
³ ÃÄ@PUTCHAR_1_ 0/34 Ram=1
³ ÀÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@delay_ms1 0/20 Ram=1
ÃÄSHT25_setup 0/130 Ram=3
ÃÄSHT25_setup 0/200 Ram=3
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
15,24 → 15,12
³ ÃÄ@I2C_READ_1 0/69 Ram=3
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÀÄ@I2C_WRITE_1 0/74 Ram=1
ÃÄ@PSTRINGCN7_69 0/79 Ram=4
³ ÃÄ@PUTCHAR_1_ 0/34 Ram=1
³ ÀÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PRINTF_X_69 0/33 Ram=2
³ ÃÄ@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
ÃÄSHT25_setup 0/130 Ram=3
³ ÃÄ@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_READ_1 0/69 Ram=3
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÀÄ@I2C_WRITE_1 0/74 Ram=1
³ ÀÄ@I2C_READ_1 0/69 Ram=3
ÃÄ@PSTRINGCN7_69 0/79 Ram=4
³ ÃÄ@PUTCHAR_1_ 0/34 Ram=1
³ ÀÄ@PUTCHAR_1_ 0/34 Ram=1
40,10 → 28,14
³ ÃÄ@PUTCHAR_1_ 0/34 Ram=1
³ ÀÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PUTCHAR_1_ 0/34 Ram=1
ÃÄ@PRINTF_X_69 0/33 Ram=2
³ ÃÄ@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
ÃÄ@delay_ms1 0/20 Ram=1
ÃÄSHT25_get_temp 0/205 Ram=9
ÃÄSHT25_get_temp 0/207 Ram=9
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÃÄ@I2C_WRITE_1 0/74 Ram=1
³ ÃÄ@delay_ms1 0/20 Ram=1