6 821 сообщение в этой теме

my504    357

Тут все очень просто.

Нормальный программист не назовет функцию в своем коде именем normalnaya_funkciya.

Даже если она и в самом деле нормальная.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
COKPOWEHEU    263
4 часа назад, Demonrostov сказал:

Ничего не понял, но код работает как надо......

Любой может написать код, понятный для машины. Хорошие программисты пишут для людей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dosikus    12

Вот так же и те кто анализируют ваш код нихрена не поймут...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
LEVV2006    159

Всем привет! У меня возник вопрос и я решил с вами проконсультироваться так как сам пока не могу найти ответ. 

Задумка такая. Хочу сделать небольшие часы на ИН-16. Эти часы всегда будут стоять возле ПК и питаться от порта USB. Кроме того решил добавить возможность общения часов с ПК посредством USART и не только передача данных но и возможность перепрошивки. А это значит что нам нужна микросхема с выходами TX,RX,DTR. 

Вы скажите так есть готовая микра. FT232RL. И я отвечу да. Есть. Но она дорогая, паять из за размеров не очень удобно и  она большая :)

У все думал чем заменить эту микросхему... И нашел вот этот проект. В этом проекте используется микросхема Attiny45/85. Она идеальна подходит по габаритам и стоимости! Кроме того в проекте присутствуют исходники. 

Но не обошлось без ложки дегтя..... Почему то скорость только 4800. и нет вывода DTR. Хотя этот вывод реализован на более старших моделях. Да и скорости там повыше будут.

Очень бы хотелось бы допилить Attiny45/85 хотя бы до скорости 9600 и добавить вывод DTR. Я думаю что даже можно использовать внешний кварц, а ногу Reset превратить в вывод DTR. 

Скажите пожалуйста стоит ли оно того? Или есть какие то другие решения? Может уже кто то сталкивался с подобным вопросом? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexeyslav    637

Не стоит. У микросхемы есть дешевый китайский аналог - CH340, правда со своими дровами но они есть и для 10-ки. А вообще Arduino Nano - там всё уже встроено, разведено и подключено к нужному порту. Да и достаточно миниатюрное.

В проекте на TINY85 скорость больше сделать нельзя, не потянет по ресурсам... там и так всё впритык по таймингам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mail_robot    1 431

CP2102 все же лучше 340-ой как мне показалось. А дороже всего на чуточку. Зато связь гораздо стабильнее

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
LEVV2006    159

CP2102 мне кажется мелковата для пайки. Да и не просто впаять её... 

CH340 не плоха. в 2 раза больше чем TINY85 но паять удобно. К сожалению в близлежащих магазинах данной микры нет. Придется заказывать с Алика. Цена 250р за 10шт :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
DmitryS    28

@LEVV2006 https://ru.aliexpress.com/item/CH340G-5V-USB-to-TTL-UART-Serial-Converter/32524218818.html?spm=a2g0s.9042311.0.0.5C5rug

такие же ест и на 2102 , все сделано :D

Изменено пользователем DmitryS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexeyslav    637

У меня наоборот с CP2102 отрицательный опыт... 2-3 дня работы и винда ловит синий экран из-за этого поделия.

Лучше уж оригинал FT232RL у неё в драйвере больше критических настроек вроде таймаутов и т.д. что бывает весьма важно в радиолюбительской практике когда нужен быстрый ответ от ведомого устройства, по умолчанию там стоит таймаут в 20мс, если буффер в 15 байт не заполняется то в программу он прийдёт не раньше таймаута, а это бывает очень критично при интенсивном двустороннем обмене с девайсом в стиле запрос-ответ. Так вот в других чипах этой настройки НЕТ, и они тормозят.

Изменено пользователем Alexeyslav

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
КЭС    1 193
16 часов назад, LEVV2006 сказал:

CH340 не плоха

