Генератор пачек импульсов

King-2121
Offline
Зарегистрирован: 10.11.2018

Всем привет! Ардуину только начал осваивать, еще полный чайник.

Задача: сделать генератор меандра на 100КГц с регулировкой в малом диапазоне (90-100КГц), который должен модулироваться сигналом 2 КГц и по нажатию кноки сигналом 2 Гц. То есть такие пачки импульсов 2 КГц, которые заполнены 100КГц и по нажатию кноки просто прерываются с частотой 2 Гц. Это вообще возможно? Пока не могу придумать решение... Куда копать?))

bwn
Offline
Зарегистрирован: 25.08.2014

King-2121 пишет:

. Куда копать?))

В сторону даташита и Ритчи с Керниганом.

King-2121
Offline
Зарегистрирован: 10.11.2018

Даташит курил, а изучение труда Ритчи и Кернигана - процесс небыстрый. Я не прошу дать готовый код. Я прошу совета, как это решить правильно и красиво. Пока пробовал через Timer1 и micros, но получается какая-то фигня.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

King-2121, для полного чайника это совершенно неподъёмная задача. Тем более что авр-мега, если речь про обычную ардуину, - не самый подходящий МК для этой затеи.

a5021
Offline
Зарегистрирован: 07.07.2013

Курсовики пошли. Двоечники потянулись.

King-2121
Offline
Зарегистрирован: 10.11.2018

dimax пишет:

King-2121, для полного чайника это совершенно неподъёмная задача. Тем более что авр-мега, если речь про обычную ардуину, - не самый подходящий МК для этой затеи.

Да, 328, для примера. А в чем принципиальная сложность? Именно в создании трех параллельных генераторов? Вроде с виду задачка-то неложная...

 

King-2121
Offline
Зарегистрирован: 10.11.2018

a5021 пишет:

Курсовики пошли. Двоечники потянулись.

Всегда умиляли такие комментарии, когда нечего сказать по делу, а мимо пройти ну никак. Конечно же до вашего уровня мне еще далеко, товарищ "отличник" :)

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

У Авр-мег есть ЕДИНСТВЕННЫЙ выход, на котором можно организовать "подобную" задачу, а именно совмещенный выход таймера0 и таймера1. В даташите, в общем-то прямо так и расписано, как раз под вашу задачу: генерация пачки импульсов. Паузы по 2Гц - реализуются тупо выключением генерации на заднное время (см. пример "блинк без делай" для нормальной обработки кнопки псевдопараллельно).

Читаете даташит, там вроде даже есть пример "как" такое сделать (не помню) или ищете соответствующую апноту. Далее привязываете к этому коду свою кнопку и собственно всё. Примеры программ "с кнопками" - полно. Как управиться с двумя таймерами на одной ноге - смотреть даташит, там есть. Сложить первое и второе вместе, если читали язык и что-то на нем писали - не проблема. Если нет - примеры программ в ИДЕ и книжка (сайт) по языку - в помощь. У меня так "Ардуину сейчас осваивает сын в свои 12 лет .. когда "время есть". Впрочем, он уже и в Линуксе, пожалуй получше меня разбирается.. ничего сложного, Вы так можете точно также.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

три генератора и один логический элемент И

King-2121
Offline
Зарегистрирован: 10.11.2018

ua6em пишет:

три генератора и один логический элемент И

Полностью на логике сделать такое - не проблема. Проблема в стабильности высокой частоты(100КГц). Там уже ёмкость руки при настройке будет уносить её на пару килогерц в сторону. Поэтому и решил посмотреть в сторону МК.

King-2121
Offline
Зарегистрирован: 10.11.2018

Arhat109-2 пишет:

У Авр-мег есть ЕДИНСТВЕННЫЙ выход, на котором можно организовать "подобную" задачу, а именно совмещенный выход таймера0 и таймера1. В даташите, в общем-то прямо так и расписано, как раз под вашу задачу: генерация пачки импульсов. Паузы по 2Гц - реализуются тупо выключением генерации на заднное время (см. пример "блинк без делай" для нормальной обработки кнопки псевдопараллельно).

Читаете даташит, там вроде даже есть пример "как" такое сделать (не помню) или ищете соответствующую апноту. Далее привязываете к этому коду свою кнопку и собственно всё. Примеры программ "с кнопками" - полно. Как управиться с двумя таймерами на одной ноге - смотреть даташит, там есть. Сложить первое и второе вместе, если читали язык и что-то на нем писали - не проблема. Если нет - примеры программ в ИДЕ и книжка (сайт) по языку - в помощь. У меня так "Ардуину сейчас осваивает сын в свои 12 лет .. когда "время есть". Впрочем, он уже и в Линуксе, пожалуй получше меня разбирается.. ничего сложного, Вы так можете точно также.

