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

Поиск сообщества

Показаны результаты для тегов 'AVR'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
  • Радиоэлектроника для профессионалов
    • Автомобильная электроника
    • Питание
    • Ремонт
    • Системы охраны и наблюдения. Личная безопасность
    • Роботы и модели на ДУ-управлении
    • Световые эффекты и LED
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Металлоискатели
    • Автоматика
    • Электрика
    • Промышленная электроника
    • Измерительная техника
    • Мастерская радиолюбителя
    • КВ и УКВ радиосвязь
    • Радиопередатчики
    • Сотовая связь
    • Спутниковое ТВ
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Схемотехника для профессионалов
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
    • МК для начинающих
    • Arduino, ESP32, ESP8266, Raspberry Pi
    • AVR
    • STM32
    • PIC
    • ПЛИС
    • Другие микроконтроллеры и семейства
    • Алгоритмы
    • Программаторы и отладочные модули
    • Периферия и внешние устройства
    • Разное
  • Товары и услуги
    • Коммерческие предложения
    • Продам-Отдам, Услуги
    • Куплю
    • Уголок потребителя
    • Вакансии и разовая работа
    • Наши обзоры и тесты
  • Разное
    • Курилка
    • Сайт Паяльник и форум
    • FAQ (Архив)
    • Технический английский (English)
    • Личные блоги
    • Наши проекты для Android и Web
    • Корзина
    • Конкурсы сайта с призами
    • Вопросы с VK
  • Переделки ATX->ЛБП
  • Переделки разные темы
  • Киловольты юмора Юмор в youtube

