This commit is contained in:
Sergey Yarkov 2023-08-07 20:53:52 +03:00
parent 505f2f80d8
commit d7f4dc19b7
No known key found for this signature in database
GPG Key ID: E91CE1FABC619B6F
16 changed files with 700 additions and 673 deletions

View File

@ -1,7 +1,7 @@
:1000000013C01AC019C018C017C016C015C014C03C
:1000100013C012C011C010C00FC00EC00DC03F06EB
:100020005B4F666D7D077F6F11241FBECFE5D1E06A
:10003000DEBFCDBFEAD106C4E3CFF894C09AC29A1E
:10003000DEBFCDBFEAD115C4E3CFF894C09AC29A0F
:100040008DE08A95F1F70000C0988DE08A95F1F770
:100050000000C29878940895F894C298C0988DE0F2
:100060008A95F1F70000C29A8DE08A95F1F70000B9
@ -24,12 +24,12 @@
:10017000180714F0C7EED3E0112354F00F2EF3E06C
:10018000DF2EF02D0F2EFAE0EF2EF12CF02D17C000
:10019000D195C195D10960E080E4C3DFEFCFDA9457
:1001A000CE01B7013CD3B62EC72E825E9F4FFC0115
:1001A000CE01B7014BD3B62EC72E825E9F4FFC0106
:1001B00084916D2DB6DFCB2DDC2DDD2029F01123B0
:1001C00074F7E1E0DE12EBCFDF91CF911F910F9139
:1001D000FF90EF90DF90CF90BF900895992384F027
:1001E00021E08A30910554F021E0EAE0F0E0BF011F
:1001F00016D3CB012F5F6A307105CCF7822F08959B
:1001F00025D3CB012F5F6A307105CCF7822F08958C
:10020000919581959109ECCF7F928F929F92AF92B9
:10021000BF92CF92DF92EF92FF920F931F93CF93F3
:10022000DF9300D01F92CDB7DEB7F62E942EE22ECC
@ -46,8 +46,8 @@
:1002D0006C01883E934034F00F2EF7EECF2EF3E002
:1002E000DF2EF02DEE24E394D194C194D108C60101
:1002F00075DFB82E52E011E0851310E02AE030E0FF
:10030000C601B9018CD28B83CB01B90188D28A8313
:10031000C60164E670E083D2CB01B90180D2A82E79
:10030000C601B9019BD28B83CB01B90197D28A83F5
:10031000C60164E670E092D2CB01B9018FD2A82E5B
:10032000898381E0B81609F4A0CF03E00B190330EC
:1003300008F0B6CF82E090E06C01C918D1087E2C9D
:100340006894992497F8812C33C01C151D0409F476
@ -60,75 +60,77 @@
:1003B000EE2059F2112309F45ACF1C151D0421F720
:1003C00083E0B81609F3E1E0F0E0EC0FFD1FE00F69
:1003D000F11DE081F0E0E25EFF4FE491F2E0892D53
:1003E000BF1609F453CF8E2BDACF56D1882351F0A4
:1003F000813011F081E00895C39A81E090E0ABDE96
:1004000081E00895C39880E00895CF93DF93CDB73E
:10041000DEB766970FB6F894DEBF0FBECDBFBB9AAE
:10042000C398A89588E198E20FB6F894A89581BD85
:100430000FBE91BD6BE0CE010196F3D028E042E003
:1003E000BF1609F453CF8E2BDACF62D1882351F098
:1003F000813011F081E00895C19A81E090E0ABDE98
:1004000081E00895C19880E00895CF93DF93CDB740
:10041000DEB766970FB6F894DEBF0FBECDBFB99AB0
:10042000C198A89588E199E20FB6F894A89581BD86
:100430000FBE91BD6CE0CE010196FFD028E042E0F6
:1004400062E080E054DE7DDE2FEF80E792E0215015
:1004500080409040E1F700C0000004E610E00DC0CD
:10046000CE01019633D18B899C89B801C4D12D89E5
:1004700041E089899A89C8DEA895CE010196B5DF49
:10048000882371F32FE788E391E02150804090406A
:10049000E1F700C00000A895F0CFF894BC9A8FEB6C
:1004A00093E00197F1F700C00000BC989AEB9A9591
:1004B000F1F700C086B3E3E3F3E03197F1F700C052
:1004C000000078948295817091E08927089598E0E2
:1004D0000DC0BC9A20EA2A95F1F7BC982AE12A952A
:1004E000F1F700C078948695915069F0F89480FFF8
:1004F000F0CFBC9A20E12A95F1F7BC982AEA2A9518
:10050000F1F700C0EFCF089598E080E007C022E93E
:100510002A95F1F700C07894915071F0F89486957F
:10052000BC9A20E12A95F1F7BC9828E12A95F1F7C9
:10053000B49BEDCF8068EBCF0895AFDF811101C090
:1005400008958CECC4DF81E0FBCF0F931F93CF9312
:10055000DF938C01A2DF811105C0DF91CF911F9144
:100560000F91089583E3B3DFE801085F1F4FCCDFED
:100570008993C017D107D9F781E0EFCFFC01680F4D
:10058000791F80E02CE80BC08695915029F080FF00
:10059000FBCF86958227F9CFE617F70721F09191D7
:1005A000892798E0F4CF0895EF92FF920F931F935D
:1005B000CF93DF937C01C1DF8EEB89DFE7018701F9
:1005C000085F1F4FA1DF8993C017D107D9F768E0F3
:1005D00070E0C701D3DFC82F97DF91E0C81390E028
:1005E000892FDF91CF911F910F91FF90EF90089588
:1005F00054DF811101C00895A0DF88E468DF81E045
:10060000FACFCF93DF93EC0198DF8EE460DF88812F
:100610005EDF89815CDF8A815ADFEADFDF91CF917B
:100620000895FF920F931F93CF93DF9300D01F92F3
:10063000CDB7DEB78C01F62EB7DFF8018281898352
:1006400083818A83FAE0FF16B9F08BE0F81689F00F
:10065000E9E0FE16A1F08FE78B83CE010196D1DF92
:100660000F900F900F90DF91CF911F910F91FF90FE
:1006700008958FE58B83F1CF8FE38B83EECF8FE1EE
:100680008B83EBCF0ADF811101C008958CEC1FDF53
:1006900084E41DDF81E0F9CFCF93DF93EC01FDDE31
:1006A000811104C081E0DF91CF910895CE010896B9
:1006B0004CDF8885883211F082E0F5CFCE0174DFFF
:1006C000882311F080E0EFCF83E0EDCFCF93DF936D
:1006D000EC01D8DF882309F45EC02C81822F90E0E2
:1006E0008095909580769927892B09F057C02FE740
:1006F0003FE482E1215030408040E1F700C000003B
:10070000CE0152DF882309F46BC01D8A898190E0F5
:100710004881242F382F33230CF465C03595279555
:10072000359527953595279535952795398B288BC0
:1007300080959095887F9927892B09F057C081E093
:100740008C8B4195488388818F70282F30E0C901B8
:10075000880F991F82959295907F9827807F982780
:10076000821B930B880F991F880F991F820F931F6D
:10077000880F991F880F991F880F991F9C01992333
:10078000BCF1359527953595279535952795359560
:1007900027953B8B2A8BDF91CF91089526FF0AC0C6
:1007A0009FEB27E239E0915020403040E1F700C054
:1007B0000000A6CF25FF0AC08FEF96E924E0815004
:1007C00090402040E1F700C000009ACF3FE78BE463
:1007D00092E0315080409040E1F700C0000090CF9F
:1007E00081E08D8BD8CF215F3F4F98CF1C8AABCF54
:1007F000215F3F4FC6CFAA1BBB1B51E107C0AA1FF9
:10080000BB1FA617B70710F0A61BB70B881F991FB1
:100810005A95A9F780959095BC01CD01089597FB55
:10082000072E16F4009406D077FD08D0E4DF07FC0D
:1008300005D03EF4909581959F4F089570956195F0
:080840007F4F0895F894FFCFEB
:1004500080409040E1F700C0000004E610E013C0C7
:100460008FE19EE40197F1F700C00000CE010196F4
:1004700039D18B899C89B801CDD12D8941E08989F9
:100480009A89C2DEA895CE010196AFDF882341F399
:100490002FE788E391E0215080409040E1F700C0D1
:1004A0000000A895F0CFF894BB9A8FEB93E00197EA
:1004B000F1F700C00000BB989AEB9A95F1F700C0E5
:1004C00086B3E3E3F3E03197F1F700C000007894DE
:1004D00083FB882780F991E08927089598E00DC073
:1004E000BB9A20EA2A95F1F7BB982AE12A95F1F701
:1004F00000C078948695915069F0F89480FFF0CF11
:10050000BB9A20E12A95F1F7BB982AEA2A95F1F7E0
:1005100000C0EFCF089598E080E007C022E92A9557
:10052000F1F700C07894915071F0F8948695BB9AD9
:1005300020E12A95F1F7BB9828E12A95F1F7B39BC2
:10054000EDCF8068EBCF0895AEDF811101C0089533
:100550008CECC4DF81E0FBCF0F931F93CF93DF932D
:100560008C01A1DF811105C0DF91CF911F910F9107
:10057000089583E3B3DFE801085F1F4FCCDF899361
:10058000C017D107D9F781E0EFCFFC01680F791FC1
:1005900080E02CE80BC08695915029F080FFFBCFBE
:1005A00086958227F9CFE617F70721F091918927E1
:1005B00098E0F4CF0895EF92FF920F931F93CF939B
:1005C000DF937C01C1DF982F811108C0892FDF9153
:1005D000CF911F910F91FF90EF9008958EEB7EDFEA
:1005E000E7018701085F1F4F96DF8993C017D10786
:1005F000D9F768E070E0C701C8DFC82F8CDF91E051
:10060000C81721F390E0E2CF4EDF811101C00895B9
:100610009BDF88E463DF81E0FACFCF93DF93EC01C7
:1006200093DF8EE45BDF888159DF898157DF8A8120
:1006300055DFEADFDF91CF910895FF920F931F936B
:10064000CF93DF9300D01F92CDB7DEB78C01F62E8B
:10065000B2DFF8018281898383818A83FAE0FF1601
:10066000B9F08BE0F81689F0E9E0FE16A1F08FE70B
:100670008B83CE010196D1DF0F900F900F90DF9109
:10068000CF911F910F91FF9008958FE58B83F1CF4C
:100690008FE38B83EECF8FE18B83EBCF04DF811170
:1006A00001C008958CEC1ADF84E418DF81E0F9CFF3
:1006B000CF93DF93EC01F7DE811104C081E0DF917D
:1006C000CF910895CE01089647DF8885883211F0D2
:1006D00082E0F5CFCE016FDF882311F080E0EFCF0D
:1006E00083E0EDCFCF93DF93EC0165DF811103C091
:1006F000DF91CF910895D2DF8823D1F32C81822F0F
:1007000090E08095909580769927892B09F055C0C7
:100710002FE73FE482E1215030408040E1F700C004
:100720000000CE0148DF882309F469C01D8A898151
:1007300090E04881242F382F33230CF463C0359583
:100740002795359527953595279535952795398B97
:10075000288B80959095887F9927892B09F055C023
:1007600081E08C8B4195488388818F70282F30E001
:10077000C901880F991F82959295907F9827807F55
:100780009827821B930B880F991F880F991F820F40
:10079000931F880F991F880F991F880F991F9C011D
:1007A0009923ACF13595279535952795359527955E
:1007B000359527953B8B2A8B9BCF26FF0AC09FEB55
:1007C00027E239E0915020403040E1F700C00000BE
:1007D000A8CF25FF0AC08FEF96E924E08150904012
:1007E0002040E1F700C000009CCF3FE78BE492E09F
:1007F000315080409040E1F700C0000092CF81E08E
:100800008D8B76CF215F3F4F9ACF1C8AADCF215F72
:100810003F4FC8CFAA1BBB1B51E107C0AA1FBB1F7C
:10082000A617B70710F0A61BB70B881F991F5A957C
:10083000A9F780959095BC01CD01089597FB072EEF
:1008400016F4009406D077FD08D0E4DF07FC05D04D
:100850003EF4909581959F4F0895709561957F4FD7
:060860000895F894FFCF9B
:00000001FF