Спасибо за наводку! Попробуем разобраться.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Если проблема в стабильности частоты, то до какой точности оно требуется? паракилогерц .. оно точно на МК потянет, даташит смотрели? Может лучше смотреть в сторону микросем-генераторов .. у Ардуины "кварц" .. одно название.

Тут есть проект "генератор с регулируемой частотой" .. перечитайте его, и посмотрите в даташите с какого делителя и какого таймера и с каким шагом Вы сможете настраивать частоту на выходе таймера .. сдается мне, что "Ардуино АВР" вам не помощник.

King-2121
Offline
Зарегистрирован: 10.11.2018

Arhat109-2 пишет:

Если проблема в стабильности частоты, то до какой точности оно требуется? паракилогерц .. оно точно на МК потянет, даташит смотрели? Может лучше смотреть в сторону микросем-генераторов .. у Ардуины "кварц" .. одно название.

Смотрел, но возможно, невнимательно :(

По точности - хотя бы +/- 50...100Гц.  Или меньше. На счет генераторных микросхем как-то не подумал. Надо покумекать. Там еще проблема в компактности. Если бы получилось это организовать в одном корпусе, было бы просто замечательно :)

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Обеспечить точность в 0.1% "ардуиновским" кварцем, который китайцы лепят "под мелкоскопом" (я такое глазом почти не вижу) .. там по моему хуже и сильно. Как бы не 1..5%.

А каков шаг подстройки частоты? На Мегах Вы имеете "тактовую" в 16Мгц, соответственно даже без предделителя на 100кГц это будет всего в 160 раз выше. Выход таймера получится ещё 1/2 .. то есть минимальный шаг составит 100кГц / 80 = 1.25кГц. Даже если я с к-том "1/2" ошибся, то все равно подстроить частоту с шагом, меньшим 625гц в вашем диапазоне .. никак. В реальности стоит увеличить 1.25кГц ещё раза в 2 .. то есть надо ориентироваться на шаг перестройки в 2.5кГц .. этого - хватит?

Ну и сами частоты только те что можно получить деля 16000кГц на целые числа 159, 160, 161 .. :)

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Кварц в Ардуинке от темперетуры и проходящих трамваев, слава Б..гу, не плавает, поэтому можно выбрать ближайшую пожходящую частоту. Вот таблица частот, получаемых от 16МГц на таймере-счетчике. Слева регистр сравнения, справа - получаемая частота в режиме СТС - toggle.

75    106666,6667
76    105263,1579
77    103896,1039
78    102564,1026
79    101265,8228
80    100000
81    98765,4321
82    97560,97561
83    96385,54217
84    95238,09524
85    94117,64706
86    93023,25581
87    91954,02299
88    90909,09091
89    89887,64045
90    88888,88889
91    87912,08791
 

Скорее всего, для реального применения этого достаточно. Но если нужна точность выше - то нужно брать другой МК (СТМ32 "блу пилл" - если по цене выбирать, точность будет почти в 5 раз выше).

По "модуляции" - это просто смешно: генерим 2КГц на таймере2 и в прерывании счетчиком вырезаем из него 2 Гц. (каждый 1000-ый импульс).

Дальше в цикле читаем кнопку и если нажата выставляем флаг.

Ниже проверяем все флаги (2КГц, 2Гц, кнопка) и подключаем генератор к выходу или не подключаем.

Отдельно можно проверять подстройку частоты, например считывая потенциометр, или еще одну кнопку, благо частот "недохуа" - в указанной диапазоне 90-100 - всего 8 штук на 16МГц тактовой.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

King-2121 пишет:

Arhat109-2 пишет:

Если проблема в стабильности частоты, то до какой точности оно требуется? паракилогерц .. оно точно на МК потянет, даташит смотрели? Может лучше смотреть в сторону микросем-генераторов .. у Ардуины "кварц" .. одно название.

Смотрел, но возможно, невнимательно :(

По точности - хотя бы +/- 50...100Гц.  Или меньше. На счет генераторных микросхем как-то не подумал. Надо покумекать. Там еще проблема в компактности. Если бы получилось это организовать в одном корпусе, было бы просто замечательно :)

В одном корпусе только STM и сдаётся мне что 400 серии, по крайней мере генератор LIVE SINUS на ней сделан

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

wdrakula пишет:

Кварц в Ардуинке от темперетуры и проходящих трамваев, слава Б..гу, не плавает, поэтому можно выбрать ближайшую пожходящую частоту. Вот таблица частот, получаемых от 16МГц на таймере-счетчике. Слева регистр сравнения, справа - получаемая частота в режиме СТС - toggle.