Имею отрицательный опыт. Купил на Али 5шт преобразователей за 200р. (зато дешево!), работают, в ОС определяются (дрова установлены, конечно). Но вот программатор Тритон через них работать отказался. Вернее, начинает программировать (или считывать), а затем рандомно по времени вываливается ошибка. До этого юзал TrendNet TU-S9, без нареканий. При попытке долговременного использовании в других случаях (разные программы) выяснилось, что порт тупо теряется. Причем в диспетчере устройств он отображается, а программы его не видят. Лечится удалением порта (в диспетчере), затем при обновлении конфигурации он обнаруживается, и работает опять какое-то время (может несколько дней отработать, а может часов). В общем, не рекомендую.

Изменено пользователем КЭС

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sergey-Ufa    639

Покупал на Али пару десятков адаптеров USB-RS485 на CH340. Все работает идеально, как с заводскими приборами, так и с самоделками на AVR. Уже почти все ушли в дело, надо еще с десяток прикупить. А программаторы через такие вещи действительно не работают. Эта тема уже неоднократно поднималась.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
КЭС    1 193
6 минут назад, Sergey-Ufa сказал:

программаторы через такие вещи действительно не работают

Имеется в виду USB-COM? Есть масса других преобразователей, с которыми таких проблем у меня не было (один я упомянул).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sergey-Ufa    639

Здесь дело скорее всего не в самом чипе моста USB-UART, а в полноценности формирования интерфейса RS-232. Многие из дешевых адаптеров USB-COM ограничиваются формированием только RX и TX.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    357

Диву даюсь, коллеги...

Что за любовь к CDC USB для поделок, где требуемый рейт обмена редко превышает 9600, а по факту даже это много?

Почему бы не адаптировать под свою задачу HID USB и не писать под него свой софт для компьютера.

Никогда ничего не отваливается, можно автоматически запускать целевое приложение при соединении, максимально возможный рейт 64 кБАЙТ. Причем главное совсем не в USB, а в UART, патамушта нужно организовать обмен моста с МК по уарту с рейтом  в несколько мбит, иначе 64 байта за 1 мс  (плюс синхронизация данных) не освоить.

Обычно производители МК предоставляют стек USB под свои МК и драйверы для ОС для разных классов USB.

Изменено пользователем my504

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    493
Только что, my504 сказал:

Что за любовь к CDC USB для поделок, где требуемый рейт обмена редко превышает 9600, а по факту даже это много?

Я так понимаю, основная причина - отсутствие необходимости писать собственное прилжение для обмена с HID, CDC же обеспечивает работу с любым "терминалом", и даже в программировании со стороны ПК много проще - открыл "файл" или пиши/читай. HID открыть просто так мало, его еще в системе найди попробуй...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
LEVV2006    159

Как то вы все слишком глубоко углубились в проблему :) Тема форума "Вопросы От Начинающих По Мк" и мне кажется чем проще будет решение тем лучше. 

HID USB Уж простите но на мой взгляд это слишком глубокие дебри... Я один раз окунулся в это и больше как то не хочется. 

Кстати ссылка товарища Геннадия весьма интересна и  осталась без внимания! 

13 часа назад, Геннадий сказал:

Если я правильно понял то на микросхеме которая имеет аппаратный USB можно организовать USB-UART конвектор. И мало того, без особых проблем можно прямо из кода программы писать сообщения в UART. + остается возможность перепрошивки. 

К сожалению информации маловато.... Реализовать бы это на atmega32u4. Так как она у меня уже есть в виде платы Леонардо. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    493
Только что, LEVV2006 сказал:

Реализовать бы это на atmega32u4. Так как она у меня уже есть в виде платы Леонардо

Попробуйте LUFA, но мне кажется, не для начинающего это...

Вот ссылка на проект LUFA, то была ссылка на документацию

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
RA3DTI    67

   Здравствуйте. Вопрос. Возможно - ли в МК зашить программу  автономного генератора, чтобы он не мешал (или почти не влиял) на выполнение основной программы.

