Rogerclark
Сб 10 февраля 2018 г., 6:32
Ребята
Если кто-то использовал режим однопулса, не могли бы вы сообщить мне
Мне нужно это для одного из моих личных проектов, поэтому я пытаюсь написать код для него и добавить в ядро
В одном режиме импульса можно использовать внешний сигнал для запуска одного из таймеров, что, в свою очередь, создает импульс после определенной задержки, с определенной продолжительностью
Если кто-то использовал режим однопулса, не могли бы вы сообщить мне
Мне нужно это для одного из моих личных проектов, поэтому я пытаюсь написать код для него и добавить в ядро
В одном режиме импульса можно использовать внешний сигнал для запуска одного из таймеров, что, в свою очередь, создает импульс после определенной задержки, с определенной продолжительностью
O sketch usa 149884 bytes (28%) de espaço de armazenamento para programas. O máximo são 524288 bytes.
Variáveis globais usam 14000 bytes de memória dinâmica.
SiiRoom_STM32.ino.elf: file format ELF32-arm-little
Sections:
Idx Name Size Address Type
0 00000000 0000000000000000
1 .text 0001eb2c 0000000008000000 TEXT DATA
2 .text.align 00000004 000000000801eb2c TEXT BSS
3 .ARM.exidx 000001d0 000000000801eb30
4 .data 00001170 0000000020000000 DATA
5 .rodata 00004b0c 000000000801fe70 DATA
6 .bss 00002540 0000000020001170 BSS
7 .debug_aranges 000020c8 0000000000000000
8 .debug_info 00060916 0000000000000000
9 .debug_abbrev 0000966e 0000000000000000
10 .debug_line 000166aa 0000000000000000
11 .debug_frame 00007b94 0000000000000000
12 .debug_str 000127e8 0000000000000000
13 .debug_loc 00118c6d 0000000000000000
14 .ARM.attributes 00000029 0000000000000000
15 .debug_ranges 00004788 0000000000000000
16 .comment 00000070 0000000000000000
17 .shstrtab 000000ca 0000000000000000
18 .symtab 0000d1e0 0000000000000000
19 .strtab 000067ab 0000000000000000
SiiRoom_STM32.ino.elf: file format ELF32-arm-little
SYMBOL TABLE:
00000000 *UND* 00000000
08000000 l d .text 00000000 .text
0801eb2c l d .text.align 00000000 .text.align
0801eb30 l d .ARM.exidx 00000000 .ARM.exidx
20000000 l d .data 00000000 .data
0801fe70 l d .rodata 00000000 .rodata
20001170 l d .bss 00000000 .bss
00000000 l d .debug_aranges 00000000 .debug_aranges
00000000 l d .debug_info 00000000 .debug_info
00000000 l d .debug_abbrev 00000000 .debug_abbrev
00000000 l d .debug_line 00000000 .debug_line
00000000 l d .debug_frame 00000000 .debug_frame
00000000 l d .debug_str 00000000 .debug_str
00000000 l d .debug_loc 00000000 .debug_loc
00000000 l d .ARM.attributes 00000000 .ARM.attributes
00000000 l d .debug_ranges 00000000 .debug_ranges
00000000 l d .comment 00000000 .comment
00000000 l df *ABS* 00000000 crtstuff.c
0801eaf0 l .text 00000000 __EH_FRAME_BEGIN__
20000008 .data 00000000 $d
08000130 .text 00000000 $t
08000130 l F .text 00000000 __do_global_dtors_aux
08000148 .text 00000000 $d
20001170 .bss 00000000 completed.7857
0801eb28 .text 00000000 $d
0801eb28 l .text 00000000 __do_global_dtors_aux_fini_array_entry
08000154 .text 00000000 $t
08000154 l F .text 00000000 frame_dummy
08000170 .text 00000000 $d
20001174 .bss 00000000 object.7862
0801eb04 .text 00000000 $d
0801eb04 l .text 00000000 __frame_dummy_init_array_entry
20001170 .bss 00000000 $d
00000000 l df *ABS* 00000000 SiiRoom_STM32.ino.cpp
08000184 .text 00000000 $t
0800019c .text 00000000 $d
080001a4 .text 00000000 $t
080001a4 l F .text 0000001c __tcf_6
080001bc .text 00000000 $d
080001c0 .text 00000000 $t
080001c0 l F .text 0000001c __tcf_5
080001d8 .text 00000000 $d
080001dc .text 00000000 $t
080001dc l F .text 0000000c __tcf_4
080001e4 .text 00000000 $d
080001e8 .text 00000000 $t
080001e8 l F .text 0000000c __tcf_3
080001f0 .text 00000000 $d
080001f4 .text 00000000 $t
080001f4 l F .text 0000001c __tcf_1
0800020c .text 00000000 $d
08000210 .text 00000000 $t
08000210 l F .text 0000001c __tcf_0
08000228 .text 00000000 $d
0800022c .text 00000000 $t
0800024a .text 00000000 $t
0800025c .text 00000000 $t
08000280 .text 00000000 $d
08000288 .text 00000000 $t
080002ac .text 00000000 $d
080002b4 .text 00000000 $t
080002c0 .text 00000000 $t
080002d4 .text 00000000 $d
080002e0 .text 00000000 $t
080002fc .text 00000000 $t
080002fc l F .text 0000001c __tcf_2
08000314 .text 00000000 $d
08000318 .text 00000000 $t
08000324 .text 00000000 $t
0800046c .text 00000000 $d
08000478 .text 00000000 $t
0800050c .text 00000000 $d
08000524 .text 00000000 $t
080005e4 .text 00000000 $d
08000604 .text 00000000 $t
080006a0 .text 00000000 $d
080006c4 .text 00000000 $t
080006e8 .text 00000000 $d
080006ec .text 00000000 $t
080006f8 .text 00000000 $d
080006fc .text 00000000 $t
08000720 .text 00000000 $d
08000730 .text 00000000 $t
08000750 .text 00000000 $d
0800075c .text 00000000 $t
08000790 .text 00000000 $d
0800079c .text 00000000 $t
080007c4 .text 00000000 $d
080007c8 .text 00000000 $t
08000830 .text 00000000 $d
0800084c .text 00000000 $t
08000864 .text 00000000 $d
08000870 .text 00000000 $t
080008e0 .text 00000000 $d
080008e8 .text 00000000 $t
08000960 .text 00000000 $d
08000978 .text 00000000 $t
08000980 .text 00000000 $t
080009cc .text 00000000 $d
080009dc .text 00000000 $t
08000a00 .text 00000000 $d
08000a04 .text 00000000 $t
08000ad0 .text 00000000 $d
08000afc .text 00000000 $t
08000b24 .text 00000000 $d
08000b2c .text 00000000 $t
08000be0 .text 00000000 $d
08000bfc .text 00000000 $t
08000c28 .text 00000000 $d
08000c38 .text 00000000 $t
08000c40 .text 00000000 $t
08000cd8 .text 00000000 $d
08000cfc .text 00000000 $t
08000d9c .text 00000000 $d
08000dc0 .text 00000000 $t
08000e14 .text 00000000 $d
08000e18 .text 00000000 $t
08000e2c .text 00000000 $t
08000e58 .text 00000000 $d
08000e64 .text 00000000 $t
08000e74 .text 00000000 $t
08000f14 .text 00000000 $d
08000f30 .text 00000000 $t
08001000 .text 00000000 $d
08001014 .text 00000000 $t
08001034 .text 00000000 $t
08001084 .text 00000000 $d
08001090 .text 00000000 $t
080010c4 .text 00000000 $d
080010d0 .text 00000000 $t
080010d6 .text 00000000 $t
080010f4 .text 00000000 $t
08001100 .text 00000000 $t
08001168 .text 00000000 $d
0800117c .text 00000000 $t
080012c4 .text 00000000 $d
080012f0 .text 00000000 $t
08001318 .text 00000000 $d
08001324 .text 00000000 $t
08001360 .text 00000000 $t
080013c0 .text 00000000 $d
080013c4 .text 00000000 $t
080013d8 .text 00000000 $t
08001540 .text 00000000 $d
080015a8 .text 00000000 $t
0800163c .text 00000000 $d
0800164c .text 00000000 $t
08001668 .text 00000000 $d
08001670 .text 00000000 $t
08001700 .text 00000000 $d
08001720 .text 00000000 $t
08001740 .text 00000000 $t
08001774 .text 00000000 $d
0800177c .text 00000000 $t
080018d4 .text 00000000 $d
08001904 .text 00000000 $t
0800191e .text 00000000 $t
0800192c .text 00000000 $t
0800196c .text 00000000 $d
08001974 .text 00000000 $t
080019c8 .text 00000000 $d
080019d8 .text 00000000 $t
08001a0c .text 00000000 $t
08001a44 .text 00000000 $t
08001aa4 .text 00000000 $d
08001aa8 .text 00000000 $t
08001b28 .text 00000000 $d
08001b3c .text 00000000 $t
08001b68 .text 00000000 $t
08001bb0 .text 00000000 $d
08001bbc .text 00000000 $t
08001bcc .text 00000000 $t
08001d20 .text 00000000 $d
08001d4c .text 00000000 $t
08001dbc .text 00000000 $d
08001dcc .text 00000000 $t
08001e30 .text 00000000 $d
08001e3c .text 00000000 $t
08001e94 .text 00000000 $d
08001eb0 .text 00000000 $t
08001f1c .text 00000000 $d
08001f2c .text 00000000 $t
08001f80 .text 00000000 $d
08001f90 .text 00000000 $t
08001fe4 .text 00000000 $d
08001ff4 .text 00000000 $t
08002048 .text 00000000 $d
08002058 .text 00000000 $t
08002098 .text 00000000 $d
080020a4 .text 00000000 $t
08002180 .text 00000000 $d
080021a0 .text 00000000 $t
0800220c .text 00000000 $d
08002224 .text 00000000 $t
0800222c .text 00000000 $t
08002270 .text 00000000 $d
0800227c .text 00000000 $t
080022b8 .text 00000000 $d
080022c8 .text 00000000 $t
080022d0 .text 00000000 $d
080022d8 .text 00000000 $t
080022f4 .text 00000000 $d
08002300 .text 00000000 $t
0800238c .text 00000000 $d
0800239c .text 00000000 $t
0800240c .text 00000000 $d
0800241c .text 00000000 $t
0800245c .text 00000000 $d
08002470 .text 00000000 $t
080024a0 .text 00000000 $t
08002524 .text 00000000 $d
08002540 .text 00000000 $t
08002570 .text 00000000 $d
08002574 .text 00000000 $t
080025a4 .text 00000000 $d
080025a8 .text 00000000 $t
08002674 .text 00000000 $d
08002690 .text 00000000 $t
080026bc .text 00000000 $d
080026c0 .text 00000000 $t
080027dc .text 00000000 $d
080027f8 .text 00000000 $t
080028c0 .text 00000000 $d
080028e0 .text 00000000 $t
08002918 .text 00000000 $d
08002924 .text 00000000 $t
08002a08 .text 00000000 $d
08002a34 .text 00000000 $t
08002abc .text 00000000 $d
08002ac4 .text 00000000 $t
08002acc .text 00000000 $t
08002af0 .text 00000000 $d
08002b00 .text 00000000 $t
08002c3c .text 00000000 $d
08002c60 .text 00000000 $t
08002cec .text 00000000 $d
08002cf0 .text 00000000 $t
08002cf6 .text 00000000 $t
08002d10 .text 00000000 $t
08002dbc .text 00000000 $d
08002de8 .text 00000000 $t
08002f0c .text 00000000 $d
08002f38 .text 00000000 $t
08002f84 .text 00000000 $d
08002f98 .text 00000000 $t
08002fd8 .text 00000000 $d
08002fe8 .text 00000000 $t
08002ff0 .text 00000000 $d
08002ff4 .text 00000000 $t
08003010 .text 00000000 $d
08003014 .text 00000000 $t
08003030 .text 00000000 $d
08003034 .text 00000000 $t
08003060 .text 00000000 $d
0800306c .text 00000000 $t
080030a8 .text 00000000 $d
080030b8 .text 00000000 $t
08003150 .text 00000000 $d
08003164 .text 00000000 $t
080031fc .text 00000000 $d
08003210 .text 00000000 $t
08003258 .text 00000000 $d
0800326c .text 00000000 $t
080032e8 .text 00000000 $d
080032ec .text 00000000 $t
08003350 .text 00000000 $d
08003358 .text 00000000 $t
080033b4 .text 00000000 $d
080033c8 .text 00000000 $t
0800343c .text 00000000 $d
08003454 .text 00000000 $t
08003484 .text 00000000 $d
08003488 .text 00000000 $t
08003540 .text 00000000 $d
08003550 .text 00000000 $t
080035ec .text 00000000 $d
080035fc .text 00000000 $t
080036dc .text 00000000 $d
080036fc .text 00000000 $t
08003738 .text 00000000 $d
08003744 .text 00000000 $t
080037e4 .text 00000000 $d
08003804 .text 00000000 $t
080038d8 .text 00000000 $d
080038f4 .text 00000000 $t
080039bc .text 00000000 $d
080039dc .text 00000000 $t
08003b2c .text 00000000 $d
08003b40 .text 00000000 $t
08003b74 .text 00000000 $d
08003b80 .text 00000000 $t
08003c94 .text 00000000 $d
08003cb0 .text 00000000 $t
08003cfc .text 00000000 $d
08003d00 .text 00000000 $t
08003d08 .text 00000000 $t
08003dc4 .text 00000000 $d
08003dec .text 00000000 $t
08003ed4 .text 00000000 $d
08003f04 .text 00000000 $t
08003f3c .text 00000000 $t
08003f6a .text 00000000 $t
08003f98 .text 00000000 $t
08003fcc .text 00000000 $d
08003fd8 .text 00000000 $t
080042d4 .text 00000000 $d
08004308 .text 00000000 $t
080045c8 .text 00000000 $d
08004610 .text 00000000 $t
080048c4 .text 00000000 $d
08004904 .text 00000000 $t
08004ab8 .text 00000000 $d
08004af8 .text 00000000 $t
08004be8 .text 00000000 $d
08004c0c .text 00000000 $t
08004c1e .text 00000000 $t
08004c8c .text 00000000 $t
08004d44 .text 00000000 $d
08004d58 .text 00000000 $t
08004e14 .text 00000000 $d
08004e38 .text 00000000 $t
08004ec4 .text 00000000 $d
08004ed0 .text 00000000 $t
08004f64 .text 00000000 $d
08004f70 .text 00000000 $t
08004fa0 .text 00000000 $t
080050ec .text 00000000 $d
08005104 .text 00000000 $t
08005164 .text 00000000 $d
0800516c .text 00000000 $t
0800532c .text 00000000 $d
08005388 .text 00000000 $t
080054e4 .text 00000000 $d
0800552c .text 00000000 $t
08005534 .text 00000000 $t
08005558 .text 00000000 $d
08005560 .text 00000000 $t
08005598 .text 00000000 $d
080055a0 .text 00000000 $t
080056bc .text 00000000 $d
08005700 .text 00000000 $t
08005810 .text 00000000 $d
08005848 .text 00000000 $t
080059cc .text 00000000 $d
08005a14 .text 00000000 $t
08005bfc .text 00000000 $d
08005c44 .text 00000000 $t
08005d5c .text 00000000 $d
08005d7c .text 00000000 $t
08005dac .text 00000000 $d
08005db4 .text 00000000 $t
08005f28 .text 00000000 $d
08005f64 .text 00000000 $t
08006100 .text 00000000 $d
08006130 .text 00000000 $t
08006208 .text 00000000 $d
08006224 .text 00000000 $t
08006270 .text 00000000 $d
08006284 .text 00000000 $t
0800654c .text 00000000 $d
080065a0 .text 00000000 $t
080066b4 .text 00000000 $d
080066d0 .text 00000000 $t
08006704 .text 00000000 $t
08006714 .text 00000000 $t
08006770 .text 00000000 $d
08006774 .text 00000000 $t
08006794 .text 00000000 $t
080067c8 .text 00000000 $d
080067d4 .text 00000000 $t
08006838 .text 00000000 $d
0800684c .text 00000000 $t
080068d8 .text 00000000 $d
080068ec .text 00000000 $t
08006aac .text 00000000 $d
08006ac0 .text 00000000 $t
08006ad0 .text 00000000 $t
08006bd8 .text 00000000 $d
08006be4 .text 00000000 $t
08006c04 .text 00000000 $t
08006c24 .text 00000000 $t
08006c90 .text 00000000 $d
08006c9c .text 00000000 $t
08006e40 .text 00000000 $d
08006e64 .text 00000000 $t
08006e8c .text 00000000 $d
08006e90 .text 00000000 $t
08006f34 .text 00000000 $d
08006f54 .text 00000000 $t
08006f74 .text 00000000 $d
08006f78 .text 00000000 $t
0800700c .text 00000000 $d
08007014 .text 00000000 $t
08007032 .text 00000000 $t
08007092 .text 00000000 $t
080070b0 .text 00000000 $t
08007168 .text 00000000 $d
0800716c .text 00000000 $t
08007188 .text 00000000 $t
080071b8 .text 00000000 $d
080071bc .text 00000000 $t
0800725e .text 00000000 $t
080072d6 .text 00000000 $t
080073a4 .text 00000000 $t
08007494 .text 00000000 $d
080074c0 .text 00000000 $t
08007550 .text 00000000 $d
0800756c .text 00000000 $t
0800756c l F .text 0000038c _GLOBAL__sub_I_DEBUG
080077dc .text 00000000 $d
0801eb08 .text 00000000 $d
080078f8 .text 00000000 $t
0800793c .text 00000000 $d
08007950 .text 00000000 $t
08007998 .text 00000000 $d
080079ac .text 00000000 $t
08007a00 .text 00000000 $d
08007a1c .text 00000000 $t
08007c50 .text 00000000 $d
08007c84 .text 00000000 $t
08007ed0 .text 00000000 $d
08007f00 .text 00000000 $t
08008120 .text 00000000 $d
08008138 .text 00000000 $t
0800835c .text 00000000 $d
0800837c .text 00000000 $t
08008590 .text 00000000 $d
080085a4 .text 00000000 $t
08008934 .text 00000000 $d
08008984 .text 00000000 $t
08008be0 .text 00000000 $d
08008c28 .text 00000000 $t
08008ec0 .text 00000000 $d
08008f1c .text 00000000 $t
0800915c .text 00000000 $d
08009194 .text 00000000 $t
08009410 .text 00000000 $d
08009468 .text 00000000 $t
080096e4 .text 00000000 $d
0800971c .text 00000000 $t
080099b4 .text 00000000 $d
08009a00 .text 00000000 $t
08009c90 .text 00000000 $d
08009cd4 .text 00000000 $t
08009f58 .text 00000000 $d
08009fac .text 00000000 $t
0800a220 .text 00000000 $d
0800a264 .text 00000000 $t
0800a4f4 .text 00000000 $d
0800a540 .text 00000000 $t
0800a7b8 .text 00000000 $d
0800a7f4 .text 00000000 $t
0800aa68 .text 00000000 $d
0800aab4 .text 00000000 $t
0800ad5c .text 00000000 $d
0800ada4 .text 00000000 $t
0800b024 .text 00000000 $d
0800b060 .text 00000000 $t
0800b2e0 .text 00000000 $d
0800b334 .text 00000000 $t
0800b5d0 .text 00000000 $d
0800b638 .text 00000000 $t
0800b8a0 .text 00000000 $d
0800b8bc .text 00000000 $t
0800b9ec .text 00000000 $d
0800ba04 .text 00000000 $t
0800bafc .text 00000000 $d
0800bb20 .text 00000000 $t
0800bd6c .text 00000000 $d
0800bdcc .text 00000000 $t
0800c0a4 .text 00000000 $d
2000118c .bss 00000000 $d
20001194 .bss 00000000 $d
0801fe70 .rodata 00000000 $d
2000119c .bss 00000000 $d
200011a0 .bss 00000000 $d
0801fe80 .rodata 00000000 $d
200011a4 .bss 00000000 $d
200011a5 .bss 00000000 $d
200011a6 .bss 00000000 $d
200011a7 .bss 00000000 $d
200011a8 .bss 00000000 $d
200011ac .bss 00000000 $d
200011b0 .bss 00000000 $d
200011b4 .bss 00000000 $d
200011c0 .bss 00000000 $d
0801fe94 .rodata 00000000 $d
0801fe94 l .rodata 00000010 _ZL8io_relay
20001298 .bss 00000000 $d
20001299 .bss 00000000 $d
2000129c .bss 00000000 $d
2000000c .data 00000000 $d
200012a0 .bss 00000000 $d
0801fea4 l .rodata 0000000d _ZL15adEEbtLastState
20000054 .data 00000000 $d
200012a4 .bss 00000000 $d
20000064 .data 00000000 $d
200000b4 .data 00000000 $d
200012b0 .bss 00000000 $d
200012b1 .bss 00000000 $d
200012b4 .bss 00000000 $d
200012b8 .bss 00000000 $d
200012c8 .bss 00000000 $d
200012cc .bss 00000000 $d
200000bc .data 00000000 $d
200012d8 .bss 00000000 $d
200000c0 .data 00000000 $d
200012e4 .bss 00000000 $d
200012f0 .bss 00000000 $d
200013e0 .bss 00000000 $d
080219b1 l .rodata 00000f00 _ZL7varName
080219be .rodata 00000000 $d
200000c8 .data 00000000 $d
200013e4 .bss 00000000 $d
200013e5 .bss 00000000 $d
200013e6 .bss 00000000 $d
200013e8 .bss 00000000 $d
200013ec .bss 00000000 $d
200013f0 .bss 00000000 $d
200013f4 .bss 00000000 $d
200000cc .data 00000000 $d
080228b4 .rodata 00000000 $d
080228b4 l .rodata 00000048 _ZL6io_led
200013f8 .bss 00000000 $d
200013f9 .bss 00000000 $d
200013fc .bss 00000000 $d
200000d0 .data 00000000 $d
20001400 .bss 00000000 $d
080228fc .rodata 00000000 $d
080228fc l .rodata 0000002c _ZL15adEEtimeraction
20001410 .bss 00000000 $d
20001460 .bss 00000000 $d
20001464 .bss 00000000 $d
08022928 .rodata 00000000 $d
08022928 l .rodata 00000048 _ZL8io_input
08022970 .rodata 00000000 $d
08022970 l .rodata 00000138 _ZL12adEEbtaction
20001470 .bss 00000000 $d
2000147c .bss 00000000 $d
20001480 .bss 00000000 $d
200000e4 .data 00000000 $d
20001484 .bss 00000000 $d
20001488 .bss 00000000 $d
2000148c .bss 00000000 $d
20001490 .bss 00000000 $d
....
Rogerclark
Сб 10 февраля 2018 г., 6:40
Обновлять
Шар работает нормально, потому что я могу проверить значения, используя
Шар работает нормально, потому что я могу проверить значения, используя
boot1 boot0 boot
x 0 flash memory
0 1 system memory (i.e. uart boot loader)
1 1 sram
Стивестронг
Сб 10 февраля 2018 г., 17:33
Роджер, вы забыли настроить счетчик для одного режима импульса, и для подчиненного, вызванного Ti1.
#define SYSTICK_RELOAD_VAL (F_CPU/1000) - 1
Rogerclark
Сб 10 февраля 2018 г., 21:04
Стив
Ух ты...
Спасибо
Я протестирую это на своей линии диммерной доски.
КСТАТИ.
На немного другой предмете...
Я не уверен, может ли захват ввода не функционировать абсолютно правильно
На данный момент мне нужно сохранить последнее значение счетчика, записанное ISR, и вычесть его из текущего значения.
Так что счетчик может быть свободным, runnnig.
Я использую код, поставляемый @Cesco, но, возможно, он пропустил что -то, чтобы удержать количество, а также для перезагрузки с 0 в начале входного импульса.
Ух ты...
Спасибо
Я протестирую это на своей линии диммерной доски.
КСТАТИ.
На немного другой предмете...
Я не уверен, может ли захват ввода не функционировать абсолютно правильно
На данный момент мне нужно сохранить последнее значение счетчика, записанное ISR, и вычесть его из текущего значения.
Так что счетчик может быть свободным, runnnig.
Я использую код, поставляемый @Cesco, но, возможно, он пропустил что -то, чтобы удержать количество, а также для перезагрузки с 0 в начале входного импульса.
Rogerclark
Сб 10 февраля 2018 11:12
Стив
Я попробовал код, но он не делает то, что должно быть
На восходящем краю PA0, PA1 переключает государство
Я попытался изменить SetCompare и Setoverflow, но это не имело никакого значения
Я думаю, что это ближе к тому, что он должен делать, но это пока не работает
Я попробовал код, но он не делает то, что должно быть
На восходящем краю PA0, PA1 переключает государство
Я попытался изменить SetCompare и Setoverflow, но это не имело никакого значения
Я думаю, что это ближе к тому, что он должен делать, но это пока не работает
Стивестронг
Сб 10 февраля 2018 11:21
Ну, это как бы делает это для меня:
- ВЫХОД ВЫХОД.JPG (45.1 киб) просмотрено 2203 раза
Rogerclark
Сб 10 февраля 2018 г., 23:30
Стив
КСТАТИ.
Я вижу, что вы имеете в виду, не настраивая режим вообще
Timer2_base->Cr1 = (timer_cr1_opm); // один режим импульса
Инструкции, которые должны были быть в совершенно другом абзаце в руководстве
Также.
Я вижу, что вы использовали выход Timer3 на PA6
Я смену свое оборудование и попробую
КСТАТИ.
Я вижу, что вы имеете в виду, не настраивая режим вообще
Timer2_base->Cr1 = (timer_cr1_opm); // один режим импульса
Инструкции, которые должны были быть в совершенно другом абзаце в руководстве
Также.
Я вижу, что вы использовали выход Timer3 на PA6
Я смену свое оборудование и попробую
Дэнниф
Солнце 11 февраля 2018 г. 12:35
Может быть проще просто пробить регистры. Таймер должен быть в режиме сравнения выхода, а не в собственном режиме.
Я до сих пор не вижу много преимуществ в том, чтобы пойти на один импульс здесь. Старый добрый тайм -аут подойдет.
Я до сих пор не вижу много преимуществ в том, чтобы пойти на один импульс здесь. Старый добрый тайм -аут подойдет.
Rogerclark
Солнце 11 февраля 2018 г., 3:03
Стив
Я получил это работа
Я получил это работа
void set_clock(uint32_t clk_khz, uint32_t baudrate) {
set_cpu_clk(clk_khz); // see core
set_ticks(clk_khz); // see core
set_baudrate(baudrate); // see core
}
..
#define baudrate 115200;
set_clock(8000, baudrate);
set_clock(128000, baudrate);
set_clock(48000, baudrate);
set_clock(72000, baudrate);
set_clock(96000, baudrate);
..
Пито
Солнце 11 февраля 2018 г. 11:19
Вне по теме:
Я думаю, что вы запускаете нагрузку «на» при нулевом переходе, и в определенное время вы выключаете нагрузку (с импульсом). На основании времени, которое вы управляете властью.
Создает ли это EMI при отключении в течение активного периода (от нуля)?
Не было бы лучше регулировать питание, включив/выключив при нулевом пересечении? Я имею в виду под подсчетом периодов синуса (примерно 100 периодов = 1 кВт, 1 период = 10 Вт)..
Я думаю, что вы запускаете нагрузку «на» при нулевом переходе, и в определенное время вы выключаете нагрузку (с импульсом). На основании времени, которое вы управляете властью.
Создает ли это EMI при отключении в течение активного периода (от нуля)?
Не было бы лучше регулировать питание, включив/выключив при нулевом пересечении? Я имею в виду под подсчетом периодов синуса (примерно 100 периодов = 1 кВт, 1 период = 10 Вт)..
Дэнниф
Солнце 11 февраля 2018 г. 14:16
Вероятно, это не должно быть таким сложным.
Я бы сделал это таким образом, предполагая, что ты хочешь Пэм:
1) Инициализировать таймер в один режим импульса и прерывать вверху.
2) Установите сравнение как 1 (или 0, если оно работает), а вершина - это значение, предназначенное для правильного количества мощности;
3) В ISR, нулевой его счетчик и обновите верхнюю часть.
Таким образом, таймер будет запущен с помощью сигнала с нулевым пересечением, штифт OC сразу же запускается и снижается наверху.
Как вы можете видеть, режим однопульсного режима не так полезен: то же самое можно сделать с помощью пин-пинка + таймер в режиме переполнения.
Я бы сделал это таким образом, предполагая, что ты хочешь Пэм:
1) Инициализировать таймер в один режим импульса и прерывать вверху.
2) Установите сравнение как 1 (или 0, если оно работает), а вершина - это значение, предназначенное для правильного количества мощности;
3) В ISR, нулевой его счетчик и обновите верхнюю часть.
Таким образом, таймер будет запущен с помощью сигнала с нулевым пересечением, штифт OC сразу же запускается и снижается наверху.
Как вы можете видеть, режим однопульсного режима не так полезен: то же самое можно сделать с помощью пин-пинка + таймер в режиме переполнения.
Дэнниф
Солнце 11 февраля 2018 г. 14:18
Кстати, причина установить значение сравнения на 1 (или 0, если возможно), заключается в том, что OC сразу же стреляет.
Fredbox
Солнце 11 февраля 2018 г., 17:31
Я думаю, что вы запускаете нагрузку «на» при нулевом переходе, и в определенное время вы выключаете нагрузку (с импульсом).
Для TRIAC, это наоборот. Triac выключается при нулевом пересечении и нуждается в еще одном триггере после некоторого времени задержки, чтобы установить фазовый угол. Новый триггер необходим для каждого полупродажа.
Rogerclark
Солнце 11 февраля 2018 г., 21:25
@dannyf
Один пульс работает для меня нормально.
Одним дополнительным преимуществом одного импульса является то, что с периодом импульса также можно контролировать.
Итак, в моем случае, с диммером переменного тока, период включена в 100us.
Светодиод в опто-триака, используемый в качестве драйвера для «Power Triac», на самом деле имеет ограниченный срок службы (согласно спецификации некоторых производителей). Они рекомендуют вам использовать такой низкий ток, как вы можете разумно уйти, чтобы максимизировать срок службы светодиодов.
Для MOC3021 я думаю, что это значение около 10 - 15 мА, я.e По крайней мере 10 мА, но они не рекомендуют вам запускать светодиод на уровне 50 или 60 мА, так как это сократит оперативную жизнь.
Следовательно, только использование короткого »на« Пульсе будет сохранять срок службы светодиода.
Первоначально я включил TRIAC после периода задержки, а затем выключил выход, когда STM32 получил следующий нулевой пересечение ISR.
Это связано с тем, что импульс с нулевым детектором пересечения на самом деле довольно широкий в моем случае.
Пульс снижается около 600us до нуля и снова поднимается около 600us после нуля.
Но у этого есть 2 недостатки...
Я не могу запустить триаки за последние 600us каждого цикла, так как это после того, как я уже выключил триака...
Использование на Pulse позволяет мне включить его, до 101US перед реальной точкой пересечения нуля.
Это обеспечивает очень низкую работу мощности, e.g Менее 5 Вт при грузе 4 кВт.
Я признаю, что это, супер низкая работа мощности, не так важно, но я получаю его бесплатно, используя One-Pulse...
Один пульс работает для меня нормально.
Одним дополнительным преимуществом одного импульса является то, что с периодом импульса также можно контролировать.
Итак, в моем случае, с диммером переменного тока, период включена в 100us.
Светодиод в опто-триака, используемый в качестве драйвера для «Power Triac», на самом деле имеет ограниченный срок службы (согласно спецификации некоторых производителей). Они рекомендуют вам использовать такой низкий ток, как вы можете разумно уйти, чтобы максимизировать срок службы светодиодов.
Для MOC3021 я думаю, что это значение около 10 - 15 мА, я.e По крайней мере 10 мА, но они не рекомендуют вам запускать светодиод на уровне 50 или 60 мА, так как это сократит оперативную жизнь.
Следовательно, только использование короткого »на« Пульсе будет сохранять срок службы светодиода.
Первоначально я включил TRIAC после периода задержки, а затем выключил выход, когда STM32 получил следующий нулевой пересечение ISR.
Это связано с тем, что импульс с нулевым детектором пересечения на самом деле довольно широкий в моем случае.
Пульс снижается около 600us до нуля и снова поднимается около 600us после нуля.
Но у этого есть 2 недостатки...
Я не могу запустить триаки за последние 600us каждого цикла, так как это после того, как я уже выключил триака...
Использование на Pulse позволяет мне включить его, до 101US перед реальной точкой пересечения нуля.
Это обеспечивает очень низкую работу мощности, e.g Менее 5 Вт при грузе 4 кВт.
Я признаю, что это, супер низкая работа мощности, не так важно, но я получаю его бесплатно, используя One-Pulse...
Дэнниф
Пн 12 февраля 2018 г. 1:25
Не было бы лучше регулировать питание, включив/выключив при нулевом пересечении? Я имею в виду под подсчетом периодов синуса (примерно 100 периодов = 1 кВт, 1 период = 10 Вт)..
Интересная концепция. Я не видел, чтобы люди пробовали это, однако. Я вижу, что это очень полезно, когда EMI имеет первостепенное беспокойство.
nicolas_soundforce
Сб, 3 марта 2018 г., 13:26
Это прекрасно работает, я только что попробовал это.
Мне нужен этот однопулс, чтобы начать с прерывания таймера, я думаю, мне нужно изменить входные данные этой линии:
Timer2_base->Smcr = (timer_smcr_ts_etrf | timer_smcr_sms_trigger);
Я нашел список настроек в таймере.H для регистра SMCR, но я не могу найти описание того, что они делают.
Мне нужен этот однопулс, чтобы начать с прерывания таймера, я думаю, мне нужно изменить входные данные этой линии:
Timer2_base->Smcr = (timer_smcr_ts_etrf | timer_smcr_sms_trigger);
Я нашел список настроек в таймере.H для регистра SMCR, но я не могу найти описание того, что они делают.
Rogerclark
Сб 3 марта 2018 г., 20:54
Я думаю, Стив’S исходный код использовал Timer1, чтобы запустить импульс на Timer2, поэтому вы сможете получить настройки режима рабов из ядра, который он разместил
КСТАТИ.
Сейчас я использую внешнюю версию пульс -триггера в одном из моих проектов, и это она’S работает хорошо, кроме двух небольших оговорков
1. Похоже, что имеет значение, какой заказ вы устанавливаете переполнение и значение сравнения . Я не уверен, почему это. Это’возможно что -то в функциях Libmaple.
Проблема, по -видимому, возникла, если я увеличил период задержки до того, как импульс был запущен, и ширина импульса необходима была шириной суммы, на которую я увеличил задержку.
Изменение порядка, в котором я установил эти значения, исправило это.
2.Ты можешь’T Измените значения сравнения или переполнения, пока таймер на самом деле считается, я не буду’Это даже думает, что приостановить это помогло
В моем случае, когда триггер для импульса является внешним сигналом, я использую цикл Whink, чтобы ждать, пока счетчик вернется в ноль, я.E, когда это’S не считается, и я меняю значения в то время.
Это может связать код в худшем случае 10 мс, но в моем проекте это не проблема
Я предполагаю, что потенциально ISR может быть настроен для запуска, когда таймер возвращается в ноль, но в идеале ISR будет настроен только для выполнения только при обновлении значений.
КСТАТИ.
Сейчас я использую внешнюю версию пульс -триггера в одном из моих проектов, и это она’S работает хорошо, кроме двух небольших оговорков
1. Похоже, что имеет значение, какой заказ вы устанавливаете переполнение и значение сравнения . Я не уверен, почему это. Это’возможно что -то в функциях Libmaple.
Проблема, по -видимому, возникла, если я увеличил период задержки до того, как импульс был запущен, и ширина импульса необходима была шириной суммы, на которую я увеличил задержку.
Изменение порядка, в котором я установил эти значения, исправило это.
2.Ты можешь’T Измените значения сравнения или переполнения, пока таймер на самом деле считается, я не буду’Это даже думает, что приостановить это помогло
В моем случае, когда триггер для импульса является внешним сигналом, я использую цикл Whink, чтобы ждать, пока счетчик вернется в ноль, я.E, когда это’S не считается, и я меняю значения в то время.
Это может связать код в худшем случае 10 мс, но в моем проекте это не проблема
Я предполагаю, что потенциально ISR может быть настроен для запуска, когда таймер возвращается в ноль, но в идеале ISR будет настроен только для выполнения только при обновлении значений.