Блоги

  • Твори, выдумывай, пробуй.
  • fant's блог
  • Ток покоя
  • Где купить велпатасвир, epclusa, velpanat, velasof, софосбувир в России по лучшей цене.
  • Китайские бренды видеокамер
  • Создание Маленькой Мастерской
  • Блог администрации
  • STEN50's блог
  • Изучение, наладка, исследование
  • MiSol62's блог
  • короткие записки по ходу дела
  • Программирование AVR и PIC блог
  • Стабилизированный выпрямитель тока ТЕС 12-3-НТ
  • Блог getshket
  • ТНПА
  • welder's блог
  • blog cheloveka loshadi
  • OPeX3's блог
  • Подводная робототехника
  • Сабвуфер и акустика.
  • Радиоуправляемая машина
  • Консультация психолога сексолога онлайн, психолог онлайн
  • Nokian блог
  • Оповещения Dermabellix Scam !! Не покупайте это !!!
  • Cheerful Boss' блог
  • Cheerful Boss' блог
  • VLAD1996B's блог
  • "Коллективное увеличение продаж"
  • Dudok's блог
  • "Коллективное увеличение продаж"
  • Goluboglazyi's блог
  • Прибор определяющий электролитический конденсатор на работоспособность.
  • Mosfet@'s блог
  • mazzi's блог
  • Лучшие компьютерные игры 2017
  • Marchenkokerya's блог
  • Заметки начинаущего аудиофила
  • Почти бесполезные проги
  • Светлый блог.
  • дядюшка Филин's блог
  • Дневники нуба
  • satyrn's блог
  • Люк. В погреб.
  • Фильм Дом Солнца
  • Светодиодная лента B-LED 2835-120 W белая негерметичная
  • Само-Реплицируещиеся Производственные Системы
  • Блог от Eknous
  • РВС's блог
  • Den_R's blog
  • РВС's блог
  • Чтото крутое и про криворукость
  • ekadom's блог
  • Проектирование любых чертежей
  • Lisovic's блог
  • Блог уже не юного радиогубителя
  • денди
  • eHouse
  • zaregan's блог
  • Схемотехника УНЧ с низковольтным питанием на примере приёмников фирмы Grundig
  • То, что в руки попало.
  • Блок питания водородного генератора и все что с ним связано
  • slava_va@mail.ru's блог
  • Блог alex123al97
  • slava_va@mail.ru's блог
  • параленое соединение КРЕНок или как сделать стабилизатор напряжения 24-12в
  • Свободная генерация Андрея Мельниченко
  • реобас
  • Модернизации системы впрыска на 555
  • помощь
  • Копии схем и печатных плат устройств попавшие ко мне
  • MBM75's блог
  • Буду
  • lagutai's блог
  • Мои проекты.
  • lagutai's блог
  • Трудовик
  • vOVK@'s блог
  • токарь-радиолюбитель
  • azlk3000's блог
  • Коллизия сингулярности
  • SmallAlex's блог
  • Вопрос по Цифровому усилителю мощности звука 2x12 Вт YDA138-E
  • bebulo's блог
  • Простейший макет станка термо-вакуумной формовки
  • Блог им. pryanic
  • peratronika
  • Zer's блог
  • MEDBEDb's
  • Гнездо кукушки
  • hiMiческий блог
  • luna_kamen's блог
  • Изучаем USI на основе сверхэкономичного прототипа
  • Алекс-Юстасу
  • SUBWOOFER.RU
  • kot sansher's блог
  • Поделки стареющего пионера
  • доброжелатель2's блог
  • Grig96. Полезные заметки.
  • Attiny 0-ой и 1-ой серии (Attiny817, 1614 и прочие)
  • pavlo's блог
  • MSP430FR
  • viper2's блог
  • Моя Электро Чинильня
  • Selyk's блог
  • VoltServis.ru
  • kpush's блог
  • OM3 на новых платах.
  • конни's блог
  • Электронный экстазёр "MASHKA".
  • ptimai's блог
  • noc functionalities
  • Sun kapitane's blog
  • ODEON AV-500
  • Sun kapitane's blog
  • Логика на транзисторах,диодах, счетние тригери на транзисторах
  • AleksandrBulchuck's блог
  • Качественные окна от производителя
  • KRALEX's блог
  • Javaman's projects
  • SeVeR36's блог
  • 3232
  • Пять копеек.
  • Az@t's блог
  • Индукционный нагрев
  • Схемы разных устройств
  • Кардшаринг SAT ТВ блог
  • PENTAGRID SAYS
  • Ещо раз о "Кощее 5И"
  • Игровые автоматы на официальном сайте
  • коллекционер
  • дямон's блог
  • Ламповый усилитель и акустика для озвучки семейных мероприятий
  • дямон's блог
  • tiosmutoutrup1971
  • Светомузыкальная установка для новачков
  • Лучшие игры для ПК скачать бесплатно
  • sqait's блог
  • Блокнотик
  • Gubernator's блог
  • Записки электрика
  • Полстакана
  • Vrednyuka
  • Интегральные микросхемы
  • grigorik's блог
  • Интегральные микросхемы
  • VMWare удобство и безопастность
  • Профсоюз обычных пользователей
  • rtfcnf's блог
  • Гидроэнергетика в России: отечественные гидроэлектростанции, типы и характеристики
  • VMWare удобство и безопастность
  • Лайфхаки от Кати
  • Kinh chong anh sang xanh gia re
  • ukabumaga's блог
  • АО "Диполь Технологии"
  • artos5's блог
  • блог
  • Kraftwerk's блог
  • 1
  • Kraftwerk's блог
  • Как выбрать точечный светильник?
  • мастерская ky3ne4ik'а
  • Работа с микроконтроллером Atmega8
  • Aronsky
  • Игорь Камский
  • Диммеры
  • 5В = 1,5+3
  • vitiv' блог
  • Ремонт цифровой панели прибора тойоты марк 100. Замена транзистора 36 ( SOT- 23 )PNP
  • Все СРО России
  • 300writers
  • Металлоискатель Tracker FM-1D3
  • Былое
  • Создание монстра "Blaster 8920"
  • 2Smart Cloud Blog
  • EmmGold's блог
  • 2Smart Cloud Blog
  • ivan15961596's блог
  • Кумир у-001
  • ivan15961596's блог
  • My blog
  • Интернет радио в машину
  • SamON
  • Помогите люди добрые
  • AI
  • Помогите подключить маяк 231 стерео.
  • Гаусс-пушки
  • Название
  • 7400's блог
  • Как я собирал свой первый импульсный источник питания
  • Віталік Приходько_130349's блог
  • Lithium ECAD - российская САПР печатных плат
  • Евгений Малюта's блог
  • ПИшу свои мысли
  • werekpro
  • Venera Electronica
  • afurgon's блог
  • Выбросьте это в парашу!
  • odaplus' блог
  • Zvik's блог
  • Smart overload protection power amplifier «Zita (Z) ThermalTrak™»
  • радиоэлектоника
  • BoBka777's блог
  • МиУЗР - Модернизация и Усовершенствование Звуковой Радиотехники .
  • aleksey9900's блог
  • Лабораторная блок питания
  • Нашел статью о пайке проводов к светодиодов
  • Китайский городовой
  • Костик0's блог
  • УФ лампа для маникюра SK-818
  • 8 Contrasts Between Web Servers and Application Servers
  • Конденсатор
  • Новости, обзоры и другая полезная информация от ИМ "Радиодар"
  • Цветомузыка
  • OPeX3's блог
  • Sem2012's блог
  • это не хлам – это часть моей жизни
  • Контроллер на базе ПК (OS Win LTSC)
  • OdiS' блог
  • Хитрости строителя
  • aleksfil's блог
  • Color Preamp - предусилитель на лампах 12AU7
  • Проблема с зарядкой литиевого аккумулятора для шуруповерта 21 вольт
  • EmmGold's блог; AVR
  • Микроэлектроника
  • З
  • CH32V
  • Блог Плотникова Ильи
  • Бесплатные радиодетали с Алиэкспресс
  • Повышение качества и снижение временных затрат при испытаниях электронных компонентов с помощью отечественного испытательного оборудования
  • Источники питания MEAN WELL
  • Жизнь и рыбалка
  • yureika's блог
  • Глушитель спутникогого интернета
  • Всякая всячина
  • Для начинающих
  • Ignite your senses with the grace and allure of female escorts near Laguna Niguel
  • Fumitox's блог
  • Наш-RXT6 топ-10 на январь 2023: Лучшие сайты онлайн казино в России
  • Лицензионные казино онлайн в 2024 году на реальные деньги
  • Самоделки блог
  • Домашняя автоматика
  • Интересное и полезное
  • Ремонт Амфитон 35у-101с
  • ульян's блог
  • Свет в грузовой газели
  • Блок питания 0-12В для начинающих
  • Dimko's блог
  • Иван Самец's блог
  • SolomonVR's блог
  • gendzz's блог
  • fleh138's блог
  • Электроника forever!
  • aleksejhozhenets' блог
  • aleksejhozhenets' блог
  • diserver блог
  • aleksey290476 блог
  • ВАРГ's блог
  • Люстра Чижевского
  • wanes101's блог
  • voldemar2009's блог
  • Jana's блог
  • Jana's блог
  • Рена Искужин's блог
  • abduraxman7's блог
  • Kuzumba's блог
  • Самопальник
  • заработок через интернет на запчасти!!!
  • electric.kiev's блог
  • lolo's блог
  • leravalera's блог
  • ideomatic's блог
  • приглашаем на работу инженера-радиоэлектронщика
  • FREEMAN_77's блог
  • Блог автоэлектрика
  • Блог начинающего электронщика
  • Dersu's блог
  • Электроэнергия и её экономия!
  • Электроэнергия и её экономия!
  • Семён Ковалёв's блог
  • piligrim-666's блог
  • помогите с партотивной калонкой
  • помогите с партотивной калонкой
  • Музыка в стене.
  • m-a-r-i-k-a's блог
  • cosmos44's блог
  • oyama14's блог
  • блог Виталика!
  • ciornii's блог
  • Великий и Ужастный блог
  • Denis__Ricov's блог
  • Universal12's блог
  • Sprut's блог
  • Alexeyslav's блог
  • cosmosemo's блог
  • Заметки радиолюбителя
  • Falconist. Мемуары
  • Блог MillyVolt
  • усилитель импульсов
  • Panasonic sa-ak 18
  • Простое радиоуправление из того, что было.
  • 35house
  • Блог Радиочайника
  • Блохи iiiytnik'a
  • Хороший сервис- Бяка
  • Аудиолаборатория "Философия Звука"
  • ОколоCADовое
  • Блог KVLADS
  • Короп блог
  • Автоматизация котла Protherm MTV
  • Бложиг Касянича
  • Обо всём
  • Эксперимент
  • No electronics
  • ПРИРОДА СВЕТА и ЕГО ВОЗМОЖНОСТИ
  • Генератор на xr2206
  • HTPOWLASER
  • Когда-то были очень популярны у радиолюбителей
  • AVR - микроконтроллеры
  • Микроконтроллер
  • Самодельный автосимулятор
  • Интернет-магазин керамической плитки «Боярская Плитка»
  • Разработка электронных метрических мишеней IPSC для мягкой пневматики (страйкбол)
  • ,

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


