Перейти к содержанию

Вадим Куманов

Members
  • Постов

    74
  • Зарегистрирован

  • Посещение

Информация о Вадим Куманов

  • День рождения 03.10.1991

Информация

  • Пол
    Мужчина

Электроника

  • Стаж в электронике
    6-10 лет

Посетители профиля

1 360 просмотров профиля

Достижения Вадим Куманов

Стажер

Стажер (3/14)

  • Преданный
  • 10 постов на форуме
  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

0

Репутация

  1. @Starichok счетчик регистр это роли не играет, не в этом суть, все прекрасно поняли о чем речь, не стоит так сильно уделять этому внимание там два кода предоставил, с осциллограмами и каждый код подписан что в нем происходит, в одном коде только регистр В, в другом и А и В, нужно быть по внимательней. речь идет о поведении прерываний, почему при работе со счетчиком А ненужно сбрасывать счетный регистр и таймер работает как положено, а при работе с В регистром таймер срабатывает один раз и ждет пока вручную сбросишь счетный регистр. И почему при работе с двумя счетчиками приоритет переходит к счетчику А, а не работают как два отдельных прерывания, вот основная проблема а не то что я неправильно пишу счетчики таймеры регистры
  2. @Starichok В регистре TIMSK0 есть биты отвечающие за прерывание только по сравнению OCIE0A и только по сравнению OCIE0B, и есть бит на переполнение TOIE0. Каким образом при установке бита только сравнение по OCIE0B, срабатывает вектор и по OCIE0А. А при установке OCIE0А срабатывает вектор OCIE0А и OCIE0В вне зависимости что указано в регистре OCR0В я знаю что таймер один, далее там писал про счетчики, это не столь важно. OCR0A закоментирована потому что работает только счетчик OCR0B а выше осцилограмма сигнала, там же все подписано.
  3. Задача в том что бы отследить прерывание по faling на первом пине и отсчитать 700uS и на протяжение этих 700мкс не должно быть положительных фронтов, если хоть один будет то все заново
  4. установи в разрыв DTR конденсатор как на китайских TTL должен заработать, у меня без этого конденсатора atmega328 не хотела ресетится при прошивке
  5. Проблема в том что таймер B некорректно работает хотя настроен с ног до головы, устанавливаю все нужные регистры, примерно рассчитываю тайминги в итоге таймер работает как попало. Наблюдения: При инициализации таймера он считает один раз до совпадения и больше не хочер, и так каждый раз при перезагрузки При обнуление регистра TCNT0 он начинает заново считать но тайминги не совпадают вообще(откудато с неба) При инициализации счетчика OCR0A прерывания срабатывают по вектору TIM0_COMPA_vect и по вектору TIM0_COMPB_vect Attiny13 работает на 1.2МГц, делитель для таймера 1 минимальный тайминг таймера 54uS таймиги смотрю логическим анализатором. #define DISABLE_SAFEMODE //#define INTERRUPT_SERIAL_RX void setup() { OSCCAL = 0x68; DDRB |= (1 << PB2)|(1 << PB4); PORTB &= ~(1 << PB2); PORTB &= ~(1 << PB4); /* GIMSK |= (1 << INT0); MCUCR &= ~(1 << ISC00); MCUCR |= (1 << ISC01);*/ TCCR0A |= (1 << WGM01); TCCR0B = (1 << CS00); OCR0A = 100; OCR0B = 25; TIMSK0 = (1 << OCIE0B) | (1 << OCIE0A); sei(); } ISR(INT0_vect) { } ISR(TIM0_COMPB_vect) { PORTB |= (1 << PB2); PORTB &= ~(1 << PB2); //OCR0B = 25; //TCNT0 = 0; } ISR(TIM0_COMPA_vect) { PORTB |= (1 << PB4); PORTB &= ~(1 << PB4); //OCR0B = 25; //TCNT0 = 0; } void loop() { } Вот работа только счетчика OCR0B без обнуления вручную TCNT0: Это с принудительным обнулением TCNT0: #define DISABLE_SAFEMODE //#define INTERRUPT_SERIAL_RX void setup() { OSCCAL = 0x68; DDRB |= (1 << PB2)|(1 << PB4); PORTB &= ~(1 << PB2); PORTB &= ~(1 << PB4); /* GIMSK |= (1 << INT0); MCUCR &= ~(1 << ISC00); MCUCR |= (1 << ISC01);*/ TCCR0A |= (1 << WGM01); TCCR0B = (1 << CS00); //OCR0A = 100; OCR0B = 25; TIMSK0 = (1 << OCIE0B); sei(); } ISR(INT0_vect) { } ISR(TIM0_COMPB_vect) { PORTB |= (1 << PB2); PORTB &= ~(1 << PB2); //OCR0B = 25; TCNT0 = 0; } ISR(TIM0_COMPA_vect) { PORTB |= (1 << PB4); PORTB &= ~(1 << PB4); //OCR0B = 25; //TCNT0 = 0; } void loop() { } Расчетные тайминги для A - 83uS B - 20uS расчеты грубые, сильно не пинайте. При работе только счетчика A тайминги правильные с погрешностью 3uS
  6. @Roll-o-matic В этом посте я описываю теорию а не утвердительные факты. В сети амплитуда 310В всегда по разному, броски напряжения могут быть и больше, у драйвера тоже есть свои максимальные входные параметры, не думаю что там стоят драйверы на 800В, вот и теория о том что драйвер может не справиться с таким напряжением
  7. @Roll-o-matic выгорел светодиод, это типичная поломка для всех ламп такого типа, драйвер там стоит хороший. через какое-то время вообще перестал запускаться, драйвер запускается но уходит в защиту. смысла его ремонтировать не вижу, буду покупать новый и не один, включаться будут часто от датчика движения или команды умного дома там свои алгоритмы, вот и думаю как сгладить пусковые моменты
  8. @OSS себестоимость схемы 2$ стоимость лампы 5$, для дома думаю это неважно. @Armenn Согласен что после запуска драйверу уже все равно что там и как, но ведь самое тяжелое для любой техники это пусковые токи и плавный запуск приветствуется всегда
  9. @Alex91 Да конечно драйвер сам ограничивает ток, но всему есть предел, броски напряжения могут быть разной амплитуды, прошлый мой светильник отработал год хотя покупал хорошего качества и не дешевый, изза нестабильного напряжения он и вышел из строя, хотя такой же светильник купленый в то же время работает уже около 3х лет но в другом месте
  10. Суть такая что бы светодиодные лампы питающиеся от сети 220В запускать только при переходе через 0, таким образом уменьшить нагрузку на драйвер светодиода, ведь мы же не знаем когда там 0 а когда максимальная амплитуда питающего напряжения. Если драйвер будет стартовать с примерно 0 вольт то ему проще будет стабилизировать ток и напряжение нежели при пуске с 300 вольт от сети, работу должен обеспечивать оптосимистор с детектором нуля, напряжение будет подаваться только после перехода через 0. Что скажете заморачиваться со схемой?
  11. @mihelson потому что на ризисторах будет падать напряжение соответсвенно амплитуда входного сигнала уменьшится и это повлияет на основную схему с которой сигнал подворовываеться, даже изменение на 0.5В критичны, а входы компаратора имеют очень несущественное влияние. использование высокоомных резисторов привет к наводкам, использлвание низкоомных резисторов приведет к протеканию сигнал по новой цепи из резисторов менуя основную схему куда сигнал должен идти. @vrytsev какого транзистора? в компараторе? в даташите на компаратор написано до 36В
  12. вопрос вот в чем можно ли подать повышенное напряжение на входы даного компаратора, суть в том что нужно воровать сигнал с наименьшим влиянием на схему и сам сигнал и плюс сразу этот сигнал конвертировать по уровню. компаратор будет питаться от 3В на не инвертирующий вход будет тоже подаваться 3В, а на не инвертирующий будет подаваться 12-14В напрямую что бы не использовать резисторы делители так как они повлияют на сигнал, транзистор тоже может повлиять на сигнал и тд. по идеи все должно работать как и задумано но так же хочется знать мнение и других радиолюбителей.
  13. @alend операционник будет обрезать все что ниже порога КУ или 0, двух полярное питание не хочу городить придеться переделывать всю схему @jam_yps не совсем понимаю как реализовать такую схему правильно, после конденсатора сигнал уже станет переменным а операционник обрежет все что ниже 0 @jam_yps вот что операционник делает
  14. @jam_yps я же написал убрать постоянную с сигнала, соответственно амплитуда на выходе от 0 до 4 или 5 вольт это уже не важно, мне нужна точка отсчета от 0. резистором на плюс и базу преоткрываю базу что бы избежать порога включения транзистора 0.6В, конечно же пытаюсь подобрать резисторы так что бы транзистор не уходил в насыщение сразу, но ничего не выходит, или симулятор не может это симулировать @IMXO кого поставить? сигнал приходит с амлитудой 2-5В, а нужно от 0 и хотябы до 4В там это уже не важно
  15. Доброго дня Нужно обработать сигнал, но он незначительный и приходит с постоянной составляющей, установил разделительный конденсатор - сигнал стал переменным, подтянул базу транзистора, немного приоткрыл его. Вроде как должно работать но по факту на выходе прямоугольные импульсы так как транзистор не повторяет сигнал а работает в ключевом режиме, открываеться выше 0.6В
×
×
  • Создать...