75    106666,6667
76    105263,1579
77    103896,1039
78    102564,1026
79    101265,8228
80    100000
81    98765,4321
82    97560,97561
83    96385,54217
84    95238,09524
85    94117,64706
86    93023,25581
87    91954,02299
88    90909,09091
89    89887,64045
90    88888,88889
91    87912,08791
 

Скорее всего, для реального применения этого достаточно. Но если нужна точность выше - то нужно брать другой МК (СТМ32 "блу пилл" - если по цене выбирать, точность будет почти в 5 раз выше).

По "модуляции" - это просто смешно: генерим 2КГц на таймере2 и в прерывании счетчиком вырезаем из него 2 Гц. (каждый 1000-ый импульс).

Дальше в цикле читаем кнопку и если нажата выставляем флаг.

Ниже проверяем все флаги (2КГц, 2Гц, кнопка) и подключаем генератор к выходу или не подключаем.

Отдельно можно проверять подстройку частоты, например считывая потенциометр, или еще одну кнопку, благо частот "недохуа" - в указанной диапазоне 90-100 - всего 8 штук на 16МГц тактовой.


а табличка в посте что-то не отразилась у меня, если резать каждый 1000 то дути не будет 50% на логике И всё строго )))
Видимо 1000 вырезаем 1000 пропускаем

a5021
Offline
Зарегистрирован: 07.07.2013

King-2121 пишет:
Всегда умиляли такие комментарии, когда нечего сказать по делу, а мимо пройти ну никак. Конечно же до вашего уровня мне еще далеко, товарищ "отличник" :)

По делу: ступайте в "ищу исполнителя" и просите материализовать ваши хотелки за деньги. Всякие иные бредни, навроде "на пару килогерц в сторону" лучше б вам не произносить вовсе, ибо чушь несусветная.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ua6em пишет:

а табличка в посте что-то не отразилась у меня, если резать каждый 1000 то дути не будет 50% на логике И всё строго )))
Видимо 1000 вырезаем 1000 пропускаем

1. ты раньше ответил, я несколько раз вставлял табличку из разных "екселей". Из Либры - плохо вставилась, из WPS - хорошо.

2. из импульсов с частотой 4 КГц - каждый 1000-й это 4 Гц. Если такие импульсы переключают уровень то получается меандр с вдвое меньшей частотой - 2КГц и 2Гц, соответственно. Я же выше написал "TOGGLE" - специально для латентных танкистов. ;) (без обид, плз!)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А я так согласен с

dimax пишет:

для полного чайника это совершенно неподъёмная задача. 

Причём главное слово здесь "совершенно", т.е. сколько не рыпайся.... Так что или ТС готов к затратам времени на то, чтобы перестать быть чайником, или работу надо заказывать. Советы не помогут.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

wdrakula пишет:

ua6em пишет:

а табличка в посте что-то не отразилась у меня, если резать каждый 1000 то дути не будет 50% на логике И всё строго )))
Видимо 1000 вырезаем 1000 пропускаем

 

2. из импульсов с частотой 4 КГц - каждый 1000-й это 4 Гц. Если такие импульсы переключают уровень то получается меандр с вдвое меньшей частотой - 2КГц и 2Гц, соответственно. Я же выше написал "TOGGLE" - специально для латентных танкистов. ;) (без обид, плз!)

То-есть, если я применяю это волшебное слово "TOGGLE" - (не знаю как это сделать) то по выходу подключится делитель на 2 (триггер)?
Поясни пожалуйста, может и код приведёшЬ, познавательно жеж (для меня уж точно)

nik182
Offline
Зарегистрирован: 04.05.2015

Волшебный "TOGGLE" реализуется записью единички во входной регистр. 

King-2121
Offline
Зарегистрирован: 10.11.2018

a5021 пишет:

King-2121 пишет:
Всегда умиляли такие комментарии, когда нечего сказать по делу, а мимо пройти ну никак. Конечно же до вашего уровня мне еще далеко, товарищ "отличник" :)

По делу: ступайте в "ищу исполнителя" и просите материализовать ваши хотелки за деньги. Всякие иные бредни, навроде "на пару килогерц в сторону" лучше б вам не произносить вовсе, ибо чушь несусветная.

Если мне понадобится вополтить в жизнь свои хотелки за деньги, я обязательно напишу в соответствующий раздел форума. В данный момент у меня несколько иная задача. Чушь пока что несете только вы. Если вам чем-то не понравилась фраза "на пару килогерц в сторону" - будьте добры аргументровать. А пока все, что вы написали - пустой трёп и балабольство.

King-2121
Offline
Зарегистрирован: 10.11.2018

Остальным большое спасибо за дельные советы и подсказки! Стало немного понятее. Как получится - отпишусь.

