amgame, мк atmega32u4 (т.е. леонардо/микро/промикро) был специально выбран для этой программы, т.к. обладает необходимыми ресурсами. Переделывать имеет смысл только на stm32, у которого ещё больше аппаратных возможностей для этой задачи.
Понял. Тогда вопрос в следующем нужен только делитель импульсов с коэффициентом 3.5. Диапазон частот 56-230Hz. Вот их же как то делают на Attiny. Поможите с кодом.?
Это можно очень просто зафигачить. Считаете число фронтов, т.е. переходов на входе с 1 в 0 или наоборот не различая их. На 3.5 импульса их будет 7 шт. Получается на 7 фронтов надо выдать один импульс. Если не сильно заморачиватся с симметрией то насчитав 4 фронта выводим 1 и продолжаем считать. Насчитав 7 фронтов выводим 0 и сбрасываем счетчик. Так по кругу вертим.
amgame, мк atmega32u4 (т.е. леонардо/микро/промикро) был специально выбран для этой программы, т.к. обладает необходимыми ресурсами. Переделывать имеет смысл только на stm32, у которого ещё больше аппаратных возможностей для этой задачи.
Понял. Тогда вопрос в следующем нужен только делитель импульсов с коэффициентом 3.5. Диапазон частот 56-230Hz. Вот их же как то делают на Attiny. Поможите с кодом.?
Это можно очень просто зафигачить. Считаете число фронтов, т.е. переходов на входе с 1 в 0 или наоборот не различая их. На 3.5 импульса их будет 7 шт. Получается на 7 фронтов надо выдать один импульс. Если не сильно заморачиватся с симметрией то насчитав 4 фронта выводим 1 и продолжаем считать. Насчитав 7 фронтов выводим 0 и сбрасываем счетчик. Так по кругу вертим.
amgame, мк atmega32u4 (т.е. леонардо/микро/промикро) был специально выбран для этой программы, т.к. обладает необходимыми ресурсами. Переделывать имеет смысл только на stm32, у которого ещё больше аппаратных возможностей для этой задачи.
Это можно очень просто зафигачить. Считаете число фронтов, т.е. переходов на входе с 1 в 0 или наоборот не различая их. На 3.5 импульса их будет 7 шт. Получается на 7 фронтов надо выдать один импульс. Если не сильно заморачиватся с симметрией то насчитав 4 фронта выводим 1 и продолжаем считать. Насчитав 7 фронтов выводим 0 и сбрасываем счетчик. Так по кругу вертим.
F
F
0x46
amgame, мк atmega32u4 (т.е. леонардо/микро/промикро) был специально выбран для этой программы, т.к. обладает необходимыми ресурсами. Переделывать имеет смысл только на stm32, у которого ещё больше аппаратных возможностей для этой задачи.
Это можно очень просто зафигачить. Считаете число фронтов, т.е. переходов на входе с 1 в 0 или наоборот не различая их. На 3.5 импульса их будет 7 шт. Получается на 7 фронтов надо выдать один импульс. Если не сильно заморачиватся с симметрией то насчитав 4 фронта выводим 1 и продолжаем считать. Насчитав 7 фронтов выводим 0 и сбрасываем счетчик. Так по кругу вертим.
Помогите с кодом для 328p, я не очень силён....
Тут есть раздел "Ищу исполнителя", вам там обязательно помогут, но за деньги.
Ну я так посмотрел, создавшему здесь эту тему помогли не за деньги.. буду сам пробывать.
Халявщик.
#define INPUT_PIN 2 // или 3 #define OUTPUT_PIN 4 // или любая другая нога void inputChange(){ static uint8_t cnt=0; if(cnt==2){ digitalWrite(OUTPUT_PIN,HIGH); } else if(cnt==6){ digitalWrite(OUTPUT_PIN,LOW); cnt=0; return; } cnt++; } void setup() { pinMode(INPUT_PIN,INPUT_PULLUP); pinMode(OUTPUT_PIN,OUTPUT); digitalWrite(OUTPUT_PIN,LOW); attachInterrupt(digitalPinToInterrupt(INPUT_PIN),inputChange,CHANGE); } void loop() { }Спасибо тебе добрый человек, пойду пробывать.