Borisov_E

Помогите Выбрать - Pic Или Avr Или Arm

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

dm37    54
1 минуту назад, dosikus сказал:

Читать что? Надумки ТС , в которые он уверовал благодаря таким как вы?

 Тем кто на каждом углу сыпят страшилки о арм и необходимости начинать с пЫк/авр.

ТС нуб и он априори обязан заблуждаться и не знать что для него лучше.

А я стараюсь оградить его и подобных от ваших сект адептов старья ...

это бесполезный разговор

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


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

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
dosikus    5

Естественно с вашей точки зрения - все бесполезно.

Начните хотя бы читать, хотя я подозреваю что незнание языка вам это не позволит...

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


Ссылка на сообщение
Поделиться на других сайтах
dm37    54
3 минуты назад, dosikus сказал:

Начните хотя бы читать, хотя я подозреваю что незнание языка вам это не позволит...

грубить не надо

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


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

И где грубость я вас спрашиваю? Вы же ищите документацию на родном языке...

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


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 049
В 24.03.2017 в 00:18, Mayder сказал:

Лично я захотел начать разбираться с пиками. Цена смутила. Программатор не из дешевых, и сами пики. 12f675 стоит 70-80руб. у меня, а я считаю его( и не только я, сужу по отзывам в интернетах) за довольно простой МК. Или это нормальная цена?

не надо путать политику с простотой... самый первый самый простой народный пик с флешью pic16f84 на котором собраны тысячи поделок стоит 220-260грн , его младший брат близнец 84а = 88-132грн, 628 = 43-115грн, с 12ф675 таже ситуация оп отношению к более новым 12ф1501, 12ф1751 и тд

тч цена нормальна.

и ратования докуса то же понятны, чем больше неофитов начнет с стм32 с полным не пониманием как это работает и останется на уровне калокуба, тем больше шансов, что серьезный заказчик наткнувшийся на таких  неофитов придет к таким как докус начинавших с 84х и понимающих как это все работает

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


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

Важно что сэмлирование идет по таймеру , а не -пнули улетело все .

Инкремент адреса регистров периферии и сброс на адрес первого регистра  вручную?

Интерлив памяти так же вручную?

 

Семплирование по таймеру - это значит таймер запускает одну или все транзакции. Не вижу никакой необходимости семплировать каждую транзакцию для обсуждаемого случая. То есть ставим указатель на первый адрес группы регистров, ставим в счетчик разницу между первым адресом и последним,ставим режим один реквест - весь пакет, ставим режим Continuous, назначаем источником реквестов какой нибудь таймер с определением его регистра периода и включаем эту конструкцию. На каждый толчок семплирующего таймера вся конструкция будет разворачиваться из ОЗУ в периферию. В таком варианте потребуется еще один канал для перезагрузки источника первого, а можно настроить реквесты и тактирование так, что весь большой цикл сигнала будет развернут с семплированием один реквест-одна транзакция. Только семплирование потребуется кратно более высокочастотное. И скорее всего через цепочку из двух ШИМов. Первый задаст семплы сигнала, а второй серию на семпл.

ЗЫ. Пробовать burst я буду лишь тогда, когда мне потребуется в реальном проекте. Заниматься всяким баловством у меня реально нет времени. Задачи нынешнего проекта вообще далеки от всякой подобной ерунды. Нынче меня более интересует компактная реализация нелинейной фильтрации импульсных помех (аналогично методу "трех сигм"). Потому что 6 квадратурных каналов (сиречь 12 одномерных) с матрицей отсчетов 8*24 каждый нужно успеть посчитать менее, чем за 1 мс. :ph34r:

 

 

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

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


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

Марк, успокойся.:) Иначе это не закончится.

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

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


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

Как раз когда плюётся на содержимое начинают вылазить неожиданные косяки... содержание тоже очень важно, в проекте чуть более сложном чем мигалка.

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


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

МК подбирается под проект или возможность решения конкретной задачи. Косяки - признак неудачного ПО или схемного решения. "Старый" или "новый" МК - это не оправдание.

 