Просто думал, что это будет несколько проще и есть уже какие-то готовые библиотеки, например, под это дело.

По шагу - хотелось бы хотя бы 200-300 Гц, но если это невозможно, будем стремиться хотя бы к 625.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

King-2121 пишет:

По шагу - хотелось бы хотя бы 200-300 Гц, но если это невозможно, будем стремиться хотя бы к 625.


 

Это на 328 не получится, смотрите на STM32F103C8 там тактовая 72 мегагерца, а вот две ардуино нано видимо решат, только с каким шагом? За основу можно взять скетч DIMAX
Я бы залил и посмотрел, какой шаг получается на ваших частотах

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ua6em пишет:

То-есть, если я применяю это волшебное слово "TOGGLE" - (не знаю как это сделать) то по выходу подключится делитель на 2 (триггер)?
Поясни пожалуйста, может и код приведёшЬ, познавательно жеж (для меня уж точно)

Я пока сделаю вид, что всей это херни не прочитал, а ты подумай с какой частотой следуют фронты у меандра частоты N?

И каждый фронт - это по очереди рост-спад-рост-спад....

Боюсь, что какашка мишкина не пользу идет.

a5021
Offline
Зарегистрирован: 07.07.2013

King-2121 пишет:
Чушь пока что несете только вы.

Что же вы сразу не сказали, что оргазмируете, когда вас тычут носом в собственное же дерьмо? Я бы сразу начал с этого. Но и теперь не поздно. Приступим. Вы пишете:

Цитата:
Полностью на логике сделать такое - не проблема. Проблема в стабильности высокой частоты(100КГц). Там уже ёмкость руки при настройке будет уносить её на пару килогерц в сторону. Поэтому и решил посмотреть в сторону МК.

Внимание, вопрос: почему один и тот же генератор Пирса на "дискретной логике"

"будет уносить на пару килогерц", но точно такой же генератор внутри МК избавляет вас от всяких опасений на сей счет? А я вам отвечу, почему. Ровно по тому, что знаний у вас в этой области чуть меньше нуля и ни на какой дискретной логике вы ничего собрать не в состоянии, чего бы здесь не плели на голубом глазу.

Не стоило бредить и пускать пыль в глаза. Стабильность в обоих случаях будет одинаковой, т.к. при идентичной схемотехнике она зависит от стабильности задающего элемента, т.е. кварца.

Вы не соображаете в электронике, не разбираетесь в программировании, но сходу беретесь решать задачи в обоих областях со сложностью выше средней. Вы кто? Дебил?

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

wdrakula пишет:

ua6em пишет:

То-есть, если я применяю это волшебное слово "TOGGLE" - (не знаю как это сделать) то по выходу подключится делитель на 2 (триггер)?
Поясни пожалуйста, может и код приведёшЬ, познавательно жеж (для меня уж точно)

Я пока сделаю вид, что всей это херни не прочитал, а ты подумай с какой частотой следуют фронты у меандра частоты N?

И каждый фронт - это по очереди рост-спад-рост-спад....

Боюсь, что какашка мишкина не пользу идет.

то что после делителя на 2 дути будет 50% и так понятно, мне не понятно как это реализовать в коде
А для ТС у DIMAX есть терминальная версия, от нечего делать посмотрел, что имеем на выходе, то-есть
условиям задачи ТС ардуино не удовлетворяет
80.000 kHz
81.633 kHz
82.474 kHz
83.333 kHz
84.211 kHz
85.106 kHz
86.022 kHz
87.912 kHz
88.889 kHz
89.888 kHz
90.909 kHz
91.954 kHz
93.023 kHz
93.023 kHz
94.118 kHz
95.238 kHz
96.386 kHz
97.561 kHz
98.765 kHz
100.000 kHz
100.000 kHz

То-есть минимальный шаг 808 Герц
 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Перестраиваемый на кварце можно подтянуть по частоте сотню, другую герц, видимо речь шла об RC, перестраиваемом, на логике

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

В рамках общего пути на исправление и балансирование кармы ;) ;) ;) я выложу хотелку нашего ТС на Ардуино Нано, с видео-пруфом, как я всегда и делаю. Надо сказать, что генератор из Ардуино, как из говна пуля, но ему в ж было надо на AtMega328p, так? Вот так можно на ней.

Програмный антидребезг кнопки и подстройку частоты потенциометром пусть добавляет другой "добрый самаритянин". У меня лимит "добрых дел" уже до конца года исчерпан... Теперь можно продолжать гноить новичков и троллить Архата!

КОД:

#include <avr/interrupt.h>