Skype


ICQ


Интересы


Город


Сфера радиоэлектроники


Оборудование

  1. Duhas

    Примеры кода для AVR

    Здесь будут помещаться различные примеры кода и прочего обсуждаемого в других темах. Также скидывайте сюда любую полезную информацию по AVR микроконтроллерам Он-лайн книга: "Книга по программированию микроконтроллеров AVR (ассемблер)" Atmel AVR4027: Tips and Tricks to Optimize Your C Code for 8-bit AVR Microcontrollers: Atmel AVR4027 (Оптимизация кода от Atmel).pdf
  2. Уважаемые форумчане, всех с праздниками! Пытаюсь использовать АЦП AVR в режиме периодического автозапуска от таймера. Код пытается работать, опрос АЦП осуществляется, но почему-то ровно 2 раза, а не до бесконечности, как планировалось. После этого код висит в вечном цикле (проверял, тестовый код в вечном цикле корректно выполняется), а прерывание АЦП не вызывается более 2 раз. Тестирую на ATmega16, тактовая частота 4МГц, на входе потенциометр, результат наблюдаю в программе-читалке COM-порта. По задумке должно возникать событие Compare Match B таймера 1 с частотой 2Гц (проверял, возникает c нужной частотой), которое автотриггерит АЦП, запуская прерывание АЦП по окончанию преобразования (запускается, но ровно 2 раза, если жать на Reset, то снова 2 раза и дальше тишина до Reset), в прерывании АЦП результат отправляю по UART (результат корректный, по UART доходит) Использую Microchip Studio 7.0, оптимизация отключена. Помогите, товарищи! Сломал всю голову, скурил весь даташит, ничего не понимаю! Возможно, глаз замылился, но не настолько же! Четвертые сутки бьюсь с простеньким, вроде бы, кодом ( Код ниже: #include <avr/io.h> #include <avr/interrupt.h> void init(); void uart_init(); void timer1_init(); void adc_init(); void uart_send( char x ); ISR( ADC_vect ) { uart_send( ADCH ); } int main(void) { init(); while (1){} } void init() { uart_init(); timer1_init(); adc_init(); sei(); } void uart_init() { UBRRL = 25; // 9600bod at CLK = 4MHz UCSRB = 1 << TXEN; } void timer1_init() { OCR1A = 31250; OCR1B = OCR1A; TCCR1B = ( 1 << WGM12 ) | ( 1 << CS11 ) | ( 1 << CS10 ); // /64 2Hz at CLK=4MHz } void adc_init() { ADMUX = ( 1 << REFS0 ) | ( 1 << ADLAR ); // PA0, AVCC, PA0 SFIOR = ( 1 << ADTS2 ) | ( 1 << ADTS0 ); // COMPB ADCSRA = ( 1 << ADEN ) | ( 1 << ADSC ) | ( 1 << ADATE ) | ( 1 << ADIE ) | ( 1 << ADPS2 ) | ( 1 << ADPS0 ); //COMPB, ADCclk=125kHz } void uart_send( char x ) { while ( !( UCSRA & ( 1 << UDRE ) ) ); UDR = x; } main.c
  3. Сайт Паяльник открывает обучающий видеокурс по AVR-микроконтроллерам. В этой теме "обратной связи" будем постепенно добавлять новые видеоролики с нашего канала. Здесь можно задавать вопросы, давать рекомендации, критиковать, оставлять отзывы и пожелания, а также запросы на тему будущих видеоуроков. Ведет видеокурс наш форумчанин kobzar. Профиль пользователя на сайте cxem.net. Там же финансовые реквизиты для тех, кто пожелает финансово отблагодарить автора данного видеокурса Подписка на YouTube канал Краткий обзор сред разработки для различных микроконтроллеров на сайте: http://cxem.net/software/soft_mcu.php Внимание начинающим! Перед тем, как задавать вопросы не по теме видеоуроков, прочитать: Статьи по МК для начинающих Книга по программированию микроконтроллеров AVR Также, здесь же на форуме рядом с этой темой смотрите прикрепленные темы: для начинающих, по языку Си и т.д. Все вопросы не по видеокурсу задавайте только там. С этой темы подобные вопросы удаляются Кракозябры вместо русских букв Ребята - спешу сообщить что найден метод борьбы с кракозябрами вместо русских символов, при работе с ЖК. Дело в том, что у некоторых из вас, проект создается в кодировке UTF-8, а наша библиотека работает только с ср1251 Фикс: 1.Открываем проект 2. File - Advanced Save Options 3. Вместо кодировки UTF-8 выбираем Cyrillic(Windows) - cp1251 Сохраняем, сохраняем проект - компилируем! Добавлено 12.01.16 : Изменённые версии библиотеки lcd_5110 : От COKPOWEHEU - Ссылка на пост , Ссылка на github
  4. bepis666

    Attiny85 проблема с USI I2C

    Прошу помощи в реализации интерфейса I2C на Attiny85 в режиме ведомого. Проблема в следующем: При срабатывании прерывания по переполнению счетчика, в регистре данных USIDR оказывается полученный байт сдвинутый влево. Код тестировал в Proteus. На скриншотах показана ячейка памяти 2F, которой соответствует регистр USIDR. На первом скриншоте отправляется 0x00, в USIDR оказывается 0x01; на втором скриншоте отправляется 0x01, в USIDR - 0x03. Думал проблема в симуляции, но нет. Тестировал в железе - то же самое. Заранее благодарю! Код: // Инициализация I2C интерфейса void i2c_init() { // Настройка интерфейса USI на режим TWI USICR |= (1<<USIWM0); USICR |= (1<<USIWM1); // Настройка интерфейса на источник тактирования USICR &= ~(1<<USICLK); USICR &= ~(1<<USICS0); USICR |= (1<<USICS1); // Выставление пинов интерфейса на вход // SDA DDRB &= ~(1<<0); PORTB &= ~(1<<0); // SCL DDRB &= ~(1<<2); PORTB &= ~(1<<2); // Включение прерывания по старту и очистка флага прерывания USICR |= (1<<USISIE); USISR |= (1<<USISIF); } // Прерывание по старту ISR(USI_START_vect){ while( (PINB & (1 << PIN_SCL)) && (!(PINB & (1 << PIN_SDA))) ); // Очистка регистра статуса USISR |= (1<<USISIF); // Включение прерывания по переполнению USICR |= (1<<USIOIE); } // Прерывание по переполнению счетчика ISR(USI_OVF_vect){ uint8_t i2c_byte = USIDR; *pwm_0 = 0; if (i2c_byte>=1){ *pwm_0 = 250; } if (i2c_byte==1){ *pwm_0 = 100; } USISR |= (1<<USIOIF); // Сброс флага прерывания по переполнению USISR = 0; // Сброс счетчика }
  5. Извечный вопрос не дает покоя. Кто и на чем все же предпочитает вести работу с контроллерами? Лично я как научился работать на С, так и не могу перейти на Assembler, да и не очень то хочется это делать. Какие все же преимущества и недостатки, окромя понятности и не очень понятности?
  6. В протеус 8 есть такой компонент I2CSLAVE. Интересует, может кто работал с ним или знает где есть его описание. При попытке подключить его и использовать как приёмник I2C ведёт себя неадекватно, например происходит короткое замыкание по входу адреса и входу данных, хотя это входы, а не выходы. Может кто имел опыт работы с данным компонентом и может поделиться результатами?
  7. Что же такое FUSE биты? Слова вроде бы знакомые, но многие толком и не знают их предназначение, ставят галочки и прошивают, работает устройство да и ладно. Я вам хочу рассказать немного про эти FUSE биты. FUSE биты (фьюзы) – ну если по простому, то они настраивают определенные параметры микроконтроллеров, это некий инструмент для их тонкой настройки Фьюзы включают или настраивают такие параметры как: - частота генератора, внешний или внутренний генератор - запрет на чтение прошивки микроконтроллера - включение или выключение таймеров - деление частоты кварцевого генератора - защита EEPROOM от стирания …и так далее. У каждого микроконтроллера выставляются свои фьюзы, у разных микроконтроллеров разный список фьюзов, например в ATmega8 нет фьюза CKOUT, но он присутствует в ATtiny2313. В даташитах к микроконтроллерам все эти фьюзы расписаны. Читать далее: Фьюзы микроконтроллеров AVR – как и с чем их едят Устройство оживления микроконтроллеров Atmel Исправление фузов AVR SinaProg + ATmega328P исправляем прошивку фьюзов Темы на форуме: Fuse Doctor не определяет пациентов Lock Bit или что может быть хуже Начал собирать металлоискатель. Все спаял - дело осталось за малым - прошить ATTiny 2313. Но чего-то я никак не пойму, какие надо фьюзы выставлять? Для тактирования от внешнего генератора, я так понимаю, надо выставить: CKSEL=F (1111) CKDIV=1 Вот то, что программатор считывает с контроллера. Теперь вопрос: где нужно выставить/убрать галочки? (программа - UNIPROF)
  8. Писал недавно программу на ассемблере для ATMEGA128 и столкнулся с неприятной особенностью. Обычно для ATTINY2313 или ATMEGA8, для небольших программ при вызове подпрограмм, хватает команды RCALL, но у неё ограничение по дальности вызова подпрограмм, поэтому применил команду CALL. Хотел узнать, между этими двумя командами есть ли разница, кроме дальности вызова подпрограмм, и если нет разницы, зачем две команды, почему нельзя обходится одной командой CALL?
  9. Всем доброго времени суток! в поиске не смог найти инфо, поэтому создал тему, не ругайте, если ошибся с веткой. Идея следующая, есть автомагнитола deh-3600MP c выходом Ip-bus.Хочу подружить магнитофон с мп3 плеером (есть от фм-трансмиттера, завтра куплю платку отдельного мп3). Сразу подчеркну, что хочу управление плеером (треки, теги, пауза и т.д) с головного устройства. предполагаю схему так: ip-bus - avr - mp3 player. алгоритм avr-mp3 несложен и открыт, а вот описание протокола ip-bus нигде нет, форум витат.спб уже изучил, есть кусок кода работы авр и ip-bus, но не очень понятно, может подскажете набор команд ip-bus или что происходит по событию нажатию кнопки вперед/назад. Заранее благодарен.
  10. Всем здрасти! Пытаюсь подружить драйвер дисплея SSD1306 и ATMEGA328p с использованием i2c. По даташиту после каждого байта данных или команды, SSD1306 должен генерировать бит подтверждения, но после отправки первого же пакета с командой ни "Acknowledge" ни "Not Acknowledge" бита не получаю, симуляция будто зависает. Подскажите пожалуйста может я что не так сделал? Может проблема симуляции? Код .include "m328PBdef.inc" .def buff = r16 .def message = r17 .def iter = r18 .equ adressW = 0b01111000 .cseg .org 0x0000 jmp restart .org 0x001A jmp tim1_ovf_isr .org 0x0030 jmp twi_isr restart: ldi buff, high(RAMEND) out SPH, buff ldi buff, low(RAMEND) out SPL, buff ; twi init ldi buff, 0b1100 sts TWBR0, buff ldi buff, 0b0 sts TWSR0, buff ; timer\counter init ldi buff, 0b100 sts TCCR1B, buff ldi buff, 0b1 sts TIMSK1, buff ; global interrupt enable sei ; main routine main: jmp main ; timer 1 - 16bit overflow isr tim1_ovf_isr: ldi buff, 0b10100101 sts TWCR0, buff ldi buff, 0b0 sts TCCR1B, buff ldi buff, 0b0 sts TIMSK1, buff reti ; twi isr twi_isr: lds buff, TWSR0 andi buff, 0b11111000 cpi buff, 0x08 breq twi_start cpi buff, 0x18 breq twi_slaw_ack cpi buff, 0x28 breq twi_data_ack reti ; twi_start: ldi buff, adressW sts TWDR0, buff ldi buff, 0b10000101 sts TWCR0, buff reti ; ; twi_slaw_ack: ldi buff, 0b10000000 sts TWDR0, buff ldi buff, 0b10000101 sts TWCR0, buff reti ; ; twi_data_ack: ldi buff, 0xA5 sts TWDR0, buff ldi buff, 0b10000101 sts TWCR0, buff reti SSD1306-Revision 1.5.pdf
  11. Karl-Ieronim

    VU meter на ATMega328

    Коллеги, всем привет. Увидел вот такой проект. Несмотря на явную привлекательность что-то совсем мало повторивших. Может кто-то из завсегдатаев форума делал этот проект? Интересует ваше мнение: хочу повторить, но не силен в программировании, поэтому беспокоюсь на счёт подводных камней с которыми не смогу справиться.
  12. Доброво времени суток, подскажите,пожалуйста,как мне меняя значение переменной "а" задавать длительность задержки. При выполнении компилирования выдаётся следующая ошибка.
  13. добрый день исходные: отлаживаю "библиотеку" на си - передача данных по 2м проводам (wiegand): - импульс D0 -> получили "0" - импульс D1 -> получили "1" будет использоваться неск. экземпляров RFID-датчиков, поэтому планирую сделать вообще без "механизмов блокировки". в прерывании только устанавливаются флаги, все остальное делается в основном цикле. в силу "обстоятельств" (унаследовано с прототипа) подключение пинов данных D0/D1 - на разных портах (по идее это не проблема, на ардуиновском "тестовом скетче" с таким-же расположением пинов - rfid-карта читается без проблем, но, походу, конечно протестирую еще и "все на одном порту") текущий код на си. читает карту, но с особенностями. к основному номеру карты (в старший разряд) добавляется еденица и последний (младший) разряд, соотв. обрезается. для отладки по шагам вместо "виганда" подключил две кнопки (c rc-цепочкой, сигналы нормальные, дребезг отсутствует, кнопок много, менялись/проверялись) выяснилось (в отладчике): - импульс на D0 - прерывание срабатывает 1 раз и далее все "печенькой" :о) - импульс на D1 - прерывание срабатывает 3 раза 1й раз - все по делу, "на падение сигнала", как и должно быть 2й раз - не по делу, "на подьем" (возвращение кнопки обратно), причем 2раза подряд и еще для "запуток" - при чтении (без отладчика, напрямую) только одна, самая первая, неправильная 1-ца добавляется в начало (в старший разряд) а далее серийник читается правильно. порты D0/D1 инициируются на вход, включается подтяжка, ни чего особенного.код, выкусы (упрощенка) кода: // // структура (выкус) // struct struct_Wiegand { TPinOut d0; // D0 пин TPinOut d1; // D1 пин uint8_t volatile data_flag[2]; // два флага на сработку D0/D1 ... }; typedef struct struct_Wiegand TWiegand; extern TWiegand* lst_rfid[RFID_NUM_DEV]; // список указателей на структуры // // в теле реализации // TWiegand w1={ {PIOA,19}, {PIOC,18}, {PIOA,20}, 0, {0,0}, 0, 0 }; TWiegand* lst_rfid[RFID_NUM_DEV] = { &w1 }; // // регистрация/добавление обработчиков прерываний // механизм/список такой-же как в ардуино // isr_enb_port (lst_rfid[0]->d0.pio, lst_rfid[0]->d0.pin, isr_rfid0_D0, FALLING); // D0 isr_enb_port (lst_rfid[0]->d1.pio, lst_rfid[0]->d1.pin, isr_rfid0_D1, FALLING); // D1 // // обработчики // void isr_rfid0_D0() { lst_rfid[0]->data_flag[0] ++; } void isr_rfid0_D1() { lst_rfid[0]->data_flag[1] ++; } других инициализаций прерываний нет (отрубал все что можно). если закомментировать строку вызова "добавления прерывания" для D1, то прерывание на D1 не срабатывает подобрал ссылки "околотемы" URL1 URL2 URL3 URL4 URL5 URL6 пока буду изучать ссылки, доки, даташит пинайте, кидайте помидоры, идеи, ссылки, все что угодно! можно просто побалагурить по теме! :о) спасибо.
  14. Alex Ferrum

    AVR Studio portable

    Есть ситуация когда пишу код для AVR на ассемблере, на компьютере, где у меня нет админских прав, то есть устанавливать программы на этом компьютере я не могу. Использую протеус восьмой, portable версию, она позволяет писать программы на ассемблере. Но хотелось бы что-нибудь подобное AVR Studio 4.19 в portable версии. Прошивать контроллер на этом компьютере мне не нужно, нужен .hex файл для симуляции в протеус. Что можете посоветовать товарищи.
  15. RIMUS1989i

    Анализатор спектра LED

    Здравствуйте. Затеялся собрать анализатор спектра на светодиодах, 20x20 светодиодов, МК ATMEGA328P. Долго ломал голову, как переключать столбцы без использования МК, дабы его не загружать.И вот что у меня получилось. Набросал тестовую прошивку для теста в протеусе. При инилизации подается импульс на вторую ножку U4a, и на предпоследнем столбце. Думал сетку сделать на 5 сдвиговых регистрах (как раз 40 сигнальных линий), но боюсь мощности МК не хватит для обработки FFT и вывода на матрицу, будет подвисать. Кто что думает по поводу схемы? бегущая строка.pdsprj Natali_2012_program.hex
  16. Прикупил тут пару дней назад в платане несколько контроллеров ATMEGA128A, подключил по последовательному интерфейсу к программатору - не работает, оказалось нужно припаять кварц, установлены фьюзы на работу от внешнего кварца. Ничего не пойму, контроллеры в заводской упаковке, в ленте, хотя написано не Microchip, а Atmel, хотя первая уже давно поглотила вторую. Изначально фьюзы вроде как должны установлены на внутренний RC генератор, а не на внешний кварц??? Купил вот здесь: https://www.platan.ru/cgi-bin/qwery.pl/id=671468246 Цена неплохая, но предустановка фьюзов странная.
  17. Всем привет. Так получилось, что цифровой электроникой я занимаюсь уже более 5 лет (работаю с FPGA). Последний раз я программировал микроконтроллеры еще в университете, и с тех времен у меня в столе пылится десяток ATTiny13, которые были куплены на заре появления Aliexpress для простых университетских проектов. С тех пор многое поменялось: университет я закончил, магистерскую защитил, профессиональные интересы сместились в сторону FPGA и цифрового синтеза, но ощущение того, что я пропустил какую-то важную главу в электронике никуда не делись, а наоборот, только росли. Во время очередной инвентаризации моих закромов с электронными компонентами, я наткнулся на уже упомянутые ATTiny13 и решил, что пора закрыть этот гештальт. Понятно, что в 2022 году интернет полон руководствами того, как работать с микроконтроллерами AVR и более того, в современных реалиях, когда есть STM, возможно эти руководства уже никому и не нужны. Славные времена, когда Atmel был лучшим предложением за свои деньги, остались в прошлом, и только Arduino не потерял актуальности. Поэтому, я решил вести блог не столько ради того, чтобы кому-то что-то объяснить, сколько ради отслеживания личного прогресса и, возможно, обсуждения, если кому-то будет это интересно. Поехали. Как человек, который привык работать с красивыми фирменными отладочными платами, в какой-то момент я понял, что не хочу каждый раз тратить время на пайку макетных плат, а потом еще и искать где на ней отвалился провод. Было решено воскресить свои знания по работе в DipTrace: нарисовать схему, развести плату и отправить все это дело на jlcpcb. Стоит отметить, что до этого, я никогда не пользовался услугами китайских изготовителей плат и было немного боязно за возможность потерять время и деньги, но почитав в интернете про опыт других электронщиков я все-таки решил рискнуть (ну и на самом деле мне очень не хотелось "плескаться" в хлорном железе). После отправки архива с исходными файлами платы, китайский инженер-технолог прислал мне письмо, где указал на найденные им недостатки. Скажу честно, я был приятно удивлен таким сервисом. Замечания были исправлены, архив с исходниками был еще раз отправлен и все что мне оставалось - ждать. Пока я ждал платы, было решено обновить свои знания в программировании на С. Приобрел первую попашуюся книгу по С в ближайшем ко мне книжном магазине. Вот такую: Книга показалось мне удачной. Конечно, в ней ничего не рассказывалось про микроконтроллеры, но в целом чтобы вспомнить синтаксис языка - мне хватило. Таким образом прошел месяц подготовлений, а потом я получил заказанные мною платы. Если говорить о качестве, то он топ за свои деньги. Местами есть мелкие недочеты, но в целом жаловаться не на что. Как Вы могли уже обратить внимание, у меня было некоторое количество разноцветных PLS, и надо признать, после монтажа внешний вид у плат получился как минимум интересный. Т.к. моя основная операционная система на компьютере - linux, то мною были установлены avr-gcc компилятор и avrdude. При попытке вычитать ID микроконтроллера usbasp'ом, avrdude ругался на то, что вычитанный ID не соответствует ID ATTiny13. Проблема решилась снижением скорости на ISP установкой перемычки JP3 на программаторе. После успешного чтения ID была написана простейшая программа мигания светодиодами. Чтобы не заморачиваться со скриптами, было решено читать ID контроллера, компилировать прошивку и загружать ее во flash с помощью Makefile. Далее я поигрался с таймером, ШИМом и wachdog-таймером. Все исходники лежат на GitHub. Там же буду размещать другие примеры работ с АЦП и прерываниями, когда дойду до них. На этом пока завершаю свое повествование. video_2022-08-14_17-56-54.mp4
  18. добрый день надеемся на то, что вы своим опытом и знаниями поможете нам. заказали разработку контроллера (схема/печать/корпус/прототип) контроллер промышленный, будет использоваться в "грязной среде", с помехами, нужна соотв. защита контроллера, схемы, входов. схема и печать разработчиком сделана, сейчас разбираемся "что к чему". считаем, что некоторые моменты в схеме надо доработать, переписываемся с разработчиком, правим. уперлись в входную часть схемы, грозозащиту. у контроллера есть неск. типов входа - датчик "сухой контакт/концевик" (замыкатели/размыкатели) - датчик "виганд" (передача по сет.кабелю/RJ45) - сетевой интерфейс (передача по сет.кабелю/RJ45) схема контроллера запитывается от 12В (сетевой DC-DC) через изолированный DC-DC 12-3.3В т.е. имеется цифровая земля 3.3В / ARM-ядро (чистая) и грязная 12В + все, что "осталось" до преобразователем DC-DC 12-3В все датчики развязаны через "оптику" сетевой интерфейс тоже "как-бы развязан", чип запитывается от 3.3В, внешняя часть сет.модуля - RJ45 разьем и разделительный трансформатор ЗК - шина "заземление-корпус" (сокращение) сама по себе шина "ЗК" не предусмотрена разработчиком + корпус был подобран пластиковый. мы считаем, что эта шина необходима, плюс необходимо так-же на "грязную землю" поставить разрядники (не только на сигнальные) и сливать имненно на "ЗК" разработчик считает что сливать помехи можно прямо на грязную землю, в связи с чем разрядник устанавливает только на сигнальные входные цепи, а "земляные" (идущие в паре с сигнальным) - без разрядника, и использует "грязную землю" как "ЗК" на грязной земле у нас - входные сигнальные линии - "разделительная" оптика - индикаторные светодиоды - питание реле но тем не менее, мы считаем, что надо делать "правильно". ... пожалуйста, поделитесь вашим мнением на данную ситуацию если нужны более подробные описания, блок схемы, рисунки - спрашивайте. спасибо
  19. В связи со сложной политической обстановкой и санкциями последние пол года, как многие уже заметили цены на контроллеры ATTINY и ATMEGA резко подскочили. Соответственно есть дешёвые китайские аналоги, например, LGT8F328. К сожалению прграммируются они по интерфейсу SWD, программатором SWDICE mkll. Возникает вопрос: где данный программатор купить или может есть его клон, который можно спаять самому???
  20. Н_Д_А

    Передача по USART 9 бит (9N1)

    Всем привет). Может, кому-то эта статья сэкономит много времени и нервов. Недавно по работе встретился с интересной задачкой. Нужно было передать на железку по порту RS485 информацию для проверки работоспособности последней. Так как не всегда имеется в ремонте вся система, то для начала нужно было посмотреть, на заведомо исправной системе, что же там между ними (железками) передаётся. Логический анализатор показал что девайсы общаются по не совсем стандартному, а по 9ти битному протоколу (USART 9n1). А это усложняло задачу, так-так известные мне терминальные программы его не поддерживают. И без бубна не обойтись))). Начались поиски решения. Через некоторое время стало понятно, что AVR позволяет это делать и даже в даташите подробно это описывает. Дело за малым. Реализация задуманного))). Все регистры выставлены по документу………..Для Atmega8a. void USART_Init( unsigned int speed) //Инициализация модуля USART { UBRRH = (unsigned char)(speed>>8); UBRRL = (unsigned char)speed; UCSRB=(1<<RXEN)|( 1<<TXEN); //Включаем прием и передачу по USART UCSRB |= (1<<RXCIE); //Разрешаем прерывание при передаче UCSRA |= (1<<U2X); //удвоение скорости UCSRC = (1<<URSEL)|(1<<USBS)|(1<<UCSZ1)|(1<<UCSZ0); UCSRB |= (1<<UCSZ2); // Включаем 9bit режим // Обращаемся именно к регистру UCSRC (URSEL=1) // ассинхронный режим (UMSEL=0), без контроля четности (UPM1=0 и UPM0=0) // 1 стоп-бит (USBS=0), 8-бит посылка (UCSZ1=1 и UCSZ0=1) // если (UCSZ1=1 и UCSZ0=1 и UCSZ2=1) 9bit mode. // UCSRC |= (1<<UPM1);//четность } По даташиту передача 9го бита происходит установкой или сбросом TXB8. То есть, установили бит, передаётся 1 в старшем 9ом разряде, сбросили – 0. void USART_Transmit( unsigned int data ) // функция передачи 9ти бит из даташита. { /* Wait for empty transmit buffer */ while ( !( UCSRA & (1<<UDRE)) ) ; /* Copy ninth bit to TXB8 */ UCSRB &= ~(1<<TXB8); if ( data & 0x0100 ) //не понял, что они хотели этим сделать. UCSRB |= (1<<TXB8); /* Put data into buffer, sends the data */ UDR = data; } И вот незадача, числа размером до 1 байт передаются без проблем, а числа больше 0xFF (255) нет). А устройство передаёт числа до 510. Предлагаю решение. Может и не самое лучшее, но вполне работоспособное. int main(void) { USART_Init (103);//9600 //------------------------------------------------------------------------------------ while(1) { for (i=0; i<22; i++) { code_simbol = simbol[i]; //символ из массива //-------------------------------------отправка в UART-------------------------------- if (code_simbol > 255) { pr=1; // флаг передачи символа больше 0xff (255 десятичное) } else { pr=0; // флаг передачи символа меньше 0xff } USART_Transmit(code_simbol,pr);//собственно сама функция отаравки } } } А теперь и сама функция передачи . void USART_Transmit( unsigned char data, uint8_t prisnak ) //Функция отправки по USART { while ( !(UCSRA & (1<<UDRE)) ); //Ожидание опустошения буфера приема if (prisnak==1) { UCSRB |= (1<<TXB8); //устанавливаем для передачи еденицы в старшем разряде } else { UCSRB &= ~(1<<TXB8); //сбрасываем старший разряд } /* Put data into buffer, sends the data */ UDR = data; //Начало передачи данных asm volatile ("nop"); Соответственно если число для предачи мньше 256 мы передаём его при нулевом 9ом бите. Ну а если больше то 9й бит выставляем в единицу. А вот и результат.
  21. добрый день есть считыватель, подключается к Arduino-Due (проект не мой, "поднимаем" из того, что "было") для "нормального" сопряжения нужны схемы/схемотехника: - выходного каскада считывателя - входная схема (на стороне контроллера, хотя-бы к.л. рекомендованная) по понятным причинам 2я схема м.б. весьма и весьма "сложной и развесистой", но хотя-бы для ориентира, общая. обычно, я беру железо и "реверсирую" схему, но в данном случае не катит, т.к. считыватель залит компаундом, и "иних" нормальных/пром. контроллеров нет прямо срочно, нужна пока 1я часть, и если вики-схема корректна в плане схемотехники, то этого для начало достаточно тема длинных проводов, пром.электроники, шумов, наводок, гроз - не совсем моя, поэтому обращаюсь к спецам :о) понятное дело, в инете есть что почитать, но, без наработок/опыта этого не всегда достаточно. кидайте помидоры, идеи, ссылки, ключ.слова... буду благодарен :о) спасибо п.с. написал производителю, но, пока молчат ... :о) инет/гугль изчил... url1 url2 tag:avr,avr-gcc,arduino-due,rfid,weigand
  22. Здравствуйте. Я собрал схему для генерации звуков на AVR по материалам вот этой статьи на Хабре. Использовал ATMega328P. В этом проекте частота ШИМ 31250 Гц, так что я собрал фильтр - RC-цепь, где R = 510 Ом, а С = 0.1 мкФ приложил схему к посту (эти значения я рассчитал на предложенном в статье калькуляторе ШИМ-фильтров (приложил скриншот); нагрузкой поставил динамик с сопротивлением 8 Ом, на схему подал 5В питания с лабораторного БП. Я загрузил в микроконтроллер демо-код, который должен проигрывать последовательность звуков. Фьюзы, вроде бы, стандартные, но я на всякий случай приложил скриншот и с ними. В общем, проблема в том, что звук, который он должен воспроизводить звучит приглушенно, зато блин стоит какой-то монотонный писк, иногда почти скрип и вот он очень громкий. Я подумал, что проблема в неправильно рассчитанном фильтре или какой-нибудь наводке. Собрал их сто тысяч разных, но писк только приглушался вместе со всем остальным, когда я большие сопротивления ставил, а по частоте на слух не менялся(не уверен, должен ли был), хотя емкости я пробовал тоже очень разные. Я немного почитал код, попробовал отключить функцию подавления щелчка при сменах нот (это ничего не изменило). Код довольно сложный, чтобы пытаться всерьез искать там какие-нибудь ошибки, да и я подозреваю, что там их нет. Не могу понять в чем проблема уже пару дней. Возможно, кто-то уже собирал этот проект или что-нибудь подобное и сталкивался с таким? Подскажите, если так. Так же, я не уверен, может быть, проблема физическая и она в микроконтроллере, думаю стоит попробовать попробовать другой камень. Заранее спасибо.
  23. Здравствуйте. Возник ниже стоящий вопрос. Cуществующие технологии отладочных плат для AVR. Хотелось бы узнать больше об этом, но в интернете не нашел ничего дельного.
  24. Здравствуйте! Столкнулся со следующей проблемой: при сборке МД "Шанс" дошел до этапа прошивки МК, в итоге запорол 3 атмеги. Прошивал 3 способами: 1. Через Arduino UNO(As ISP) просто МК 2. Через Arduino UNO(As ISP) МК внутрисхемно(соответственно с обвязкой) 3. Через USB ASP внутрисхемно(с обвязкой соответственно). Вышло так, что в наличии кварца 11.0592 МГц не было, и я временно впаял 12 МГц. Прошил трижды всё правильно(фьюзы , контакты и т.д). После прошивки просто не видит МК (ну и плата не работает без МК.да и Бог с ней, но МК всеравно не могу считать). В чем причина понять не могу. Одно думаю, что это разница между 11.0592 и 12 МГц. Посоветуйте как решить проблему. Коды ошибок после прошивки во всех трёх случаях одинаковые: Sinaprog -invalid device signature Averdude -avrdude: warning: cannot set sck period, please check for usbasp firmware update target don't answer
  25. Всем привет. Ранее уже выставлял по ошибке фьюзы на тактирование с внешнего резонатора (Ext. Crystal Osc.), но тогда обошелся малой кровью, т.к. удалось затактировать "с пальца" и программатор хотя бы увидел камень. Но в этот раз поставил тактирование с внешнего сигнала (Ext. Clock), и фокус не удался. Программа крутится, светодиоды моргают, а комп не видит. С пальца не вышло, также как и с кварцем на 4Мгц. Подавал просто 1кГц c генератора на XTAL1. Вывести пациента из комы не удалось Вопрос: почему прошлый раз прокатило, и в чем принципиальное отличие от этого режима? Что он ожидает от меня на вход?
×
×
  • Создать...