Используется  Atmega 8. Требуется меандр с частотой от 9 до 12кГц, частота кварца 16 МГц, или  лучше использовать отдельный (внешний) генератор?

P.S.  Возможно использование других Atmega……N.

Пишу в Atmel studio 6.2.

Изменено пользователем RA3DTI

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Viktor26    307

@RA3DTI можно. Абсолютно не будет мешать. В мега8 есть аж 3 аппаратных шима. Используйте любой

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BiBOX    3

Кто-нибудь встречал примеры,где описывается как работать с Flash внешней по SPI? Сейчас начал искать и был удивлён,ни одного описания как с этой флешью работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Viktor26    307

@BiBOX смотря какая флеш. Они разные есть

а так впринципе пару корпусов сдвиговых регистров и параллельная шина готова

Изменено пользователем Viktor26

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lopnul    0

Ребята, подскажите, МК STM32F030, появилась необходимость выбора режима по нажатию кнопки с дальнейшем сохранением настроек во флэш МК. В голову пришло несколько вариантов:

1) Сохранение каждый раз по нажатию на кнопку. НО у F030 вроде как 1'000 циклов на запись и если кто-то чрезмерно увлечется, можно и память "запороть".

2) Сохранение во флэш при выключении питания. Но как лучше, поставить бОльшую емкость после лм-ки (стабилизатора) и опрашивать АЦП (понижение питания) каждые 100мс или маленькая емкость, но опрос каждую 1мс. Никогда не задавался вопросом, насколько ресурс самого МК будет уменьшен, если например, таймером запускается АЦП, в прерывании АЦП сохраняется значение и делаться это будет раз в 100мс или раз в 1мс?