byte F2KHz=0;  //флаг 2КГц
int  d1000 = 0;//счетчик-делитель на 1000
byte F2Hz =0;  //флаг 2Гц
byte btn = 0;  //флаг кнопки 1-нажата

ISR(TIMER2_COMPA_vect)   //прерывание таймера2 4000 раз в сек
{
  F2KHz = 1 - F2KHz;     //тот самый тоггль уровня, на флаге - меандр в 2КГц
  if (d1000++ == 1000) {d1000 = 0; F2Hz = 1 - F2Hz;}   //деление на 1000 и меандр в 2Гц
  
}

void setup() {

 pinMode (9,OUTPUT);   //выход 100КГц ... честно говоря говно на ослике
 pinMode (2,INPUT_PULLUP); //пин кнопки, делаем вид, что антидребезг - аппаратный ;)
 
 TCCR0B = 0;  //останавливаю работу часов ардуино, миллис больше нет!
 TIMSK0 = 0;
 
 TCCR1A = 0b00000000;  //первый таймер от пинов отключен, предделитель =1, режим СТС
 TCCR1B = 0b00001001;  //курим даташит

 OCR1A=80;  //регистр сравнения = 80, частота 100КГц, еще курим даташит

  TCCR2A = 0b00000010;  //таймер 2 от пинов отключен, режим СТС, предделитеь = 32
  TCCR2B = 0b00000011;  //итого частота 16М/32 = 500К
  OCR2A  = 125;         //регистр стравнения 125, частота = 500К/125 = 4К
  TIMSK2 = 0b00000010;  //разрешаем прерывание по сравнению
}

void loop() {

  btn = 1 - digitalRead(2); //читаем кнопку, активный GND

  if (F2KHz && (!btn || btn && F2Hz) ) //проверяем все флаги, курим булеву алгебру и КНФ
       TCCR1A = 0b01000000; //подключаем 100КГц к пин9
  else TCCR1A = 0b00000000; //не подключаем ;)

}

Видео-пруф. Само-собой на утубе.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

wdrakula пишет:
У меня лимит "добрых дел" уже до конца года исчерпан
До конца года - это нормально. Ближайший день св. Нуба как раз 4-го января.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

WDRAKULA - ну ты интриган -  TCCR1B = 0b00001001;  //курим даташит

14:38:50.630 -> 98.765 kHz
14:38:50.630 -> 98.765 kHz
14:38:50.630 -> 98.765 kHz

)))

14:41:16.100 -> 97.561 kHz
14:41:16.140 -> 97.561 kHz
14:41:16.140 -> 97.561 kHz
97.561 kHz
 

 OCR1A=79;  //регистр сравнения = 80, частота 100КГц, еще курим даташит
 

14:43:50.623 -> 100.000 kHz
14:43:50.623 -> 100.000 kHz
14:43:50.663 -> 100.000 kHz

 

)))
 

King-2121
Offline
Зарегистрирован: 10.11.2018

a5021 пишет:

King-2121 пишет:
Чушь пока что несете только вы.

Что же вы сразу не сказали, что оргазмируете, когда вас тычут носом в собственное же дерьмо? Я бы сразу начал с этого. Но и теперь не поздно. Приступим. Вы пишете:

Цитата:
Полностью на логике сделать такое - не проблема. Проблема в стабильности высокой частоты(100КГц). Там уже ёмкость руки при настройке будет уносить её на пару килогерц в сторону. Поэтому и решил посмотреть в сторону МК.

Внимание, вопрос: почему один и тот же генератор Пирса на "дискретной логике"

"будет уносить на пару килогерц", но точно такой же генератор внутри МК избавляет вас от всяких опасений на сей счет? А я вам отвечу, почему. Ровно по тому, что знаний у вас в этой области чуть меньше нуля и ни на какой дискретной логике вы ничего собрать не в состоянии, чего бы здесь не плели на голубом глазу.

Не стоило бредить и пускать пыль в глаза. Стабильность в обоих случаях будет одинаковой, т.к. при идентичной схемотехнике она зависит от стабильности задающего элемента, т.е. кварца.

Вы не соображаете в электронике, не разбираетесь в программировании, но сходу беретесь решать задачи в обоих областях со сложностью выше средней. Вы кто? Дебил?

 

 

Уважаемый дебил, более не вижу смысла дискутировать с вами.

Из всего сказанного я делаю вывод, что в электронике вы не смыслите ровным счетом ничего. Иначе не плели бы эту дичь, а внимательнее читали бы вопрос. Максимум - нахватались верхушек и пытаетесь строить из себя умного. Смею вас уверить - это не так :)
Более разговаривать с вами не хочу, а советы действительно умных людей на этом форуме, которые разбираются в МК я приянл за что им и спасибо!
Далее отвечать на ваши сообщения я не намерен. Всего хорошего!