File diff suppressed because it is too large Load Diff

View File

@ -193,7 +193,7 @@ END GROUP
.rela.plt
*(.rela.plt)
.text 0x0000000000000000 0x848
.text 0x0000000000000000 0x866
*(.vectors)
.vectors 0x0000000000000000 0x1e /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
0x0000000000000000 __vectors
@ -300,59 +300,59 @@ END GROUP
.text.SensorErrorHandler
0x00000000000003ea 0x20 build/default/production/main.o
0x00000000000003ea SensorErrorHandler
.text.main 0x000000000000040a 0x90 build/default/production/main.o
.text.main 0x000000000000040a 0x9c build/default/production/main.o
0x000000000000040a main
.text.OneWire_Presence
0x000000000000049a 0x34 build/default/production/onewire.o
0x000000000000049a OneWire_Presence
0x00000000000004a6 0x36 build/default/production/onewire.o
0x00000000000004a6 OneWire_Presence
.text.OneWire_WriteByte
0x00000000000004ce 0x3a build/default/production/onewire.o
0x00000000000004ce OneWire_WriteByte
0x00000000000004dc 0x3a build/default/production/onewire.o
0x00000000000004dc OneWire_WriteByte
.text.OneWire_ReadByte
0x0000000000000508 0x32 build/default/production/onewire.o
0x0000000000000508 OneWire_ReadByte
0x0000000000000516 0x32 build/default/production/onewire.o
0x0000000000000516 OneWire_ReadByte
.text.OneWire_SkipROM
0x000000000000053a 0x10 build/default/production/onewire.o
0x000000000000053a OneWire_SkipROM
0x0000000000000548 0x10 build/default/production/onewire.o
0x0000000000000548 OneWire_SkipROM
.text.OneWire_ReadROM
0x000000000000054a 0x32 build/default/production/onewire.o
0x000000000000054a OneWire_ReadROM
0x0000000000000558 0x32 build/default/production/onewire.o
0x0000000000000558 OneWire_ReadROM
.text.OneWire_CRC8_Update
0x000000000000057c 0x2c build/default/production/onewire.o
0x000000000000057c OneWire_CRC8_Update
0x000000000000058a 0x2c build/default/production/onewire.o
0x000000000000058a OneWire_CRC8_Update
.text.DallasTemp_ReadScratchpad
0x00000000000005a8 0x48 build/default/production/dstemperature.o
0x00000000000005a8 DallasTemp_ReadScratchpad
0x00000000000005b6 0x52 build/default/production/dstemperature.o
0x00000000000005b6 DallasTemp_ReadScratchpad
.text.DallasTemp_CopyScratchpad
0x00000000000005f0 0x12 build/default/production/dstemperature.o
0x00000000000005f0 DallasTemp_CopyScratchpad
0x0000000000000608 0x12 build/default/production/dstemperature.o
0x0000000000000608 DallasTemp_CopyScratchpad
.text.DallasTemp_WriteScratchpad
0x0000000000000602 0x20 build/default/production/dstemperature.o
0x0000000000000602 DallasTemp_WriteScratchpad
0x000000000000061a 0x20 build/default/production/dstemperature.o
0x000000000000061a DallasTemp_WriteScratchpad
.text.DallasTemp_SetResolution
0x0000000000000622 0x62 build/default/production/dstemperature.o
0x0000000000000622 DallasTemp_SetResolution
0x000000000000063a 0x62 build/default/production/dstemperature.o
0x000000000000063a DallasTemp_SetResolution
.text.DallasTemp_Convert
0x0000000000000684 0x14 build/default/production/dstemperature.o
0x0000000000000684 DallasTemp_Convert
0x000000000000069c 0x14 build/default/production/dstemperature.o
0x000000000000069c DallasTemp_Convert
.text.DallasTemp_CheckError
0x0000000000000698 0x34 build/default/production/dstemperature.o
0x0000000000000698 DallasTemp_CheckError
0x00000000000006b0 0x34 build/default/production/dstemperature.o
0x00000000000006b0 DallasTemp_CheckError
.text.DallasTemp_GetTemperature
0x00000000000006cc 0x12a build/default/production/dstemperature.o
0x00000000000006cc DallasTemp_GetTemperature
0x00000000000006e4 0x130 build/default/production/dstemperature.o
0x00000000000006e4 DallasTemp_GetTemperature
.text.libgcc.div
0x00000000000007f6 0x28 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o)
0x00000000000007f6 __udivmodhi4
0x0000000000000814 0x28 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o)
0x0000000000000814 __udivmodhi4
.text.libgcc.div
0x000000000000081e 0x26 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o)
0x000000000000081e __divmodhi4
0x000000000000081e _div
0x0000000000000844 . = ALIGN (0x2)
0x000000000000083c 0x26 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o)
0x000000000000083c __divmodhi4
0x000000000000083c _div
0x0000000000000862 . = ALIGN (0x2)
*(.fini9)
.fini9 0x0000000000000844 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
0x0000000000000844 exit
0x0000000000000844 _exit
.fini9 0x0000000000000862 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
0x0000000000000862 exit
0x0000000000000862 _exit
*(.fini9)
*(.fini8)
*(.fini8)
@ -371,11 +371,11 @@ END GROUP
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x0000000000000844 0x4 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
.fini0 0x0000000000000862 0x4 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
*(.fini0)
0x0000000000000848 _etext = .
0x0000000000000866 _etext = .
.data 0x0000000000800060 0x0 load address 0x0000000000000848
.data 0x0000000000800060 0x0 load address 0x0000000000000866
[!provide] PROVIDE (__data_start, .)
*(.data)
*(.data*)
@ -393,8 +393,8 @@ END GROUP
*(.bss*)
*(COMMON)
[!provide] PROVIDE (__bss_end, .)
0x0000000000000848 __data_load_start = LOADADDR (.data)
0x0000000000000848 __data_load_end = (__data_load_start + SIZEOF (.data))
0x0000000000000866 __data_load_start = LOADADDR (.data)
0x0000000000000866 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x0000000000800060 0x0
[!provide] PROVIDE (__noinit_start, .)