Были еще варианты, но как по мне проще всего именно сохранение при отключении (если изменения были), вот думаю, как лучше сделать, либо большую емкость, либо чаще опрашивать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: 55nlo
      Нужно написать программу "календарь" на АСМ
      Примерное ТЗ 
       
       
      1    5     по значению R0 (ввода)  в R20 вводим табличные значения        табл.1        
      1    6     по значению R0 (ввода)  в R21 вводим табличные значения        табл.1        
      1    7    NOP     (возможно доп. Команда)                 
      1    8    NOP     (возможно доп. Команда)           
      1    9    значение ОЗУ (адрес Rz) копируем в регистр R18(остаток)                
      1    10    R18(остат) прибавляем R24(лист) результат в R18(остат)                 
      1    11    провер. R18(остат) < 8, то п.12, нет то  R18(остат) -7, результат в R18(остат) и к п.12.                
      1    12    R 18(остат)  копируем в ОЗУ адрес Rz                
      1    13    адрес Rz увеличиваем на 1                
      1                        
      1    14    R19(стр.) увелич. на 1, проверяем Rстр =13.если не равно, п. 15. если  равно, то                 
      1             R19 стр. обнуляем, Rлиста увеличиваем на 1,             
      1            Rлиста если не =13, то к п. 9, если равно 13,             
      1            то  R17(листа) обнуляем и перех к п. 2.5(2-й участок, следующий)            
      1                        
      1    15    R18(ост.)+ 1 = в R18(ост.)                
      1    16    проверяем R18(ост) больше 10, если больше то -10, результат в R18(ост) и в п. 17 нет, то п. 17                
      1    17    значение ОЗУ (адрес Rz  текущий) копируем в R25сравн.                
      1    18    R25(сравн.) увелич на 1                
      1    19    R1(книги) установить значение "2"                
      1    20    NOP           (возможно доп. Команда)     
      1    21    NOP          (возможно доп. Команда)            
      1    22   R18(ост) =R20? если не равно ,то к 23, равно, то R сравн. обнуляем заносим 0 в ОЗУ и к п.13            
      1    23    R18(ост)=R21,если не равно, то к 24,    равно    то R сравн. обнуляем, заносим 0 в ОЗУ и к п.13            
      1    24    R25(сравн.) в ОЗУ (текущий) адрес Rz                
      1    25    R25(сравн.) более 20, то к п. 26. менее.то перех к п. 13                
      1    26    R учета =Rсравн.? да к п. 27 нет к п. 13                
      1    27    R7 обнуляем                
      1    28    R18(остат) копируем в Rморзе                 
      1    29    R7+ Rлиста в R7                
      1    30    проверяем R7  больше 12, если больше то -12, результат в R7 и к п. 31, нет к п. 31                
      1    31    R7  значение конвертируем через таблицу  в R7          табл.1м        
      1    32    Выполняем  прогу "М".                
      1    33    переходим к п.13             
       + ДВЕ ТАБЛИЦЫ ПО 40 СТРОК.   
    • Автор: Dominico
      Необходимо выполнить реверсивный счетчик в 10 разрядов для подключения его к ЦАП 572ПА1, чтобы в итоге получить треугольный ступенчатый сигнал. С программировнием на "ваше высочество", но хочу попробовать. Подскажите пожалуйста, на каком микроконтроллере это можно лучше сделать, и в каком направление "копать"
    • Автор: CUBE
      Не могу запустить асинхронный режим. 
      Ниже будет представлен код которым пытаюсь отладить. Там в 1 коде идёт работа от внутреннего источника таков (стоит 1МГц).  После 5 миганий таймер должен перейти в асинхронный режим и мигать с частотой в 1 Гц. У меня происходит 5 миганий потом ничего. Фьюзы менять пробовал, ничего не дало, сейчас дефолт. Корпус кварца к земле тянуть пробовал - безрезультатно. 
      Возможно что-то в подключении накосячил, если не видно на фото ниже, спрашиваете, нужно будет - нарисую схему. 
      Компилятор Atmel Studio 7
      Шью через Sind Prog 2.1.1 + USBasp 2.0
      Вот код: 
      .macro outi 
       ldi r16, @1 
       out @0, r16 
      .endm 
      .org $000 
      rjmp reset 
      .org $001 
      reti 
      .org $002 
      reti 
      .org $003 
      reti 
      .org $004 
      rjmp timer2_ovf 
      .org $005 
      reti 
      .org $006 
      reti 
      .org $007 
      reti 
      .org $008 
      reti 
      .org $009 
      reti 
      .org $00A 
      reti 
      .org $00B 
      reti 
      .org $00C 
      reti 
      .org $00D 
      reti 
      .org $00E 
      reti 
      .org $00F 
      reti 
      .org $011 
      reti 
      .org $012 
      reti 
      .ORG INT_VECTORS_SIZE 
       
      reset: 
      .equ portout=portd 
      .equ ddrout=ddrd 
      .def led=r17 
      .def mask=r18 
      .def counter=r19 
       outi spl,low(ramend) 
       outi sph,high(ramend) 
       
       outi ddrout, 0xff 
       
       outi tccr2, 0b00000111 
       outi timsk, 1«toie2 
       
        
       
        
       ldi led,1«5 
       ldi mask,1«5 
       sei 
      cycle: 
      cpi counter, 10 
      breq offtim 
       rjmp cycle 
       
      timer2_ovf: 
      inc counter 
       out portout, led 
       eor led, mask 
      reti 
        
      offtim: 
      outi timsk, 0«toie2 
      rjmp asinxron 
       
      asinxron: 
       outi assr, 0b00001000 
      back: 
       in r16, assr 
       cpi r16, 0b00001000 
       brne back 
       
        outi tccr2, 0b00000101 
        outi tcnt2, 0 
        outi ocr2, 0 
        outi timsk, 1«toie2 
       
       
      m1: 
      rjmp m1


      Верх меги на фото слева. 
    • Автор: qwer qwer
      Требуется разработать блок управления сплит-системой с функцией обучения по ИК каналу через RS-485 интерфейс на базе МК STM32. Есть ТЗ и список команд управления. Разработка в 2 этапа: 1-разработка принципиальной электрической схемы с указанием элементов на основе структурной из ТЗ (можно в карандаше), 2-написание ПО для МК STM32 в соответствии с ТЗ и списком команд. Оплата поэтапно. Кому интересно - уточняйте детали и оценивайте стоимость работы.
      Блок управления по ИК каналу Описание.docx
      Команды MODBUS.xlsx
    • Гость Keil
      Автор: Гость Keil
      Добрый день, ситуация такая - попались мне под руку куча рассыпухи в числе которых достаточное количетво тинек и прочей лабуды - пытась хеловродить, попробовал взять готовый пример работы тиньки и лсдишника здесь также имею ардуинку как  Айсипи и чудесно мигаю светодиодом на мк прошитом ею же  так вот при попытке залить код который по ссылке чуда не произошло.
      курение мануалов лсдишника дало понять лиш одно что старший и младший биты одинаковы с лсдишником со статьи - лсдишник рабочий (игрался контрастом одной строки через V0  и потенциометр ) - как в прочем и мк, было задумано ковырнуть все это в протеусе и атмельстудии, но результатом не увенчалось. Пожалуйста тыкните носом что да где не так.
      fail.zip
  • Сообщения

    • вы не вник нули в суть проблемы. на фиксе напряжение на выходе  стоит очень стабильно. любое которое  выставите. что  на хх что на нагрузке. и тестер вам покажет напряжение которое вы выставили. а станьте осциллографом и вы увидите импульс максимальной скважности то есть 48% и амплитудой равной 1\3 питания.  при любом выставленном напряжении.  импульс начнет сжиматься только тогда когда в работу вступит тт. а это скажем где то 160 ампер.и выше. а вот в ну три этого импульса есть коэффициент заполнения. именно он меняется и контролирует напряжение на выходе аппарата. и не важно по какой схеме собран инвертор  амплитуда импульса всегда равна коэффициенту трансформации силового транса. при любых раскладах.контроль за напряжением осуществляется только время нем заполнения импульса. если я не прав. поправьте. привязать индуктивную нагрузку к такому импульсу, особенно когда аппарат работает в режиме сварки. сами понимаете творятся (чудеса) самый хороший вариант (на мой взгляд) уйти от временного контроля к амплитудному это оптрон а он должен управлять шимом .  точнее вносить корректировку работы шим . а ключ шим должен быть запитан от стабилизированного источника. что бы избежать  перепадов в сети. пока лучшей идеи нет. может кто чего подскажет?           
    • @WaRLoC Не дорос я  ещё до такого..пока просто драйвер на ТГР. Да и с резанансником пока у меня застой из-за дросселя. Думаю как лучше сделать. Из того что есть.
    • я вот за кодинг стм еще ни разу не платил. Откуда у человека такие проблемы? В детстве что-ли уронили?... ему уже целую страницу опытные люди говорят - чувак, грусти нет, открой глаза. А он с бараньим упорством продолжает утверждать обратное, по сути даже и не начиная что-то писать. Беседа теряет смысл
    • Выложили бы в удобном формате типа картинка
    • так примените лучшую схему управы,  где напряжение не гуляет а стоит стабильно даже на ХХ.http://ruslanlipin.narod.ru/puskovoe_fixaty.html
    • выше уже писал об этой проблеме и протестировано. да оно работает, но не стабильно особенно на малых токах. и обороты добавляются не достаточно. а на малых токах  движок дергается. не очень сильно но стабильно дугу держать не может. если бы на выходе инвертора была бы чистая постоянка то никаких проблем.  а там импульсы, движок индуктивность  они друг с другом не дружат. тем более заполнение импульса постоянно гуляет