ОбЪясните почему именно LC генератор. Просто генератор меандра без применения LC контура, предложенный в посте #27, Вас не устраивает? По какой причине? Как Вы задействуете LC контур? Он необходим для работы устройства? Не хотите рассказывать что за устройство, так хоть как то намекните.
Sancho, если бы это действительно было так, все было бы гораздо проще. В посте #9 я задавал этот вопрос. Ответа так и не последовало. Автор упорно скрывает свою затею. Что в итоге хочет получить не ясно. На наводящие вопросы отвечает скомкано или игнорирует.
Отправлено спустя 11 минут 6 секунд:
Супер! Вы нашли Грааль! Ну так предложите свое видение реализации проекта. Посмотрим что скажет ТС.
Было скучно - попробовал в лоб на Ваших элементах
Отправлено спустя 8 минут 43 секунды:ykamerton писал(а): ↑28.07.2019{, 20:53}
Отправлено спустя 23 минуты 14 секунд:
Пришел к мнению что не возможно на меге сделать LC генератор, не выходит все перепробовал и кучу всевозможных блоков.
Генерация есть но скачками при изменении индуктивности. мне нужно плавно считать ее в плюс и минус сторону.не при плевках динамика в а в долях герца.
Это возможно только внешним на отдельной микре. так как в меге нет усилителя есть компаратор а он дает только сравнение 1 или 0 цифра на выходе. И через аналоги и на внутреннем на D6 - D7 пинах никак не смог добиться успеха, ведь компаратор генерит когда с его выхода обратная связь на вход, вот и прыгает. нет плавности изменения частоты.
Не видимо надо было сразу к пионерам в радиокружок фотки кинуть что требуется сделать. Давно бы поняли и что предложили.
Код: Выделить всё
void setup() {
pinMode(5, OUTPUT);
pinMode(2, INPUT);
attachInterrupt(digitalPinToInterrupt(2), blink, CHANGE);
}
void loop() {
}
void blink() {
if(((PIND & B00000100)>>2)){PORTD &= B11011111;}
else PORTD |=B00100000;
}
По выходу возможно и так. Но как Вы подадите управление?
Вас понимать - целое искусство. То ли вы мысли не успеваете записывать, то ли с русским языком не дружите.
Хотите об этом поговорить?
ИгорЬ ок, а так?
Код: Выделить всё
bool start=1;
void setup() {
pinMode(5, OUTPUT);
pinMode(2, INPUT);
digitalWrite(5, LOW);
}
void loop() {
if(start){
start=0;
attachInterrupt(digitalPinToInterrupt(2), blink_1, LOW); // запустим при 0
}
}
void blink_1() {
PORTD |=B00100000; // выставляем 1
attachInterrupt(digitalPinToInterrupt(2), blink_0, RISING); // ловим переход в 1
}
void blink_0() {
PORTD &= B11011111; // выставляем 0
attachInterrupt(digitalPinToInterrupt(2), blink_1, FALLING); // ловим переход в 0
}
Код: Выделить всё
// вариант 1_01
bool start=1;
void setup() {
pinMode(5, OUTPUT);
pinMode(2, INPUT);
digitalWrite(5, LOW);
attachInterrupt(digitalPinToInterrupt(2), blink, CHANGE);
}
void loop() {
if(start){
start=0;
digitalWrite(5, HIGH);}
}
void blink() {
if(((PIND & B00000100)>>2)){PORTD &= B11011111;}
else PORTD |=B00100000;
}