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
из любопытства
Любая конкретная причина, по которой вы используете Serial1?
SRP
Dangthaison1992
Пн 28 ноября 2016 г., 1:53
Я использовал Analogwrite (5, значение); На Arduino Mega2560 для PWM и я измерен импульсный штифт PA8 на универсальном STM32F103C8T6. Это низкий шум больше, чем использует Pulsein (PA8, High, 5000);
Используется измерение импульса прерывания EXT
Используется Pulsein (PA8, High, 5000);
Используется измерение импульса прерывания EXT
Используется Pulsein (PA8, High, 5000);
ZMEMW16
Пн 28 ноября 2016 г. 1:59
Ваш выходной текст проходит через Serial1, я просто подумал, почему?
SRP
SRP
Dangthaison1992
Пн 28 ноября 2016 г. 2:04
@Dangthaison1992
из любопытства
Любая конкретная причина, по которой вы используете Serial1? Я использовал USART1 PA9 TX -> PIN0, PA10 RX ->PIN1 доски Arduino uno
из любопытства
Любая конкретная причина, по которой вы используете Serial1? Я использовал USART1 PA9 TX -> PIN0, PA10 RX ->PIN1 доски Arduino uno
Dangthaison1992
Пн 28 ноября 2016 г. 2:15 утра
Ваш выходной текст проходит через Serial1, я просто подумал, почему?
SRP Я разработал доску. Я использовал данные USART1
SRP Я разработал доску. Я использовал данные USART1
Dangthaison1992
Пн 28 ноября 2016 г. 2:18 утра
Спасибо, что поделились.
Глядя на код, я думаю, он измеряет ширину импульса как высокой, так и низкой части формы волны?
Со значением в микросекундах
Могу ли я добавить этот код в примеры в репо? Да, вы можете добавить этот код в пример в репо.
Глядя на код, я думаю, он измеряет ширину импульса как высокой, так и низкой части формы волны?
Со значением в микросекундах
Могу ли я добавить этот код в примеры в репо? Да, вы можете добавить этот код в пример в репо.
Rogerclark
Пн 28 ноября 2016 г. 2:56 утра
Спасибо...
КСТАТИ. Что делает Правление ?
(Какой -то контроллер питания / контроллер двигателя ?)
КСТАТИ. Что делает Правление ?
(Какой -то контроллер питания / контроллер двигателя ?)
Dangthaison1992
Пн 28 ноября 2016 г., 3:17
Спасибо...
КСТАТИ. Что делает Правление ?
(Какой -то контроллер питания / контроллер двигателя ?) Плата - контроллер двигателя PID. Я работаю с использованием двигателя драйвера Project ARDUINO_STM32
КСТАТИ. Что делает Правление ?
(Какой -то контроллер питания / контроллер двигателя ?) Плата - контроллер двигателя PID. Я работаю с использованием двигателя драйвера Project ARDUINO_STM32
Rogerclark
Пн 28 ноября 2016 г., 3:22
Ух ты.
Похоже, его тяжелый
Похоже, его тяжелый
Мики
Вт 13 декабря 2016 г. 9:34
Я сделал аналогичный код для декодера сигнала PPM с 0.5US разрешение .Это работает как очарование.
ZMEMW16
Вторник 13 декабря 2016 г. 13:16
Мне нравятся эти линии электропередачи
ISTR обсуждение и довольно обсуждение где -то об эффективности и объеме припоя, на самом деле требуется, где о, где ?
этот поиск в Google >Эффект добавления приповного приповна в трассы с трассами трассы трасс< возвращает несколько.
Стивен
ISTR обсуждение и довольно обсуждение где -то об эффективности и объеме припоя, на самом деле требуется, где о, где ?
этот поиск в Google >Эффект добавления приповного приповна в трассы с трассами трассы трасс< возвращает несколько.
Стивен