a5021
Offline
Зарегистрирован: 07.07.2013

wdrakula пишет:
я выложу хотелку нашего ТС на Ардуино Нано

Че, курсовая для ПТУ-шников -- это какой-то программно-аппаратный подвиг? Своими действиями вы подпитываете представления о здешнем форуме, как о месте обитания странных ботанов, которым по кайфу любую херь запрограммировать.

a5021
Offline
Зарегистрирован: 07.07.2013

King-2121 пишет:
Уважаемый дебил, более не вижу смысла дискутировать с вами.

Никто тут с вами не дискутирует. Вы мозгами для этого не вышли. Вас тыкают носом в ваши же какахи, какие вы по скудомыслию тут разбросали.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ua6em пишет:

WDRAKULA - ну ты интриган -  TCCR1B = 0b00001001;  //курим даташит

14:38:50.630 -> 98.765 kHz
14:38:50.630 -> 98.765 kHz
14:38:50.630 -> 98.765 kHz

)))

14:41:16.100 -> 97.561 kHz
14:41:16.140 -> 97.561 kHz
14:41:16.140 -> 97.561 kHz
97.561 kHz
 

 OCR1A=79;  //регистр сравнения = 80, частота 100КГц, еще курим даташит
 

14:43:50.623 -> 100.000 kHz
14:43:50.623 -> 100.000 kHz
14:43:50.663 -> 100.000 kHz

 

)))
 

не-а. я не интригую - не люблю и не умею, про +1 просто забыл... а точно частоту все равно подбирать... так что пусть этот неуч тебе спасибо скажет.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

wdrakula пишет:
У меня лимит "добрых дел" уже до конца года исчерпан
До конца года - это нормально. Ближайший день св. Нуба как раз 4-го января.


Нет уж!!! Он обещал (а я его за язык не тянул), сделать то же самое, что и вы в своём TimeMeasure только для синей платы на STM32F103, правда оговорился - как только протрезвеет ...
Красиво жить не запретишь - это я о постоянно сыто-пьяно )))
А ведь худшее, это ждать и догонять...

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

a5021 пишет:

wdrakula пишет:
я выложу хотелку нашего ТС на Ардуино Нано

Че, курсовая для ПТУ-шников -- это какой-то программно-аппаратный подвиг? Своими действиями вы подпитываете представления о здешнем форуме, как о месте обитания странных ботанов, которым по кайфу любую херь запрограммировать.

да не, прости. на меня иногда находит.... я раньше такие мелкие пакости в "ищу исполнителя" писал... но потом мне сказали, что нехорошо хлеб отнимать у голодных  ;)

я ж написал: тока ради исправления кармы ;)

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

wdrakula пишет:

.. так что пусть этот неуч тебе спасибо скажет.


да я для себя для познания так сказать...(ты мне не говори, ты мне пальцем покажи)
Информации на самом деле очень много для размышления

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ua6em пишет:

ЕвгенийП пишет:

wdrakula пишет:
У меня лимит "добрых дел" уже до конца года исчерпан
До конца года - это нормально. Ближайший день св. Нуба как раз 4-го января.


Нет уж!!! Он обещал (а я его за язык не тянул), сделать то же самое, что и вы в своём TimeMeasure только для синей платы на STM32F103, правда оговорился - как только протрезвеет ...
Красиво жить не запретишь - это я о постоянно сыто-пьяно )))
А ведь худшее, это ждать и догонять...

чо??? правда абисчал???? я обычно не помню таких глупостей, но если какой-то код хочешь, то лучше в почту кидай. к трепу тут я не особенно серьезно отношусью

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

wdrakula пишет:

ua6em пишет:

ЕвгенийП пишет:

wdrakula пишет:
У меня лимит "добрых дел" уже до конца года исчерпан
До конца года - это нормально. Ближайший день св. Нуба как раз 4-го января.


Нет уж!!! Он обещал (а я его за язык не тянул), сделать то же самое, что и вы в своём TimeMeasure только для синей платы на STM32F103, правда оговорился - как только протрезвеет ...
Красиво жить не запретишь - это я о постоянно сыто-пьяно )))
А ведь худшее, это ждать и догонять...

чо??? правда абисчал???? я обычно не помню таких глупостей, но если какой-то код хочешь, то лучше в почту кидай. к трепу тут я не особенно серьезно отношусью

Было дело )))
А напомни почту

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ua6em пишет:

А напомни почту

Ты удивишься! Мой ник на жмейле... Вроде ж на утубе должно быть видно?

King-2121
Offline
Зарегистрирован: 10.11.2018

a5021 пишет:

King-2121 пишет:
Уважаемый дебил, более не вижу смысла дискутировать с вами.

