watchdog timer

This commit is contained in:
Sergey Yarkov 2023-08-06 21:30:34 +03:00
parent 128c1283d1
commit 0be2ffb199
No known key found for this signature in database
GPG Key ID: E91CE1FABC619B6F
10 changed files with 699 additions and 673 deletions

Binary file not shown.

View File

@ -13,6 +13,7 @@ build/default/production/main.o.d build/default/production/main.o: main.c \
/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/interrupt.h \ /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/interrupt.h \
/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/pgmspace.h \ /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/pgmspace.h \
/opt/avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/7.3.0/include/stddef.h \ /opt/avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/7.3.0/include/stddef.h \
/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/wdt.h \
/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay.h \ /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay.h \
/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay_basic.h \ /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay_basic.h \
/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/math.h onewire.h \ /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/math.h onewire.h \
@ -48,6 +49,8 @@ build/default/production/main.o.d build/default/production/main.o: main.c \
/opt/avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/7.3.0/include/stddef.h: /opt/avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/7.3.0/include/stddef.h:
/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/wdt.h:
/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay.h: /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay.h:
/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay_basic.h: /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay_basic.h:

View File

@ -1,7 +1,7 @@
:1000000013C01AC019C018C017C016C015C014C03C :1000000013C01AC019C018C017C016C015C014C03C
:1000100013C012C011C010C00FC00EC00DC03F06EB :1000100013C012C011C010C00FC00EC00DC03F06EB
:100020005B4F666D7D077F6F11241FBECFE5D1E06A :100020005B4F666D7D077F6F11241FBECFE5D1E06A
:10003000DEBFCDBFDAD1ECC3E3CFF894C09AC29A49 :10003000DEBFCDBFDAD1FAC3E3CFF894C09AC29A3B
:100040008DE08A95F1F70000C0988DE08A95F1F770 :100040008DE08A95F1F70000C0988DE08A95F1F770
:100050000000C29878940895F894C298C0988DE0F2 :100050000000C29878940895F894C298C0988DE0F2
:100060008A95F1F70000C29A8DE08A95F1F70000B9 :100060008A95F1F70000C29A8DE08A95F1F70000B9
@ -24,12 +24,12 @@
:10017000180714F0C7EED3E0112354F00F2EF3E06C :10017000180714F0C7EED3E0112354F00F2EF3E06C
:10018000DF2EF02D0F2EFAE0EF2EF12CF02D17C000 :10018000DF2EF02D0F2EFAE0EF2EF12CF02D17C000
:10019000D195C195D10960E080E4C3DFEFCFDA9457 :10019000D195C195D10960E080E4C3DFEFCFDA9457
:1001A000CE01B70122D3B62EC72E825E9F4FFC012F :1001A000CE01B70130D3B62EC72E825E9F4FFC0121
:1001B00084916D2DB6DFCB2DDC2DDD2029F01123B0 :1001B00084916D2DB6DFCB2DDC2DDD2029F01123B0
:1001C00074F7E1E0DE12EBCFDF91CF911F910F9139 :1001C00074F7E1E0DE12EBCFDF91CF911F910F9139
:1001D000FF90EF90DF90CF90BF900895992384F027 :1001D000FF90EF90DF90CF90BF900895992384F027
:1001E00021E08A30910554F021E0EAE0F0E0BF011F :1001E00021E08A30910554F021E0EAE0F0E0BF011F
:1001F000FCD2CB012F5F6A307105CCF7822F0895B6 :1001F0000AD3CB012F5F6A307105CCF7822F0895A7
:10020000919581959109ECCF7F928F929F92AF92B9 :10020000919581959109ECCF7F928F929F92AF92B9
:10021000BF92CF92DF92EF92FF920F931F93CF93F3 :10021000BF92CF92DF92EF92FF920F931F93CF93F3
:10022000DF9300D01F92CDB7DEB7F62E942EE22ECC :10022000DF9300D01F92CDB7DEB7F62E942EE22ECC
@ -46,8 +46,8 @@
:1002D0006C01883E934034F00F2EF7EECF2EF3E002 :1002D0006C01883E934034F00F2EF7EECF2EF3E002
:1002E000DF2EF02DEE24E394D194C194D108C60101 :1002E000DF2EF02DEE24E394D194C194D108C60101
:1002F00075DFB82E52E011E0851310E02AE030E0FF :1002F00075DFB82E52E011E0851310E02AE030E0FF
:10030000C601B90172D28B83CB01B9016ED28A8347 :10030000C601B90180D28B83CB01B9017CD28A832B
:10031000C60164E670E069D2CB01B90166D2A82EAD :10031000C60164E670E077D2CB01B90174D2A82E91
:10032000898381E0B81609F4A0CF03E00B190330EC :10032000898381E0B81609F4A0CF03E00B190330EC
:1003300008F0B6CF82E090E06C01C918D1087E2C9D :1003300008F0B6CF82E090E06C01C918D1087E2C9D
:100340006894992497F8812C33C01C151D0409F476 :100340006894992497F8812C33C01C151D0409F476
@ -62,70 +62,71 @@
:1003D000F11DE081F0E0E25EFF4FE491F2E0892D53 :1003D000F11DE081F0E0E25EFF4FE491F2E0892D53
:1003E000BF1609F453CF8E2BDACFCF93DF93CDB75F :1003E000BF1609F453CF8E2BDACFCF93DF93CDB75F
:1003F000DEB766970FB6F894DEBF0FBECDBFBB9ACF :1003F000DEB766970FB6F894DEBF0FBECDBFBB9ACF
:10040000C3986BE0CE010196F2D028E042E062E0B2 :10040000C398A89588E198E20FB6F894A89581BDA5
:1004100080E06DDE96DE04E610E00CC0C39A90E04A :100410000FBE91BD6BE0CE010196F7D028E042E01F
:100420009ADE2FEF80E792E0215080409040E1F784 :1004200062E080E064DE8DDE2FEF80E792E0215015
:1004300000C00000CE01019615D18111EFCFC39805 :1004300080409040E1F700C0000004E610E00DC0ED
:10044000CE01019629D18B899C89B801BAD12D8919 :10044000C39A90E088DE2FE788E391E02150804056
:1004500041E089899A89D8DEEDCFF894BC9A8FEB78 :100450009040E1F700C00000A895CE01019610D1B0
:1004600093E00197F1F700C00000BC989AEB9A95D1 :100460008111EECFC398CE01019624D18B899C894E
:10047000F1F700C086B3E3E3F3E03197F1F700C092 :10047000B801B5D12D8941E089899A89C5DEA89551
:10048000000078948295817091E08927089598E022 :10048000ECCFF894BC9A8FEB93E00197F1F700C0A2
:100490000DC0BC9A20EA2A95F1F7BC982AE12A956A :100490000000BC989AEB9A95F1F700C086B3E3E3AD
:1004A000F1F700C078948695915069F0F89480FF38 :1004A000F3E03197F1F700C00000789482958170F5
:1004B000F0CFBC9A20E12A95F1F7BC982AEA2A9558 :1004B00091E08927089598E00DC0BC9A20EA2A951A
:1004C000F1F700C0EFCF089598E080E007C022E97F :1004C000F1F7BC982AE12A95F1F700C07894869557
:1004D0002A95F1F700C07894915071F0F8948695C0 :1004D000915069F0F89480FFF0CFBC9A20E12A9502
:1004E000BC9A20E12A95F1F7BC9828E12A95F1F70A :1004E000F1F7BC982AEA2A95F1F700C0EFCF0895FA
:1004F000B49BEDCF8068EBCF0895AFDF811101C0D1 :1004F00098E080E007C022E92A95F1F700C07894DF
:1005000008958CECC4DF81E0FBCF0F931F93CF9352 :10050000915071F0F8948695BC9A20E12A95F1F704
:10051000DF938C01A2DF811105C0DF91CF911F9184 :10051000BC9828E12A95F1F7B49BEDCF8068EBCF2A
:100520000F91089583E3B3DFE801085F1F4FCCDF2D :100520000895AFDF811101C008958CECC4DF81E034
:100530008993C017D107D9F781E0EFCFFC01680F8D :10053000FBCF0F931F93CF93DF938C01A2DF811129
:10054000791F80E02CE80BC08695915029F080FF40 :1005400005C0DF91CF911F910F91089583E3B3DF31
:10055000FBCF86958227F9CFE617F70721F0919117 :10055000E801085F1F4FCCDF8993C017D107D9F797
:10056000892798E0F4CF0895EF92FF920F931F939D :1005600081E0EFCFFC01680F791F80E02CE80BC021
:10057000CF93DF937C01C1DF8EEB89DFE701870139 :100570008695915029F080FFFBCF86958227F9CF91
:10058000085F1F4FA1DF8993C017D107D9F768E033 :10058000E617F70721F09191892798E0F4CF0895B5
:1005900070E0C701D3DFC82F97DF91E0C81390E068 :10059000EF92FF920F931F93CF93DF937C01C1DF04
:1005A000892FDF91CF911F910F91FF90EF900895C8 :1005A0008EEB89DFE7018701085F1F4FA1DF899389
:1005B00054DF811101C00895A0DF88E468DF8FE176 :1005B000C017D107D9F768E070E0C701D3DFC82FB3
:1005C0009EE40197F1F700C0000081E0F4CFCF93E3 :1005C00097DF91E0C81390E0892FDF91CF911F91C1
:1005D000DF93EC0192DF8EE45ADF888158DF898156 :1005D0000F91FF90EF90089554DF811101C00895AD
:1005E00056DF8A8154DFE4DFDF91CF910895FF92D7 :1005E000A0DF88E468DF81E0FACFCF93DF93EC01EE
:1005F0000F931F93CF93DF9300D01F92CDB7DEB739 :1005F00098DF8EE460DF88815EDF89815CDF8A813D
:100600008C01F62EB1DFF8018281898383818A8390 :100600005ADFEADFDF91CF910895FF920F931F9396
:10061000FAE0FF16B9F08BE0F81689F0E9E0FE1673 :10061000CF93DF9300D01F92CDB7DEB78C01F62EBB
:10062000A1F08FE78B83CE010196D1DF0F900F9061 :10062000B7DFF8018281898383818A83FAE0FF162C
:100630000F90DF91CF911F910F91FF9008958FE55B :10063000B9F08BE0F81689F0E9E0FE16A1F08FE73B
:100640008B83F1CF8FE38B83EECF8FE18B83EBCF67 :100640008B83CE010196D1DF0F900F900F90DF9139
:1006500004DF811101C008958CEC19DF84E417DFF9 :10065000CF911F910F91FF9008958FE58B83F1CF7C
:1006600081E0F9CFCF93DF93EC01F7DE811104C075 :100660008FE38B83EECF8FE18B83EBCF0ADF81119A
:1006700081E0DF91CF910895CE01089646DF88850D :1006700001C008958CEC1FDF84E41DDF81E0F9CF19
:10068000883211F082E0F5CFCE016EDF882311F0C1 :10068000CF93DF93EC01FDDE811104C081E0DF91A7
:1006900080E0EFCF83E0EDCFCF93DF93EC01D8DFA5 :10069000CF910895CE0108964CDF8885883211F0FD
:1006A000882309F45EC02C81822F90E0809590957C :1006A00082E0F5CFCE0174DF882311F080E0EFCF38
:1006B00080769927892B09F057C02FE73FE482E124 :1006B00083E0EDCFCF93DF93EC01D8DF882309F4FB
:1006C000215030408040E1F700C00000CE014CDFF7 :1006C0005EC02C81822F90E080959095807699274E
:1006D000882309F46BC01D8A898190E04881242F0A :1006D000892B09F057C02FE73FE482E121503040D9
:1006E000382F33230CF465C035952795359527951C :1006E0008040E1F700C00000CE0152DF882309F40A
:1006F0003595279535952795398B288B809590953D :1006F0006BC01D8A898190E04881242F382F3323D5
:10070000887F9927892B09F057C081E08C8B419510 :100700000CF465C035952795359527953595279532
:10071000488388818F70282F30E0C901880F991F86 :1007100035952795398B288B80959095887F9927DB
:1007200082959295907F9827807F9827821B930BC4 :10072000892B09F057C081E08C8B419548838881E3
:10073000880F991F880F991F820F931F880F991F89 :100730008F70282F30E0C901880F991F82959295FC
:10074000880F991F880F991F9C019923BCF135953B :10074000907F9827807F9827821B930B880F991F93
:1007500027953595279535952795359527953B8B85 :10075000880F991F820F931F880F991F880F991F69
:100760002A8BDF91CF91089526FF0AC09FEB27E2E5 :10076000880F991F9C019923BCF1359527953595E4
:1007700039E0915020403040E1F700C00000A6CFA2 :10077000279535952795359527953B8B2A8BDF91C6
:1007800025FF0AC08FEF96E924E081509040204079 :10078000CF91089526FF0AC09FEB27E239E09150F0
:10079000E1F700C000009ACF3FE78BE492E03150D0 :1007900020403040E1F700C00000A6CF25FF0AC08E
:1007A00080409040E1F700C0000090CF81E08D8B49 :1007A0008FEF96E924E0815090402040E1F700C0AF
:1007B000D8CF215F3F4F98CF1C8AABCF215F3F4FEF :1007B00000009ACF3FE78BE492E0315080409040B8
:1007C000C6CFAA1BBB1B51E107C0AA1FBB1FA617A0 :1007C000E1F700C0000090CF81E08D8BD8CF215F92
:1007D000B70710F0A61BB70B881F991F5A95A9F7EA :1007D0003F4F98CF1C8AABCF215F3F4FC6CFAA1B9C
:1007E00080959095BC01CD01089597FB072E16F4D6 :1007E000BB1B51E107C0AA1FBB1FA617B70710F01C
:1007F000009406D077FD08D0E4DF07FC05D03EF476 :1007F000A61BB70B881F991F5A95A9F7809590954E
:10080000909581959F4F0895709561957F4F0895BC :10080000BC01CD01089597FB072E16F4009406D085
:04081000F894FFCF8A :1008100077FD08D0E4DF07FC05D03EF49095819584
:100820009F4F0895709561957F4F0895F894FFCF7D
:00000001FF :00000001FF

