LEVV2006

Members
  • Публикации

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

  • Посещение

  • Дней в лидерах

    1

Последний раз LEVV2006 выиграл 17 марта 2015

Публикации LEVV2006 были самыми популярными!

Репутация

118 Хороший

О LEVV2006

  • Звание
    Постоялец
  • День рождения 10.11.1990

Контакты

  • Skype
    LEVV2008

Информация

  • Пол
    Мужчина
  • Город
    Москва

Электроника

  • Стаж в электронике
    Не связан с электроникой
  • Сфера радиоэлектроники
    Микроконтроллеры, Усилители НЧ
  • Оборудование
    Matrix MOS-620CH
    Aoyue Int968A+
    DT860B+

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

3 685 просмотров профиля
  1. Вопросы От Начинающих По Мк

    Я смотрел в даташит. TCCR1 – Timer/Counter1 Control Register Bit 7 – CTC1 : Clear Timer/Counter on Compare Match When the CTC1 control bit is set (one), Timer/Counter1 is reset to $00 in the CPU clock cycle after a compare match with OCR1C register value. If the control bit is cleared, Timer/Counter1 continues counting and is unaffected by a compare match. Бит 7 - CTC1: очистить таймер / счетчик на совпадении Когда бит управления CTC1 установлен (один), таймер / счетчик 1 сбрасывается до $ 00 в такт ЦПУ после сопоставления сравнения с регистровым значением OCR1C. Если бит управления очищен, таймер / счетчик 1 продолжает подсчет и не влияет на сравнение. В общем если код такой TCCR1 |= (1 << CS12); //делитель 256 TCCR1 |= (1 << CTC1); //сброс по совпадению OCR1C = 0b00001010; //число для сравнения TIMSK |= (1 << OCIE1A); //прерывание по совпадению То прерывание срабатывает. Не знаю почему но срабатывает! Единственное мне кажется срабатывает оно не корректно так как в стимуляторе флаги OCF1A и OCF1B включаются и выключаются хаотически. Кроме того не совсем корректно работает счетчик. Он может увеличится не на один бит а сразу на 2-3 бита что мне кажется так быть не должно. Если написать код так TCCR1 |= (1 << CS12); //делитель 256 TCCR1 |= (1 << CTC1); //сброс по совпадению OCR1A = 0b00001010; //число для сравнения OCR1C = 0b00001010; //число для сравнения TIMSK |= (1 << OCIE1A); //прерывание по совпадению То все работает корректно и логично (в стимуляторе). Прерывания срабатывают, флаги устанавливаются, счетчик сбрасывается. Если я что то не так пишу то пожалуйста подправьте.
  2. Вопросы От Начинающих По Мк

    Привет! Есть небольшой прогресс. Первое что я сделал это удалил atmel studio7 и поставил atmel studio6.2 и произвел настройку " mask interrupts while stepping" как посоветовал Tokes. Теперь при пошаговом выполнении кода и срабатывание прерывания указатель перемешается на прерывание. Теперь касательно Attiny85. Тот код что я показывал ранее рабочий и прерывание срабатывает но таймер при этом не сбрасывается. Долго искал и вот что выяснил. Есть 3 регистра для сравнения OCR1A,OCR1B,OCR1C *Бит CTC1 установлен OCR1A - когда OCR1A=TCNT1 То срабатывает флаг прерывания, происходит прерывание но таймер считает дальше. OCR1B - Я пока не понял зачем он нужен. OCR1C - когда OCR1C=TCNT1 То срабатывает прерывание и счетчик сбрасывается. Единственное что пока не понятно это настройка TIMSK-OCIE1A. Эта настройка разрешает прерывание при совпадении OCR1A=TCNT1 но при этом OCR1A можно вообще не использовать в коде и никак не настраивать а прерывание будет срабатывать на OCR1C.
  3. Вопросы От Начинающих По Мк

    Я так с начало и делал. И ваш код правильней! Но! В симуляторе при отработке кода построчно не удается отследить работу программы. Как только строка попадает цикл while симулятор перестает работать и показывать значения битов. Из за этого мной было принято решение написать программу так как она есть.
  4. Вопросы От Начинающих По Мк

    1) Под форматированием я подразумеваю его выравнивание относительно фигурных скобок. А то получается строчки кода идут одна под другой и код становится не читабельным. 2) Я не уверен правильно ли я задал настройки таймера так как судя по симуляции в студии счетчик продолжает счет, а не сбрасывается. 3) Тогда прошу пояснить почему а Студии одно а в описание к микросхеме другое? Или где я что не понимаю. 4) Вопросы были. А вот ответ ставит вопросы об адекватности. Ну де ладно. В интернете многое что написано о таймерах. Но все примеры для atmega8 и старше. С Attiny85 немного другие настройки.... Вот я и засомневался. Кроме того вчера после написания сообщения на форум решил ещё поковыряться с кодом. Заметил что в симуляции пин все таки переключается только по какому то странному принципу. И когда я выполняю код построчно то почему то указатель не переходит в код с прерыванием. Это странно.
  5. Вопросы От Начинающих По Мк

    Привет! Мне потребовалось написать насложную программу по управлению реле. Решил в данном проекте попытаться слесть с Arduino и написать код на C. Для реализации проекта мне нуцжно написать подобие фукции millis(). Стал изучать как это можно сделать и понят что сначало надо поморгать лампочкой используя таймер Вот с этим то и возникла проблема! 1) Я целы вечер на это убил НО найти не смог. Как в atmel studio7 сделать форматирование кода!!!!??? 2) Код работать не хочет. #define F_CPU 8000000 #include <avr/io.h> #include <avr/interrupt.h> #define Led (1<<PB3) int i = 0; ISR (TIMER1_COMPA_vect) { if (i == 0) { i = 1; } else { i = 0; } } int main(void) { TCCR1 |= (1 << CS12); //делитель 256 TCCR1 |= (1 << CTC1); //сброс по совпадению OCR1A = 0b00010010; //число для сравнения TIMSK |= (1 << OCIE1A); //прерывание по совпадению DDRB = 0; //все ноги МК на вход DDRB |= Led; //пин светодиода на выход sei(); //разрешить прерывание while (1) { if (i == 0) { PORTB |= Led; //включить светодиод } else { PORTB &= ~Led; //выключить светодиод } } } Я пока плохо понимаю как настраивается таймер. Особенно сложно дается выбора делителя и подсчет частоты..... МК у меня Attiny85. Но пока симуляцию кода провожу в студии. Непонятка по таймерам. В даташите говорится что у Attiny85 2 таймера и оба по 8 бит. А вот в студии указано что один 16 бит а второй 8 бит...
  6. Обсудить эл.схему ЦАПа на РСМ2702

    Не обижайся, но кажется тебе стоит начать с чего то полегче (как вариант с того же усилителя на твоей схеме) В итоге у тебя будет просто несколько плат в одном корпусе. Я как то тоже хотел объединить цап, усилитель, и плату управления. Все развел, проверил, даже залил одну сторону платы землёй! Но результат меня расстроил. Были шумы по земле и печатку пришлось выкинуть (заказывал её на производстве).
  7. Обсудить эл.схему ЦАПа на РСМ2702

    Если разведешь земли неправильно то будут шумы. Я надеюсь ты это понимаешь. Если будешь разводить плату по схеме выше то уже возникают проблемы. Самая явная из них это 2 транса. Только на цап требуется 2 транса!
  8. Обсудить эл.схему ЦАПа на РСМ2702

    Усилитель отдельно цап отдельно! Все вместе не собирай!
  9. Мне понравилась ваша идея! Но что сделано то сделано Я надеялся что кнопка будет не так выделаться на черном фоне только и всего. Кроме того нужно исходить ещё от внутренней конфигурации платы! Размер платы 10х10х5,5см размер внутреннего пространства коробки 11х11х6см. Там места вообще нет
  10. Я прислушаюсь к замечаниям по поводу кнопки. Большое спасибо! Мне понравилась идея с антивандальной кнопкой. Я совсем забыл, что такие есть…. Надо будет заказать с алиэкспрес парочку для изучения. Что касается Attiny. Объясняю. Цап на PCM2702 я уже собираю в 3 раз. И только с 3 попытки получилось добиться правильной его работы. Основная идея в 3 версии это питать цифровую часть от USB. Я надеялся тем самым избавиться от зависания цапа при помехах из сети питания (это было в первых двух версиях). Мне казалось, что при появлении помехи сбивалось тактирование цапа и он не успевал вовремя ответить на запрос от ПК и зависал. Я не могу сказать, что это было зависание. Так как ПК видел цап но он не играл. Я делал несколько поделок для на USB (это кнопка и индикаторы) и там я наблюдал такую же картину. В общем эксперимент был в питании цифровой части от USB + совершенно иная разводка земли. Мне кажется она тоже сыграла ключевую роль в стабильности работы. И как небольшой + это 1 трансформатор J При тестировании схемы выяснился один момент. На цап сначала должно податься аналоговое питание, а потом цифровое. Если будет иначе цап работает с сильными помехами. Кроме того, хотел реализовать такой алгоритм свечения светодиода. «Когда подключено любое из питаний горит желтый, когда включено оба питания горит зеленый.» Сначала я реализовал весь этот алгоритм (светодиод и последовательность питания) на рассыпухе. Но так как места на плате мало (плата 10х10см) решил все сделать на МК. И места меньше занимает и МК этих у меня штук 20. В целом алгоритм такой. При включении любого одного питания горит жёлтый светодиод. Когда включено все питание то выдерживается небольшая паузе и через реле подается цифровое питание на цап + подключается линия D+ и ещё одним реле подключается выходной разъем, загорается зеленый свет на индикаторе. Кому-то покажется это лишнем и можно сделать все проще, но мне хотелось сделать именно так. Теперь для тех, кто хочет повторить или взять мою печатку за основу. Я хочу порекомендовать вам кое-что изменить в печатке и опробовать. 1) Отказаться от трансформатора и сетевого фильтра на плате. Он создает дополнительные помехи. (Мне повезло шумов я не слышу) Но по хорошему их надо держать в стороне от платы. 2) Отказаться от цифрового питания от USB. На место где трансформатор поместиться хороший БП для цифровой части (Его сделать по аналогии как для аналога). Тем самым избавимся от МК и питание на цапе будет появляться синхронно. Землю Цифрового БП в общую точку отдельной дорожкой. 3) Поскольку МК не будет нужна небольшая схема управления выходной релюхой. Вот как я вижу модернизацию платы для простого в повторении цапа. Естественно по деталям. Конденсаторы в БП Джимикон, пленка Wima (Обязательно!), Выходные конденсаторы Панасоник (Название сейчас точно не скажу), Подбор 1% резисторов на цифровым мультиметром. От себя добавлю. Я бы попробовал бы сделать плату с этими улучшениями, но пока мне нет желания. Нужно передохнуть от этого проекта цап вар 3.lay6
  11. Сама коробка не пластиковая! А металлическая! С кнопкой согласен. Металлическая кнопка смотрелась лучше но где её найдешь? В основном пластик а в металле только тумблеры которые ставить не очень хотелось.... Кнопки размещаю только спереди! Так мне удобно.
  12. Привет ВСЕМ!!! Что то редко стали выкладывать фотографии своих работ. Надеюсь это не надолго . Чтобы разбавить это затишье добавлю и я свой наконец то завершенный долгострой. ЦАП на PCM2702!!! Для любителей внутренностей Схема Скажу о звуке только одно. ОН потрясающий!!! А ОУ LM6172 даёт очень хороший бас! При максимальном усилении усилителя шумов нет, а также цап не зависание при подключении\отключении мощной нагрузки в туже розетку. Я очень доволен PCM2702! Хороший и простой цап! Советую в качестве первого цапа! Хочу выразить огромную благодарность за помощь и консультацию в этом проекте Товарищу telemaster2007!
  13. Вопросы От Начинающих По Мк

    Я никого не обсираю. Просто говорю о том что скаченная программа по не понятным на данный момент причинам не в состоянии работать в режимах -O1, -O2, -O3, -Os, -Ofast. Я у вас спрашивал: встречалась ли у кого ни будь такая проблема или есть ли какие ни будь дополнительные настройки по этой тема. Никто не ответил. Делаю вывод что что то криво встало но не выдает ошибок. Самое странно то что это уже было где то год назад на версии 6,2. И с другой стороны. Возьмём совершенно другую программу. Скачали-разархивировали (установочник не нужен) и она сразу работает! Что ещё надо для человека?. Да. Есть защита от дурака. Но как показала практика можно и на С писать не напрягаясь. И получишь те же объемы в прошивке. В общем чтобы устраивать срач. Программируем на том что удобно и корректно компилирует! Спасибо что помогли! Буду пробовать дальше писать программы. Может быть в дальнейшем мне удастся победить Студию.... Уж больно отладчик хорош
  14. Вопросы От Начинающих По Мк

    Расскажу что обнаружил. 1) Кажет МК у меня то ли не правильно настроен то ли испортился. Поставил другой (atmega8) и все заработало как часы. 2) avr studio 7 правильно компилирует только с отключенной оптимизацией. Размер прошивки Blink получается 1104 байта. 3) В arduino ide тот же Blink на языке wiring весит 728 байт 4) Если в arduino ide написать Blink на языке С. (Собственно я просто скопировал код из avr studio) то он весит 104 байта!!!!!!!!!!!! Это победа!!! avr studio 7-"на шаг позади" В общем буду писать в arduino ide на языке С и сразу лить прошивку в МК. Жаль что нет отладчика.