Никто тут с вами не дискутирует. Вы мозгами для этого не вышли. Вас тыкают носом в ваши же какахи, какие вы по скудомыслию тут разбросали.

И пусть меня после этого забанят на форуме, но a5021, пошел ты нахуй!!!!!

King-2121
Offline
Зарегистрирован: 10.11.2018

wdrakula пишет:

В рамках общего пути на исправление и балансирование кармы ;) ;) ;) я выложу хотелку нашего ТС на Ардуино Нано, с видео-пруфом, как я всегда и делаю. Надо сказать, что генератор из Ардуино, как из говна пуля, но ему в ж было надо на AtMega328p, так? Вот так можно на ней.

Програмный антидребезг кнопки и подстройку частоты потенциометром пусть добавляет другой "добрый самаритянин". У меня лимит "добрых дел" уже до конца года исчерпан... Теперь можно продолжать гноить новичков и троллить Архата!

КОД:

#include <avr/interrupt.h>

byte F2KHz=0;  //флаг 2КГц
int  d1000 = 0;//счетчик-делитель на 1000
byte F2Hz =0;  //флаг 2Гц
byte btn = 0;  //флаг кнопки 1-нажата

ISR(TIMER2_COMPA_vect)   //прерывание таймера2 4000 раз в сек
{
  F2KHz = 1 - F2KHz;     //тот самый тоггль уровня, на флаге - меандр в 2КГц
  if (d1000++ == 1000) {d1000 = 0; F2Hz = 1 - F2Hz;}   //деление на 1000 и меандр в 2Гц
  
}

void setup() {

 pinMode (9,OUTPUT);   //выход 100КГц ... честно говоря говно на ослике
 pinMode (2,INPUT_PULLUP); //пин кнопки, делаем вид, что антидребезг - аппаратный ;)
 
 TCCR0B = 0;  //останавливаю работу часов ардуино, миллис больше нет!
 TIMSK0 = 0;
 
 TCCR1A = 0b00000000;  //первый таймер от пинов отключен, предделитель =1, режим СТС
 TCCR1B = 0b00001001;  //курим даташит

 OCR1A=80;  //регистр сравнения = 80, частота 100КГц, еще курим даташит

  TCCR2A = 0b00000010;  //таймер 2 от пинов отключен, режим СТС, предделитеь = 32
  TCCR2B = 0b00000011;  //итого частота 16М/32 = 500К
  OCR2A  = 125;         //регистр стравнения 125, частота = 500К/125 = 4К
  TIMSK2 = 0b00000010;  //разрешаем прерывание по сравнению
}

void loop() {

  btn = 1 - digitalRead(2); //читаем кнопку, активный GND

  if (F2KHz && (!btn || btn && F2Hz) ) //проверяем все флаги, курим булеву алгебру и КНФ
       TCCR1A = 0b01000000; //подключаем 100КГц к пин9
  else TCCR1A = 0b00000000; //не подключаем ;)

}

Видео-пруф. Само-собой на утубе.

 

 

Большущее спасибо! То, что надо! Работает на ура! Дребезг и переменник добавить не проблема)))

К сожалению, кроме 328 я пока ничего не трогал из МК. Это - первый. В идеале по размерам вообще какую-нибудь восьминожку. Но МК я только начинаю изучать. В свое время упустил этот момент...

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

a5021 пишет:

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

Еще раз прошу не серчать!  Шабат, нужно о высоком думать!;) Но ведь и правда 10 строк кода... даже глумиться скучно. Это как вопросы о том, как из цифр число сложить и наоборот, ...ну ты видел, они тут почти каждый день.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

King-2121 пишет:

 

Большущее спасибо! То, что надо! Работает на ура! Дребезг и переменник добавить не проблема)))

К сожалению, кроме 328 я пока ничего не трогал из МК. Это - первый. В идеале по размерам вообще какую-нибудь восьминожку. Но МК я только начинаю изучать. В свое время упустил этот момент...

WDRAKULA коньяк не пьёт, а я пью, армянский, Арарат, 1957 года рождения )))

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

King-2121 пишет:

a5021 пишет:

King-2121 пишет:
Уважаемый дебил, более не вижу смысла дискутировать с вами.

Никто тут с вами не дискутирует. Вы мозгами для этого не вышли. Вас тыкают носом в ваши же какахи, какие вы по скудомыслию тут разбросали.

И пусть меня после этого забанят на форуме, но a5021, пошел ты нахуй!!!!!

Тебя не забанят, но и помогать больше никто не станет. Ты случайно нарвался на меня в Шабат... в другой день - уже летел бы с форума с черенком в причинном месте.

King-2121
Offline
Зарегистрирован: 10.11.2018

wdrakula пишет:

Тебя не забанят, но и помогать больше никто не станет. Ты случайно нарвался на меня в Шабат... в другой день - уже летел бы с форума с черенком в причинном месте.

Видосик только что посмотрел. Отдельное спасибо, что снял! Но и кода было достаточно. Возможно, придется малость поправить скважность при сборке, но тут уж разберемся.
 

Я тут местных правил не знаю, но просвяти уж плиз. Я общался культурно, пришел, как новичок сюда. Специального раздела для новчиков не нашел, хотя допускаю, что мог не заметить. Написал вопрос, дабы получить совет от людей, которые лучше разбираются в этом. Многие дали дельные советы и подтолкнули к детальному изучению даташита. Вы вообще дали готовый код, за что еще раз спасибо, хоть я и не просил. Некий a5021 сразу скатился к оскорблениям. В чем я не прав? На дату регистрации я конечно же обратил внимание, но это не дает права хрен пойми кому оскорблять новых участников форума.

King-2121
Offline
Зарегистрирован: 10.11.2018

ua6em пишет:

King-2121 пишет:

 

Большущее спасибо! То, что надо! Работает на ура! Дребезг и переменник добавить не проблема)))

К сожалению, кроме 328 я пока ничего не трогал из МК. Это - первый. В идеале по размерам вообще какую-нибудь восьминожку. Но МК я только начинаю изучать. В свое время упустил этот момент...

WDRAKULA коньяк не пьёт, а я пью, армянский, Арарат, 1957 года рождения )))

Живи бы мы в одном городе, коньяк не обещал бы, но пыво - без проблем :)

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

King-2121 пишет:

ua6em пишет:

King-2121 пишет:

 

Большущее спасибо! То, что надо! Работает на ура! Дребезг и переменник добавить не проблема)))

К сожалению, кроме 328 я пока ничего не трогал из МК. Это - первый. В идеале по размерам вообще какую-нибудь восьминожку. Но МК я только начинаю изучать. В свое время упустил этот момент...

WDRAKULA коньяк не пьёт, а я пью, армянский, Арарат, 1957 года рождения )))

Живи бы мы в одном городе, коньяк не обещал бы, но пыво - без проблем :)

Я пиво не пью ...

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

King-2121 пишет:

Я тут местных правил не знаю, но просвяти уж плиз. Я общался культурно, пришел, как новичок сюда. Специального раздела для новчиков не нашел, хотя допускаю, что мог не заметить. Написал вопрос, дабы получить совет от людей, которые лучше разбираются в этом. Многие дали дельные советы и подтолкнули к детальному изучению даташита. Вы вообще дали готовый код, за что еще раз спасибо, хоть я и не просил. Некий a5021 сразу скатился к оскорблениям. В чем я не прав? На дату регистрации я конечно же обратил внимание, но это не дает права хрен пойми кому оскорблять новых участников форума.

Раз просишь - попробую. Но щадить не обещаю.

1. Ты пришел, как новичок, с вопросом реально ОЧЕНЬ похожим на курсовую. Причем решение, как ты видел - 10 строк.

2. Мы сделали выводы - ровно такие, как и а5021.

3. Мы тут ОЧЕНЬ не любим студентов, желающих обмануть своих преподавателей и выцыганить курсач на форуме. Многие тут, включая меня, не постесняются деанонимизировать такого и сдать в деканат. И да - я считаю это правильным.

4. Еще раз повторю, что я не присоединился к а5021 - чисто случайно, считай тебе повезло. Шабат, все-таки! ;)

5. вернемся к п1. Сам вопрос совершенно примитивен, задавший такой вопрос - уже сам себя унизил, это как формулу корней квадратного уравнения не знать! Следовательно ты - уже не ровня нам, ...чисто психологически. Значит не имеешь права оспаривать НИЧЕГО из сказанного тебе, ты потерял право на любой вид дискуссии - слушай или уходи!

6. Плюс ты стал пороть херню, что можешь собрать что-то на рассыпухе, на что получил заслуженную отповедь, потому что цифровой генератор на рассыпухе ничем не отличается от МК, и обладай ты соответствующей квалификацией, тебя б на форуме, с глупым вопросом не было бы.

7. В ответ ты стал пытаться "дать ответку", не имея на неё морального права. А тут  такого никто не спустит. Уж прости.

------------------------------------

Так что события развивались по очевидному и неоднократно повторенному сценарию. Если тебе реально нужно будет работать с МК в будущем, то проглоти обидки и работай, не пытаясь кого-то "поставить на место". Авторитет тут только у тех, кто просто умеет програмировать... Исключение есть, его мы любим "нэ толко за это", как и П.И. Чайковского. (Это я на старый анекдот намекаю, если не понял).