File diff suppressed because it is too large Load Diff

View File

@ -193,7 +193,7 @@ END GROUP
.rela.plt .rela.plt
*(.rela.plt) *(.rela.plt)
.text 0x0000000000000000 0x814 .text 0x0000000000000000 0x830
*(.vectors) *(.vectors)
.vectors 0x0000000000000000 0x1e /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o .vectors 0x0000000000000000 0x1e /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
0x0000000000000000 __vectors 0x0000000000000000 __vectors
@ -297,59 +297,59 @@ END GROUP
.text.TM1637_DisplayFixedNum .text.TM1637_DisplayFixedNum
0x0000000000000208 0x1e2 build/default/production/main.o 0x0000000000000208 0x1e2 build/default/production/main.o
0x0000000000000208 TM1637_DisplayFixedNum 0x0000000000000208 TM1637_DisplayFixedNum
.text.main 0x00000000000003ea 0x70 build/default/production/main.o .text.main 0x00000000000003ea 0x98 build/default/production/main.o
0x00000000000003ea main 0x00000000000003ea main
.text.OneWire_Presence .text.OneWire_Presence
0x000000000000045a 0x34 build/default/production/onewire.o 0x0000000000000482 0x34 build/default/production/onewire.o
0x000000000000045a OneWire_Presence 0x0000000000000482 OneWire_Presence
.text.OneWire_WriteByte .text.OneWire_WriteByte
0x000000000000048e 0x3a build/default/production/onewire.o 0x00000000000004b6 0x3a build/default/production/onewire.o
0x000000000000048e OneWire_WriteByte 0x00000000000004b6 OneWire_WriteByte
.text.OneWire_ReadByte .text.OneWire_ReadByte
0x00000000000004c8 0x32 build/default/production/onewire.o 0x00000000000004f0 0x32 build/default/production/onewire.o
0x00000000000004c8 OneWire_ReadByte 0x00000000000004f0 OneWire_ReadByte
.text.OneWire_SkipROM .text.OneWire_SkipROM
0x00000000000004fa 0x10 build/default/production/onewire.o 0x0000000000000522 0x10 build/default/production/onewire.o
0x00000000000004fa OneWire_SkipROM 0x0000000000000522 OneWire_SkipROM
.text.OneWire_ReadROM .text.OneWire_ReadROM
0x000000000000050a 0x32 build/default/production/onewire.o 0x0000000000000532 0x32 build/default/production/onewire.o
0x000000000000050a OneWire_ReadROM 0x0000000000000532 OneWire_ReadROM
.text.OneWire_CRC8_Update .text.OneWire_CRC8_Update
0x000000000000053c 0x2c build/default/production/onewire.o 0x0000000000000564 0x2c build/default/production/onewire.o
0x000000000000053c OneWire_CRC8_Update 0x0000000000000564 OneWire_CRC8_Update
.text.DallasTemp_ReadScratchpad .text.DallasTemp_ReadScratchpad
0x0000000000000568 0x48 build/default/production/dstemperature.o 0x0000000000000590 0x48 build/default/production/dstemperature.o
0x0000000000000568 DallasTemp_ReadScratchpad 0x0000000000000590 DallasTemp_ReadScratchpad
.text.DallasTemp_CopyScratchpad .text.DallasTemp_CopyScratchpad
0x00000000000005b0 0x1e build/default/production/dstemperature.o 0x00000000000005d8 0x12 build/default/production/dstemperature.o
0x00000000000005b0 DallasTemp_CopyScratchpad 0x00000000000005d8 DallasTemp_CopyScratchpad
.text.DallasTemp_WriteScratchpad .text.DallasTemp_WriteScratchpad
0x00000000000005ce 0x20 build/default/production/dstemperature.o 0x00000000000005ea 0x20 build/default/production/dstemperature.o
0x00000000000005ce DallasTemp_WriteScratchpad 0x00000000000005ea DallasTemp_WriteScratchpad
.text.DallasTemp_SetResolution .text.DallasTemp_SetResolution
0x00000000000005ee 0x62 build/default/production/dstemperature.o 0x000000000000060a 0x62 build/default/production/dstemperature.o
0x00000000000005ee DallasTemp_SetResolution 0x000000000000060a DallasTemp_SetResolution
.text.DallasTemp_Convert .text.DallasTemp_Convert
0x0000000000000650 0x14 build/default/production/dstemperature.o 0x000000000000066c 0x14 build/default/production/dstemperature.o
0x0000000000000650 DallasTemp_Convert 0x000000000000066c DallasTemp_Convert
.text.DallasTemp_CheckError .text.DallasTemp_CheckError
0x0000000000000664 0x34 build/default/production/dstemperature.o 0x0000000000000680 0x34 build/default/production/dstemperature.o
0x0000000000000664 DallasTemp_CheckError 0x0000000000000680 DallasTemp_CheckError
.text.DallasTemp_GetTemperature .text.DallasTemp_GetTemperature
0x0000000000000698 0x12a build/default/production/dstemperature.o 0x00000000000006b4 0x12a build/default/production/dstemperature.o
0x0000000000000698 DallasTemp_GetTemperature 0x00000000000006b4 DallasTemp_GetTemperature
.text.libgcc.div .text.libgcc.div
0x00000000000007c2 0x28 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) 0x00000000000007de 0x28 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o)
0x00000000000007c2 __udivmodhi4 0x00000000000007de __udivmodhi4
.text.libgcc.div .text.libgcc.div
0x00000000000007ea 0x26 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) 0x0000000000000806 0x26 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o)
0x00000000000007ea __divmodhi4 0x0000000000000806 __divmodhi4
0x00000000000007ea _div 0x0000000000000806 _div
0x0000000000000810 . = ALIGN (0x2) 0x000000000000082c . = ALIGN (0x2)
*(.fini9) *(.fini9)
.fini9 0x0000000000000810 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) .fini9 0x000000000000082c 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
0x0000000000000810 exit 0x000000000000082c exit
0x0000000000000810 _exit 0x000000000000082c _exit
*(.fini9) *(.fini9)
*(.fini8) *(.fini8)
*(.fini8) *(.fini8)
@ -368,11 +368,11 @@ END GROUP
*(.fini1) *(.fini1)
*(.fini1) *(.fini1)
*(.fini0) *(.fini0)
.fini0 0x0000000000000810 0x4 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) .fini0 0x000000000000082c 0x4 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
*(.fini0) *(.fini0)
0x0000000000000814 _etext = . 0x0000000000000830 _etext = .
.data 0x0000000000800060 0x0 load address 0x0000000000000814 .data 0x0000000000800060 0x0 load address 0x0000000000000830
[!provide] PROVIDE (__data_start, .) [!provide] PROVIDE (__data_start, .)
*(.data) *(.data)
*(.data*) *(.data*)
@ -390,8 +390,8 @@ END GROUP
*(.bss*) *(.bss*)
*(COMMON) *(COMMON)
[!provide] PROVIDE (__bss_end, .) [!provide] PROVIDE (__bss_end, .)
0x0000000000000814 __data_load_start = LOADADDR (.data) 0x0000000000000830 __data_load_start = LOADADDR (.data)
0x0000000000000814 __data_load_end = (__data_load_start + SIZEOF (.data)) 0x0000000000000830 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x0000000000800060 0x0 .noinit 0x0000000000800060 0x0
[!provide] PROVIDE (__noinit_start, .) [!provide] PROVIDE (__noinit_start, .)

