Измерение импульса прерывания EXT

Dangthaison1992
Солнце 27 ноября 2016 г., 9:58 утра
Я пробую измерение импульса прерывания кода на PA8 при чипе STM32F103C8T6. Ничего страшного #include "HardwareTimer.h" volatile int state = LOW; volatile int HighToLowCount = 0; volatile int LowToHighCount = 0; volatile int val; volatile int CurrentCount; volatile int Period; volatile int OldCount; volatile int PulseWidth; volatile int OverflowCount; volatile int timeroverflow; HardwareTimer timer(1); void setup() { Serial1.begin(9600); pinMode(PA8, INPUT); attachInterrupt(0, exti_handler, CHANGE); CurrentCount = 0; OldCount = 0; Period = 0; PulseWidth = 0; OverflowCount = 0; timeroverflow = 0; // Setup Counting Timers timer.setChannel1Mode(TIMER_OUTPUT_COMPARE); timer.pause(); timer.setCount(0); timer.setPrescaleFactor(72); //run at 72 MHz/72 = 1MHz count every 1us timer.setOverflow(65535); timer.setCompare1(1); timer.attachCompare1Interrupt(timer_handler); timer.refresh(); timer.resume(); } void loop() { Serial1.print("LowToHighCount: "); Serial1.print(LowToHighCount); Serial1.print(" HighToLowCount: "); Serial1.print(HighToLowCount); Serial1.print(" Period: "); Serial1.print(Period); Serial1.print(" PulseWidth: "); Serial1.print(PulseWidth); Serial1.print(" Overflow: "); Serial1.println(OverflowCount); delay(1000); } void exti_handler() { timer.pause(); CurrentCount = timer.getCount(); val = digitalRead(0); if (val == HIGH) { LowToHighCount++; Period = CurrentCount; timer.setCount(0); timer.refresh(); } else { // state must be LOW HighToLowCount++; PulseWidth = CurrentCount; } timer.resume(); } void timer_handler() { PulseWidth = 0; OverflowCount = 0; timeroverflow++; }

Rogerclark
Солнце 27 ноября 2016 г., 21:09
Спасибо, что поделились.

Глядя на код, я думаю, он измеряет ширину импульса как высокой, так и низкой части формы волны?
Со значением в микросекундах

Могу ли я добавить этот код в примеры в репо?

ZMEMW16
Пн 28 ноября 2016 г. 1:38 утра
@Dangthaison1992
из любопытства
Любая конкретная причина, по которой вы используете Serial1?

SRP

Dangthaison1992
Пн 28 ноября 2016 г., 1:53
Я использовал Analogwrite (5, значение); На Arduino Mega2560 для PWM и я измерен импульсный штифт PA8 на универсальном STM32F103C8T6. Это низкий шум больше, чем использует Pulsein (PA8, High, 5000);

Используется измерение импульса прерывания EXT
Изображение

Используется Pulsein (PA8, High, 5000);
Изображение

ZMEMW16
Пн 28 ноября 2016 г. 1:59
Ваш выходной текст проходит через Serial1, я просто подумал, почему?
SRP

Dangthaison1992
Пн 28 ноября 2016 г. 2:04
@Dangthaison1992
из любопытства
Любая конкретная причина, по которой вы используете Serial1?
Я использовал USART1 PA9 TX -> PIN0, PA10 RX ->PIN1 доски Arduino uno

Dangthaison1992
Пн 28 ноября 2016 г. 2:15 утра
Ваш выходной текст проходит через Serial1, я просто подумал, почему?
SRP
Я разработал доску. Я использовал данные USART1

Изображение
Изображение

Dangthaison1992
Пн 28 ноября 2016 г. 2:18 утра
Спасибо, что поделились.

Глядя на код, я думаю, он измеряет ширину импульса как высокой, так и низкой части формы волны?
Со значением в микросекундах

Могу ли я добавить этот код в примеры в репо?
Да, вы можете добавить этот код в пример в репо.

Rogerclark
Пн 28 ноября 2016 г. 2:56 утра
Спасибо...


КСТАТИ. Что делает Правление ?
(Какой -то контроллер питания / контроллер двигателя ?)

Dangthaison1992
Пн 28 ноября 2016 г., 3:17
Спасибо...


КСТАТИ. Что делает Правление ?
(Какой -то контроллер питания / контроллер двигателя ?)
Плата - контроллер двигателя PID. Я работаю с использованием двигателя драйвера Project ARDUINO_STM32

Изображение

Rogerclark
Пн 28 ноября 2016 г., 3:22
Ух ты.

Похоже, его тяжелый

Мики
Вт 13 декабря 2016 г. 9:34
Я сделал аналогичный код для декодера сигнала PPM с 0.5US разрешение .Это работает как очарование.

ZMEMW16
Вторник 13 декабря 2016 г. 13:16
Мне нравятся эти линии электропередачи : D

ISTR обсуждение и довольно обсуждение где -то об эффективности и объеме припоя, на самом деле требуется, где о, где ?

этот поиск в Google >Эффект добавления приповного приповна в трассы с трассами трассы трасс< возвращает несколько.

Стивен