View File

@ -1,7 +1,7 @@
#include "dstemperature.h"
uint8_t DallasTemp_ReadScratchpad(uint8_t *scratchpad) {
OneWire_SkipROM();
if (!OneWire_SkipROM()) return 0;
OneWire_WriteByte(DS18B20_CMD_RSCRATCHPAD);
for (uint8_t i = 0; i < 8; i++) {
@ -86,9 +86,14 @@ DallasSensorError DallasTemp_CheckError(DallasSensor* Sensor) {
return 0;
}
void DallasTemp_GetTemperature(DallasSensor *Sensor) {
void DallasTemp_GetTemperature(DallasSensor *Sensor) {
/* Читаем ОЗУ для определения нужной задержки */
if (!DallasTemp_ReadScratchpad(Sensor->SCRATCHPAD)) return;
/* Оцифровка */
if (!DallasTemp_Convert()) return;
/* Ждем необходимое кол-во времени в зависимости от разрядности АЦП */
if (!(~Sensor->SCRATCHPAD[4] & 0x60)) {
_delay_ms(750);
} else if (!(~Sensor->SCRATCHPAD[4] & 0x40)) {
@ -99,12 +104,12 @@ void DallasTemp_GetTemperature(DallasSensor *Sensor) {
_delay_ms(94);
}
/* Читаем еще раз ОЗУ для получения актуальной температуры и проверки валидности данных */
if (!DallasTemp_ReadScratchpad(Sensor->SCRATCHPAD)) {
Sensor->CRC_ERROR = 1;
return;
}
Sensor->CRC_ERROR = 0;
Sensor->TEMPERATURE = ((Sensor->SCRATCHPAD[1] << 8) | Sensor->SCRATCHPAD[0]) / 16;

View File

@ -17,7 +17,7 @@
#define PIN_TWI_CLK PINB2
#define TWI_DELAY 5 // uS
#define PIN_LED_ERR PB3
#define PIN_LED_ERR PB1
#define TM1637_DIGITS_COUNT 3
@ -268,10 +268,10 @@ int main(void) {
PORTB &= ~_BV(PIN_LED_ERR);
wdt_reset();
wdt_enable(WDTO_4S);
wdt_enable(WDTO_8S);
DallasSensor Sensor_01;
DallasTemp_SetResolution(&Sensor_01, DS_TEMP_ADC_RESOLUTION_11);
DallasTemp_SetResolution(&Sensor_01, DS_TEMP_ADC_RESOLUTION_12);
TM1637_Init(PORT_TWI_DIO, PORT_TWI_CLK, TM1637_BRIGHTNESS_2, TM1637_DISP_ON);
TM1637_DisplayLine();
@ -284,6 +284,8 @@ int main(void) {
_delay_ms(50);
wdt_reset();
continue;
} else {
_delay_ms(10);
}
#endif
@ -292,6 +294,7 @@ int main(void) {
*/
DallasTemp_GetTemperature(&Sensor_01);
TM1637_DisplayFixedNum(Sensor_01.TEMPERATURE, Sensor_01.TEMPERATURE_FRACTION / 100, 1, Sensor_01.T_NEGATIVE);
wdt_reset();
}
return 0;

View File

@ -1,5 +1,5 @@
#
#Mon Aug 07 11:59:03 MSK 2023
#Mon Aug 07 20:30:36 MSK 2023
default.languagetoolchain.version=7.3.0
default.Pack.dfplocation=/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151
default.com-microchip-mplab-nbide-toolchain-avr-AVRLanguageToolchain.md5=f7c8f2a9c7d7748a6cb97af5c32efadd

View File

@ -3,6 +3,8 @@
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group>
<file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer/firmware/dstemperature.c</file>
<file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer/firmware/dstemperature.h</file>
<file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer/firmware/main.c</file>
</group>
</open-files>

View File

@ -3,7 +3,7 @@
#include <avr/interrupt.h>
#include <util/delay.h>
#define OW_LINE PB4
#define OW_LINE PB3
#define OW_PIN PINB
#define OW_PORT PORTB
#define OW_DDR DDRB

Binary file not shown.

Binary file not shown.

View File

@ -65,7 +65,7 @@
<ITEM name="TopLineAddress">00000000</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="158" flags="80000000" y="239" h="32" pid="14" iid="1">
<POPUP w="16" x="158" flags="00000000" y="239" h="32" pid="14" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>