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

-Ilnur-

Members
  • Постов

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

  • Посещение

Электроника

  • Стаж в электронике
    3-5 лет

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

681 просмотр профиля

Достижения -Ilnur-

Новичок

Новичок (1/14)

  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

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

0

Репутация

  1. Borodach, что значит "стал отзывается на вибрацию"?
  2. Приветствую всех. Имеются беспроводные bluetooth наушники(полноразмерные). Проблема следующая - во время воспроизведения звуков и в течение 10 секунд после остановки из правого наушника(там, где находится плата) отчётливо слышен писк. То есть начинаю воспроизводить звук - пищат, ставлю паузу - продолжает пищать 10 секунд и писк прекращается. Снова включаю воспроизведение - начинает пищать. Так же писк появляется на 10 секунд при соединении. Проблема наблюдается только при соединении со смартфонами(пробовал разные). С компьютером звук чистый. Сначала думал что дело в микрофоне - отпаял, но писк не пропал. Припаял его обратно. Тогдаже и заметил что писк совсем пропадает если отвести динамик от платы хотя бы на 1,5-2см. Какие есть варианты избавиться от писка в данном случае?
  3. -Ilnur-

    ATmega128, таймер

    Вопрос решен, спасибо.
  4. -Ilnur-

    ATmega128, таймер

    Приветствую. Возникла следующая проблема: использовал ATmega2560 с библиотекой TimerOne - проблем не было. После перехода на ATmega128 появилась ошибка: "'TIMSK1' was not declared in this scope". Покопавшись в интернете выяснил - дело в том, что названия некоторых регистров таймера ATmega128 отличается от ATmega2560. Вообщем это и надо поправить. Может есть тут кто разбирается в таймерах ATmega? Готов финансово отблагодарить за помощь. Код из TimerOne.h, требующий исправления. #ifndef TimerOne_h_ #define TimerOne_h_ #if defined(ARDUINO) && ARDUINO >= 100 #include "Arduino.h" #else #include "WProgram.h" #endif #include "config/known_16bit_timers.h" #define TIMER1_RESOLUTION 65536UL // Timer1 is 16 bit class TimerOne { #if defined(__AVR__) public: //**************************** // Configuration //**************************** void initialize(unsigned long microseconds=1000000) __attribute__((always_inline)) { TCCR1B = _BV(WGM13); // set mode as phase and frequency correct pwm, stop the timer TCCR1A = 0; // clear control register A setPeriod(microseconds); } void setPeriod(unsigned long microseconds) __attribute__((always_inline)) { const unsigned long cycles = (F_CPU / 2000000) * microseconds; if (cycles < TIMER1_RESOLUTION) { clockSelectBits = _BV(CS10); pwmPeriod = cycles; } else if (cycles < TIMER1_RESOLUTION * 8) { clockSelectBits = _BV(CS11); pwmPeriod = cycles / 8; } else if (cycles < TIMER1_RESOLUTION * 64) { clockSelectBits = _BV(CS11) | _BV(CS10); pwmPeriod = cycles / 64; } else if (cycles < TIMER1_RESOLUTION * 256) { clockSelectBits = _BV(CS12); pwmPeriod = cycles / 256; } else if (cycles < TIMER1_RESOLUTION * 1024) { clockSelectBits = _BV(CS12) | _BV(CS10); pwmPeriod = cycles / 1024; } else { clockSelectBits = _BV(CS12) | _BV(CS10); pwmPeriod = TIMER1_RESOLUTION - 1; } ICR1 = pwmPeriod; TCCR1B = _BV(WGM13) | clockSelectBits; } //**************************** // Run Control //**************************** void start() __attribute__((always_inline)) { TCCR1B = 0; TCNT1 = 0; // TODO: does this cause an undesired interrupt? resume(); } void stop() __attribute__((always_inline)) { TCCR1B = _BV(WGM13); } void restart() __attribute__((always_inline)) { start(); } void resume() __attribute__((always_inline)) { TCCR1B = _BV(WGM13) | clockSelectBits; } //**************************** // PWM outputs //**************************** void setPwmDuty(char pin, unsigned int duty) __attribute__((always_inline)) { unsigned long dutyCycle = pwmPeriod; dutyCycle *= duty; dutyCycle >>= 10; if (pin == TIMER1_A_PIN) OCR1A = dutyCycle; #ifdef TIMER1_B_PIN else if (pin == TIMER1_B_PIN) OCR1B = dutyCycle; #endif #ifdef TIMER1_C_PIN else if (pin == TIMER1_C_PIN) OCR1C = dutyCycle; #endif } void pwm(char pin, unsigned int duty) __attribute__((always_inline)) { if (pin == TIMER1_A_PIN) { pinMode(TIMER1_A_PIN, OUTPUT); TCCR1A |= _BV(COM1A1); } #ifdef TIMER1_B_PIN else if (pin == TIMER1_B_PIN) { pinMode(TIMER1_B_PIN, OUTPUT); TCCR1A |= _BV(COM1B1); } #endif #ifdef TIMER1_C_PIN else if (pin == TIMER1_C_PIN) { pinMode(TIMER1_C_PIN, OUTPUT); TCCR1A |= _BV(COM1C1); } #endif setPwmDuty(pin, duty); TCCR1B = _BV(WGM13) | clockSelectBits; } void pwm(char pin, unsigned int duty, unsigned long microseconds) __attribute__((always_inline)) { if (microseconds > 0) setPeriod(microseconds); pwm(pin, duty); } void disablePwm(char pin) __attribute__((always_inline)) { if (pin == TIMER1_A_PIN) TCCR1A &= ~_BV(COM1A1); #ifdef TIMER1_B_PIN else if (pin == TIMER1_B_PIN) TCCR1A &= ~_BV(COM1B1); #endif #ifdef TIMER1_C_PIN else if (pin == TIMER1_C_PIN) TCCR1A &= ~_BV(COM1C1); #endif } //**************************** // Interrupt Function //**************************** void attachInterrupt(void (*isr)()) __attribute__((always_inline)) { isrCallback = isr; TIMSK1 = _BV(TOIE1); } void attachInterrupt(void (*isr)(), unsigned long microseconds) __attribute__((always_inline)) { if(microseconds > 0) setPeriod(microseconds); attachInterrupt(isr); } void detachInterrupt() __attribute__((always_inline)) { TIMSK1 = 0; } static void (*isrCallback)(); static void isrDefaultUnused(); private: // properties static unsigned short pwmPeriod; static unsigned char clockSelectBits; #endif }; extern TimerOne Timer1; #endif
  5. @KRAB бодяжить смысла нету, пасты в достатке. Чтобы не возникало вопросов почему так отвечу тут - в запечатаном виде ее вынести не дают
  6. На фото банка 0,5кг, заполненая под самый верх выходит 1-1,1кг.
  7. @bag_76 По срокам - все нормально, паста конца 2016 года, срок до июля 2017. В целом, даже после истечения срока ничего ей не случается, если хранить ее в закрытой таре. Пробовал остатки двухгодичной давности - разницы не внешне, ни в процессе пайки не заметил. Думается мне срок годности обусловлен в основном ее иссыханием.
  8. Продам паяльную пасту с содержанием серебра, Sn62Pb36Ag2 0,5кг - 1250 руб. 1 кг - 2000 руб. Возможна продажа более мелкими партиями, все обговаривается. Отправка в любую точку России через ТК или Почту.
×
×
  • Создать...