Изменено пользователем Геннадий

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


Ссылка на сообщение
Поделиться на других сайтах
dosikus    5
17 часов назад, my504 сказал:

В таком варианте потребуется еще один канал для перезагрузки источника первого, а можно настроить реквесты и тактирование так, что весь большой цикл сигнала будет развернут с семплированием один реквест-одна транзакция. Только семплирование потребуется кратно более высокочастотное. И скорее всего через цепочку из двух ШИМов. Первый задаст семплы сигнала, а второй серию на семпл.

Вот вы сами и ответили . В чем различия  - в отсутствии необходимости задействовать лишние сущности.

И что важно- работа всей конструкции без участия  юзер-кода, чистА аппаратно.

 

 

17 часов назад, my504 сказал:

Заниматься всяким баловством у меня реально нет времени.

Это лишь ваша точка зрения, уверяю вас- большинство посетителей посчитают ваши задачи баловством или того хуже -почесыванием ЧСВ.

 

16 часов назад, Геннадий сказал:

Марк, успокойся

Бинго!!!! Честно говоря было подозрение , но думалось все же это коллега . Хотя двое упоротых это уже слишком...

19 часов назад, IMXO сказал:

и ратования докуса то же понятны, чем больше неофитов начнет с стм32 с полным не пониманием как это работает и останется на уровне калокуба, тем больше шансов, что серьезный заказчик наткнувшийся на таких  неофитов придет к таким как докус начинавших с 84х и понимающих как это все работает

Вы путаетесь в показаниях.

Вы уж определитесь - или я даю знания на халяву либо отшиваю конкурентов.

 

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

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


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

Вот вы сами и ответили . В чем различия  - в отсутствии необходимости задействовать лишние сущности.

И что важно- работа всей конструкции без участия  юзер-кода, чистА аппаратно.

Ну если инициализация является юзер-кодом, тогда и с burst -такая же проблема.

Никакого юзер-кода во время работы не требуется. Требуется лишний ШИМ или лишний канал ДМА Но разве это проблема?

Досикус, у любой платформы есть специфические особенности, которые позволяют делать то или иное действо несколько экономичнее, нежели у других. Но в данном случае преимущество носит столь частный характер, что делать из него фетиш в ум не приходит. Гонять балласт по ДМА с целью сэкономить пару каналов ДМА - сомнительное достоинство. Да и стиль такого алгоритма тоже напоминает азиатчину.

 

2 часа назад, dosikus сказал:

Честно говоря было подозрение , но думалось все же это коллега . Хотя двое упоротых это уже слишком...

У Вас "упороты" все, кто не хлопает в ладоши Вашим сообщениям.

Помилуй Бог от таких "коллег"...

 

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


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

или я даю знания на халяву либо отшиваю конкурентов.

Ни то, ни другое.

Вам, досикус, нужна посещаемость СОБСТВЕННОГО ресурса, на который Вы даете ссылки в "бескорыстных" сообщениях.

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


Ссылка на сообщение
Поделиться на других сайтах
dm37    54
27 минут назад, my504 сказал:

Вам, досикус, нужна посещаемость СОБСТВЕННОГО ресурса, на который Вы даете ссылки в "бескорыстных" сообщениях.

как то не подумал об этом, но на что обратил внимание при посещении данного ресурса: 4 администратора, 4 модератора и только 10 пользователей.
@dosikus  ваш ресурс пользовался бы популярностью, если бы вы выкладывали для общего пользования (изучения) свои проекты.

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


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

Для начала я бы рекомендовал вам STM8 - паять легко, стоит дешево, вся переферия, памяти правда не много - но в принципе хватает для всего. Питание 3-5в. Обвязки никакой - 2 конденсатора. Примеров много. Софт бесплатный. Программатор можно самому спаять - схемы и платы есть. Сам с него начинал - отличный МК. А так конечно согласен - надо выбирать под проект. Из 32битных - STM32, NUVOTON - тоже не дорого, вся переферия есть. Из среды для 32битных лучше Keil. Для STM8 родная среда пойдет.

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


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