View File

@ -21,7 +21,7 @@ uint8_t DallasTemp_CopyScratchpad(void) {
if (!OneWire_Presence()) return 0; if (!OneWire_Presence()) return 0;
OneWire_SkipROM(); OneWire_SkipROM();
OneWire_WriteByte(DS18B20_CMD_CPSCRATCHPAD); OneWire_WriteByte(DS18B20_CMD_CPSCRATCHPAD);
_delay_ms(10); // _delay_ms(10); если паразитное питание то ждем 10мс и далее делать сброс
return 1; return 1;
} }

12
main.c
View File

@ -1,6 +1,7 @@
#include <avr/io.h> #include <avr/io.h>
#include <avr/interrupt.h> #include <avr/interrupt.h>
#include <avr/pgmspace.h> #include <avr/pgmspace.h>
#include <avr/wdt.h>
#include <util/delay.h> #include <util/delay.h>
#include "onewire.h" #include "onewire.h"
#include "dstemperature.h" #include "dstemperature.h"
@ -187,7 +188,7 @@ uint8_t get_int_length(int16_t num) {
} }
void TM1637_DisplayFixedNum(int16_t num, uint8_t frac, uint8_t presicion, uint8_t sign) { void TM1637_DisplayFixedNum(int16_t num, uint8_t frac, uint8_t presicion, uint8_t sign) {
uint8_t is_signed = num < 0 || sign; uint8_t is_signed = (num < 0) || (sign);
num = num > 999 ? 999 : num; num = num > 999 ? 999 : num;
if (is_signed) { if (is_signed) {
@ -237,12 +238,17 @@ int main(void) {
DDRB |= _BV(PIN_LED_ERR); DDRB |= _BV(PIN_LED_ERR);
PORTB &= ~_BV(PIN_LED_ERR); PORTB &= ~_BV(PIN_LED_ERR);
wdt_reset();
wdt_enable(WDTO_4S);
DallasSensor Sensor_01; DallasSensor Sensor_01;
DallasTemp_SetResolution(&Sensor_01, DS_TEMP_ADC_RESOLUTION_11); DallasTemp_SetResolution(&Sensor_01, DS_TEMP_ADC_RESOLUTION_11);
TM1637_Init(PORT_TWI_DIO, PORT_TWI_CLK, TM1637_BRIGHTNESS_2, TM1637_DISP_ON); TM1637_Init(PORT_TWI_DIO, PORT_TWI_CLK, TM1637_BRIGHTNESS_2, TM1637_DISP_ON);
TM1637_DisplayLine(); TM1637_DisplayLine();
_delay_ms(100);
while (1) { while (1) {
/** /**
* Обработка ошибки одного датчика * Обработка ошибки одного датчика
@ -251,7 +257,8 @@ int main(void) {
if (error) { if (error) {
PORTB |= _BV(PIN_LED_ERR); PORTB |= _BV(PIN_LED_ERR);
TM1637_DisplayInt(error); TM1637_DisplayInt(error);
_delay_ms(100); _delay_ms(50);
wdt_reset();
continue; continue;
} else { } else {
PORTB &= ~_BV(PIN_LED_ERR); PORTB &= ~_BV(PIN_LED_ERR);
@ -262,6 +269,7 @@ int main(void) {
*/ */
DallasTemp_GetTemperature(&Sensor_01); DallasTemp_GetTemperature(&Sensor_01);
TM1637_DisplayFixedNum(Sensor_01.TEMPERATURE, Sensor_01.TEMPERATURE_FRACTION / 100, 1, Sensor_01.T_NEGATIVE); TM1637_DisplayFixedNum(Sensor_01.TEMPERATURE, Sensor_01.TEMPERATURE_FRACTION / 100, 1, Sensor_01.T_NEGATIVE);
wdt_reset();
} }
return 0; return 0;
} }

View File

@ -1,5 +1,5 @@
# #
#Sat Aug 05 22:06:31 MSK 2023 #Sun Aug 06 20:27:07 MSK 2023
default.languagetoolchain.version=7.3.0 default.languagetoolchain.version=7.3.0
default.Pack.dfplocation=/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151 default.Pack.dfplocation=/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151
default.com-microchip-mplab-nbide-toolchain-avr-AVRLanguageToolchain.md5=f7c8f2a9c7d7748a6cb97af5c32efadd default.com-microchip-mplab-nbide-toolchain-avr-AVRLanguageToolchain.md5=f7c8f2a9c7d7748a6cb97af5c32efadd