Jump to content

-=FISHER=-

Members
  • Content Count

    1003
  • Joined

  • Last visited

Community Reputation

12 Обычный

About -=FISHER=-

  • Rank
    Живу я тут

Информация

  • Город
    Уфа

Электроника

  • Стаж в электронике
    Менее года
  • Сфера радиоэлектроники
    Автоэлектрика

Recent Profile Visitors

2150 profile views
  1. Не согласен, как в остальных режимах плавно можно регулировать частоту сигнала?
  2. Правильный ответ: с помощью режима CTC аппаратного таймера.
  3. Всем здравствуйте! Понадобилось реализовать генератор прямоугольных импульсов на микроконтроллере с возможностью гибкой настройки частоты от 0 Гц до примерно 3000 Гц. Посоветуйте пожалуйста, каким образом лучше это реализовать? Допустим в качестве МК будет Atmega328p. Заранее спасибо всем откликнувшимся!
  4. Написал же, возможно глупый вопрос. Мне сложно было поверить что все так просто...
  5. Давайте предположим, что он включен ВСЕГДА и потребляет 60 мА
  6. На сколько мне позволяет определить тестер, потребление скачет 55-60 мкА, давайте примем что оно равномерное и составляет 60 мкА
  7. Всем привет! Простите за глупый за возможно глупый вопрос, но всё же: допустим я измеряю мгновенное потребление МК при помощи тестера и тестер мне показывает значение 6 мкА (режим PowerDown со включенным Watchdog таймером, просыпаемся раз в 2 секунды). Сколько тока такой МК потребит за 1 час непрерывной работы?
  8. Да, я так в итоге и решил сделать)) жаль что сразу не догадался
  9. При чем здесь байты? sprintf должна всё склеить в кодах ASCII. Почему же не f, как раз таки модификатор f используется для чисел типа double. Какое бы число я не указывал в качестве дробного. В терминале вижу как раз код знака ? то есть 3F
  10. Я использую Atmel Studio. Интересно, там есть такая настройка?
  11. Всем привет! Хотел спросить про функцию sprintf, мне в общем нужно в строку вставить значение с десятичной точкой. Делаю это следующим образом: sprintf(new_string, "New value: %f %%", 1.23); Затем отправляю получившуюся строку по USART и надеюсь увидеть в терминале: New value: 1.23 % А получаю: New value: ? % Подскажите пожалуйста, где я ошибаюсь?
  12. Помогло!!! Только не понятно, почему с DS3231 заработало без сдвига?
  13. Всех приветствую! Разбираюсь сейчас с OLED дисплеем 128*64 пикселя, подключен у меня он к отладочной плате с AtMega328p (НЕ ардуино ). Начал с малого - пытаюсь с помощью USART отследить общение по I2C путем чтения регистра TWSR, а точнее приём бита ACK. Однако дисплей на отрез отказывается мне его присылать . После отправки команд, посылаю содержимое регистра TWSR в терминал на компьютер и сверяю результат с таблицей Table 21-3. Status Codes for Master Transmitter Mode. Чтобы не быть голословным, прикладываю исходный код: I2C(TWI).h main.c А так же прикладываю таблицу для сравнения из даташита на мегу. После выполнения кода, в терминале наблюдаю следующую картину (содержание регистра TWSR): после отправки условия START - 0x08 (условие старт успешно передано) после отправки адреса устройства - 0x20 (адрес передан, но бита подтверждения ACK принято не было) после отправки всех последующих команд - 0x30 (данные переданы, но бита подтверждения ACK принято не было) Дисплей заведомо исправный (проверял на чужом коде), при подключении вместо него модуля часов реального времени на DS3231, бит ACK приходит (после адреса 0x18, после данных 0x28). Подскажите пожалуйста, должен ли ACK вообще приходить от SSD1306?... Если да, то что я делаю неправильно?...
  14. Проблему решил, подтянув линию данных со стороны МК к земле через 10к. Тему можно закрывать...
  15. Приветствую всех! Недавно собрал себе контроллер (на Atmega8) для управления светодиодным колечком из 16 штук WS2812b. В процессе отладки использовал готовое кольцо, заказанное в Китае, однако под мои нужды внутренний диаметр кольца нужен немного больше, поэтому заказал (опять таки в Китае) платы-колечки, сами же светодиоды купил в наличии у себя в городе. Однако после сборки я заметил, что после первого включения и вместе с первой отправкой данных на кольцо, на нем кратковременно мигает зелёным цветом первый светодиод (после этого кольцо ведет себя согласно программе, пока не скинуть питание никаких глюков больше нет). Я стал разбираться и пришел к выводу, что даже если отправить на ленту посылку из 24 байт (набора данных для включения только первого светодиода) для включения чисто синего цвета или чисто красного, то к его цвету в ~50% случаях примешивается зелёный, но бывает что и чисто синий удается зажечь.. Самое интересное: я подключаю старое колечко и на нем этого глюка не отображается! Справедливости ради стоит сказать, что чип в светодиодах "китайских" и тех что я купил в наличии отличается, китайский меньше, но при этом ведет себя правильнее. Я знаю что есть некие WS2812b-v3 и WS2812b-v5 и у них с просто WS2812b отличаются тайминги, но в Чип Дип я выбрал именно обычные, фото для сравнения: Приведу код инициализации аппаратного SPI в Atmega8, а так же функции для отправки данных на WS2812b: Помогите пожалуйста разобраться, где собака зарыта?
×
×
  • Create New...