Проблема STM-ок - разобщенность документации и огромное разнообразие вариантов комбинации ядро-периферия. И отдельно идёт документация на ядро, отдельно на периферию. Чтобы начать нужно для начала вникнуть что за контроллер перед тобой, какое у него ядро и какой вариант периферии потом идти за документацией которую даже с первого раза не загуглишь. Когда в теме оно конечно легко... но до этого ещё добраться надо.

Для начинающего AVR - самое то что надо - один документ на контроллер где полная исчерпывающая информация по конкретной модели контроллера. Сразу же можно сесть и изучать на реальных примерах.

 

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


Ссылка на сообщение
Поделиться на других сайтах
Zhuk72    8
В ‎06‎.‎09‎.‎2017 в 23:19, Alexeyslav сказал:

Проблема STM-ок - разобщенность документации и огромное разнообразие вариантов комбинации ядро-периферия.

В действительности все оказывается не совсем так. Гуглить ничего не нужно. На сайте в поиске вводишь модель МК, вываливается список документации на нее с примерами применений. Обычно достаточно бывает только референс мануала. Для уточнения распиновки и существующей периферии конкретного МК следует заглянуть в даташит. Почти достаточный минимум.

Хотя определенные особенности документации имеют место быть. Но это в большей степени дело привычки.

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


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

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

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

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

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

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

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

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

Загрузка...

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

    • Автор: Atreides
      Добрый день. Мне требуется реализовать программный юарт на атмеге16. Он нужен для того, чтобы принятые по нему данные отправить на аппаратный юарт. В интернете нашел примеры кода, но понять его мне трудно. Прошу вас словами в общих чертах объяснить принцип реализации программного юарта. Буду рад примерам, которые, на ваш взгляд, являются наиболее простыми и понятными. Заранее спасибо.
    • Автор: EugenArt
      Всем доброго времени суток!
      в поиске не смог найти инфо, поэтому создал тему, не ругайте, если ошибся с веткой.
      Идея следующая, есть автомагнитола deh-3600MP c выходом Ip-bus.Хочу подружить магнитофон с мп3 плеером (есть от фм-трансмиттера, завтра куплю платку отдельного мп3). Сразу подчеркну, что хочу управление плеером (треки, теги, пауза и т.д) с головного устройства.
      предполагаю схему так:  ip-bus - avr - mp3 player.
      алгоритм avr-mp3 несложен и открыт, а вот описание протокола ip-bus нигде нет, форум витат.спб уже изучил, есть кусок кода работы авр и ip-bus, но не очень понятно, может подскажете набор команд ip-bus или что происходит по событию нажатию кнопки вперед/назад.
      Заранее благодарен.
    • Автор: Максим Окатов
       
      Товарищи, помогите пожалуйста. Данная програмулина при нажатии на кнопку входит в функцию MinU() в которой инициализирует таймер для задержки(ждем отпустит пользователь кнопку или нет) если кнопка не отпущена то уменьшаем скважность ШИМ.
      проблема в выделенной красным строчке! когда count больше 3 уменьшаем скважность, но в отладчике AVR studio, Proteus и в железе не робит.
      Перепрыгивает действие в {} так будь-то условие не выполнено...
      #define F_CPU 1000000L
      #include <avr/io.h>
      #include <avr/interrupt.h>
      #include <util/delay.h>
      unsigned char count = 0;
      unsigned char a=5,s=3,b=0;
          //===================================Насройка таймера====================
      void Timer_ini(void){
         TCCR1B = (1<<CS12)|(0<<CS11)|(0<<CS10);
         TCNT1 = 65535-976;
         TIMSK |= (1<<TOIE1);
         count = 0;
        }
          //===========================настройка шим===========================
      void PWM_ini(void){
         ASSR=0x00;
         TCCR2=0b01101110; //На выводе OC1A единица, когда OCR1A==TCNT1, восьмибитный ШИМ
         OCR2=200;
      }
      //===============
      void MinU(){
          unsigned char i=0;
          Timer_ini();
          while (!(PINB&0b00000010)){
              if(count>2){        //Если таймер считал более двух раз
                _delay_ms(100); // ждем 100 мс
                OCR2--; // Уменьшаем скважность
                i=1;        // были в плавном уменьшении
            }
            
         }
         if (i!=1) // если не были в плавном уменьшении
         {
             OCR2=OCR2-50;
             i=0;
         }
      }
              //=======================================================
      int main(void)
          {
             
              // Настраиваем порт D на выход
              DDRB = 0b00001000;
              PWM_ini();
              //Timer_ini();
              sei();
              
              
              while(1)
              {
                  b=a-s;
                  if (!(PINB&0b00000010))
                  {
                      MinU();
                  }/*
                  //if (!(PINB&0b00000100))
                  //{
                      //PlsU();
                  //}*/
              }
              return 0;
          }
          
          ISR (TIMER1_OVF_vect)
          {
              count++;
              TCNT1 = 65535-976;
                  }
       
       
       
    • Автор: Serg_Mang
      Можно ли залить в arduino прошивку, предназначенную для чистого AVR?
    • Автор: Дмитрий Мартынов
      Здравствуйте!
      Пишу программу на C++ для управления LCD (HD44780) по I2C через модуль расширения портов ввода/вывода PCF8574AT.
      void LCD_I2C::readBF() { transmitByte(0b00001110); //transmits E, RW set to HIGH and RS, set to LOW _delay_ms(5); transmitByte(0b00001010); //transmits E, RS set to LOW and RW set to HIGH _delay_ms(5); initRestart(); transmitAddrRW(0b01111111); //sends PCF8574AT address + SLA+R do { receiveDataAck(); PORTA = storage; } while((storage & (1 << BF)) != 0); //wait until BF is 0 initRestart(); transmitAddrRW(0b01111110); } Метод void transmitByte(uint8_t data) после инициализации состояния "Старт" и отправки адреса устройства + SLA+W отправляет байт данных по TWI с ожиданием бита подтверждения (команды работают верно, проверял по регистру статуса TWI - 0x08, 0x10 и 0x24).
      Метод void transmitAddrRW(uint8_t address) отправляет соответственно SLA+W/R + адрес устройства (команда работает также верно). Нареканий к работе TWI у меня нет, т.к. недавно с его помощью успешно запустил часы DS1307 с интеграцией LCD.
      После передачи запроса на чтение флага занятости инициализируется состояние "ПОВСТАРТ", отправляется адрес устройства + SLA+R, далее идет цикл - запрос байта данных (состояние выводов PCF8574AT) с отправкой бита подтверждения uint8_t receiveDataAck() (команды работают также верно, возвращает storage = TWDR) и вывод storage на порт А микроконтроллера (там установлены светодиоды).
      Чтение регистра данных TWDR после принятия байта данных (receiveDataAck()) дает следующий результат - 0b00000010 - установлен только бит RW микросхемы. Таким образом, флаг занятости BF = DB7 = 7й бит оказывается сразу же сброшенным, происходит мгновенный выход из цикла - контроллер дисплея не успевает скушать информацию, и инициализация не выполняется (неудачную инициализацию определяю по отсутствию курсора). Ожидалось, что флаг занятости будет установлен в единицу и произойдет несколько итераций перед выходом из цикла.
      При замене метода ожидания сброса флага занятости BF на программную задержку в 250 мс везде, где это требует datasheet - инициализация происходит успешно (появляется курсор, как и должно быть).

      Вопрос: что можно сделать, чтобы вместо _delay_ms(250) использовать readBF(), т.к. этот путь мне кажется более верным (уж очень не хочется использовать задержку .__.)? Возможно, проблема в микросхеме, которая неверно выдает информацию при чтении? (Имеется вторая микросхема, она вообще не работает:D)

      З.Ы. На фото виден результат чтения флага BF и Adress Counter - установлен только бит RW.  



      З.Ы.Ы Кому интересно - вот функция main(). Повторюсь - проблема только в методе readBF():
      void LCD_I2C::init() { setBitRate(20000); initStart(); transmitAddrRW(0b01111110); //send PCF8574AT address + SLA+W _delay_ms(60); sendInstruction(0b00110000); //function set 8-bit operation _delay_ms(20); sendInstruction(0b00110000); //function set 8-bit operation _delay_ms(5); sendInstruction(0b00110000); //function set 8-bit operation _delay_ms(5); sendInstruction(0b00100000); //function set 4-bit operation readBF(); //_delay_ms(250); //debug!! sendInstruction(0b00100000); //function set 4-bit operation, 2 lines, 5x8 dots sendInstruction(0b10000000); readBF(); //_delay_ms(250); //debug!! sendInstruction(0b00000000); //display off, cursor off, blinking off sendInstruction(0b10000000); readBF(); //_delay_ms(250); //debug!! sendInstruction(0b00000000); //display clear sendInstruction(0b00010000); readBF(); //_delay_ms(250); //debug!! sendInstruction(0b00000000); //entry mode set increment, display shift off sendInstruction(0b01100000); readBF(); //_delay_ms(250); //debug!! sendInstruction(0b00000000); //display on, cursor off, blinking off sendInstruction(0b11100000); readBF();/ }  
  • Сообщения

    • А в чем особенность такой схемы? Или она пока только в теории, а как себя проявит в действии неизвестно? Просто я не понял, Ваше предложение направлено ко мне, или на всеобщее обсуждение.
    • Насчет полного цитирования-за это я уже получил втык от модератора, хотя ПОЛНОГО цитирования и не было - одно предложение я убрал, трудно увидеть весь текст на маленьком экране смартфона, не доглядел.
      Ответ на все вопросы есть в ссылке, которую я привел, там обоснованный расчет скорости электронов в металле в зависимости от напряженности поля, если лень открыть ссылку и ознакомиться - ... я не виноват.
      Релятивистские значения скорости - это просто теоретический предел, чтобы подойти к ним нужно обеспечить плотность тока 100 миллиардов! ампер на квадратный миллиметр, естественно, недостижимые в реальной жизни токи, но до этого предела скорость НАПРАВЛЕННОГО движения электронов будет ПРОПОРЦИОНАЛЬНА напряженности поля. И это совершенно логически понятная истина - как уже здесь написали, чтобы через калитку в заборе за секунду прошел не один человек, а 10, они должны бежать со скоростью в 10 раз большей, чем шел один.Тут не надо знать интегралов и уметь выводить сложные формулы - любой неграмотный слесарь сообразит.
      "Старые пеньки" не верят не верят бездоказательным заявлениям молодых, закончивших школу на слабый трояк, но амбициозных "гениев".
      Где, кем обосновано заявление о том, что скорость электронов в металле - константа? Кстати, в обычном кинескопе скорость их в вакууме уже релятивистская, и учитывается изменение массы и нарушение ньютоновских законов движения.  
    • Да не... я про перемыкание пинов в самом usb/  Читал что зарядка андроида может и не запуститься. Так же вычитал что и напряжение на выходе тоже критично, где-то 4,2, где то 4,3, гдето 4,5, а где то и 4.7в надо. Читал, что можно на выход  подсоединить usb- концентратор. Правильно ли это? Ну и потом, если его вмонтировать стационарно в панель, то грех не воспользоваться  удаленным управлением. Выключил замок, или включил сигналку, зарядник переходит в дежурный режим., отключив всех потребителей, или просто кнопочку установил.  
    • Не пойму только,чтоб открыть симистор нужены определенный ток или напряжение на управлении? И какое минимальное сопротивление может быть на выходе оптопары?
    • Просто запараллелены. Выводы питания запараллелены. Напряжение 5 вольт. Защита им не нужна, т.к. эти порты всего лишь гнёзда некоего блока питания для подключения внешних устройств. Защита в самом преобразователе имеется. Паяйте и подключайтесь.