Работа с голым микроконтроллером

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 ม.ค. 2025

ความคิดเห็น • 15

  • @avr_stm_pro2955
    @avr_stm_pro2955 2 ปีที่แล้ว +4

    Хоть прошел все это, но все равно с интересом смотрел, спасибо 👍

  • @denissavast
    @denissavast ปีที่แล้ว

    Благодарю за информацию!

  • @arduino.donbass
    @arduino.donbass 8 วันที่ผ่านมา

    Дмитрий, по моему пропустили описание 2х самых главных фьюзов: RSTDSBL, и SPIEN при включении которых (запись в них 0) отключается сброс мк и возможность его прошивки через SPI.

    • @dmitrykuznetsov5468
      @dmitrykuznetsov5468  8 วันที่ผ่านมา

      @@arduino.donbass Согласен, пропустил

  • @arduino.donbass
    @arduino.donbass 8 วันที่ผ่านมา

    Не совсем корректно назввать CodeVisionAVR компилятором. По факту это такая-же соеда разработки как и Arduino IDE, которая использует тот же компилятор AVR GCC. Только она работает исключительно с именами регистров МК и их отдельными битами и не содержит чисто "ардуиновских" функций типа pinMode(), digitalWrite() и т.д. А вот Arduino IDE может работать и с именами регистров и с ардуиновскими функциями. Хорошие уроки лет 10-15 нащад были у Дмитрия Осипова по этой теме, но с человеком что-то случилось в психическом плане и он ушел в религию

  • @dargindarginec9561
    @dargindarginec9561 ปีที่แล้ว

    приветствую. чувствую канал будет полезным

  • @pavlomukosieiev6588
    @pavlomukosieiev6588 ปีที่แล้ว

    Со средой ардуино понятно. С тиньками не совсем просто из за ограниченного функционала. Сейчас новая серия AVR128DA48 типа мощная

  • @electroniys
    @electroniys ปีที่แล้ว

    На дизассемблирование надо ещё сделать ролик

  • @dargindarginec9561
    @dargindarginec9561 ปีที่แล้ว

    18:00 а этот код как будет выглядеть в кодевизарде? для меня это код ардуиновский трудно понятен по сравнению с кодевизардам. сможете показать какой будет код в кодевизарде? заранее спасибо.

    • @dmitrykuznetsov5468
      @dmitrykuznetsov5468  ปีที่แล้ว +1

      Что именно вы хотите сделать? Какая задача?

    • @dargindarginec9561
      @dargindarginec9561 ปีที่แล้ว

      @@dmitrykuznetsov5468 в общем я постоянно использовал для задержки delay. а это очень мешает когда используешь кнопки, я например хочу сделать регулятор частоты, и измеритель частоты, я что то не знаю как правильно сделать. регулятор частоты импульсов для управление шаговым двигателем step. dir, а измеритель частоты он будет измерять частоту и если например частота выше 100гц то выполнить какой то код, или задействовать выход шим чтобы сбавить обороты, и многое другое по этой части приходится собирать но вот с таймером у меня чуть беда.

    • @alexnik3884
      @alexnik3884 ปีที่แล้ว

      @@dargindarginec9561
      Project : Генератор (ГПИ) 5 - 1400 Гц с шагом 5 Гц, частота пуска 800 Гц
      Version :
      Chip type : ATmega8
      Program type : Application
      AVR Core Clock frequency: 10,000000 MHz
      Memory model : Small
      External RAM size : 0
      Data Stack size : 256
      *****************************************************/
      #include
      #include
      float k=0; // прибавочное число к делителю частоты - 0.0125 шаг 5 Гц.
      flash unsigned char byte [] = {3, 3, 2, 2};
      void main(void)
      {
      PORTB=0x00;
      DDRB=0x02;
      PORTC=0x3F;
      DDRC=0x00;
      PORTD=0x00;
      DDRD=0x00;
      TCCR0=0x00;
      TCNT0=0x00;
      TCCR1A=0x00;
      TCCR1B=0x00;
      TCNT1H=0x00;
      TCNT1L=0x00;
      ICR1H=0x00;
      ICR1L=0x00;
      OCR1AH=0x00;
      OCR1AL=0x00;
      OCR1BH=0x00;
      OCR1BL=0x00;
      ASSR=0x00;
      TCCR2=0x00;
      TCNT2=0x00;
      OCR2=0x00;
      MCUCR=0x00;
      TIMSK=0x00;
      UCSRB=0x00;
      ACSR=0x80;
      SFIOR=0x00;
      ADCSRA=0x00;
      SPCR=0x00;
      TWCR=0x00;
      while (1)
      {
      unsigned long a = 800; // необходимая частота (Гц)
      unsigned long c = OCR1A ;
      unsigned long F_PU = 10005000;
      char i=0;
      float h;

      if (PINC.0==0){delay_ms(100); k+=0.0125; // при нажатии кнопки PС.0 делитель h увеличивается на 0.125
      while (PINC.0==0){}
      }
      if (PINC.1==0){delay_ms(100); k-=0.0125; // при нажатии кнопки PС.1 делитель h уменьшается на 0.125
      while (PINC.1==0){}
      }
      h=2+k;
      if(h=3.5) // если данные h больше этих значений, то
      {
      k=0; // значения делителя h будут равны 2
      }
      c = (F_PU / a / h);
      for (i = 0; i < 4; i++)
      {
      // если частота ниже 76 Гц, то выполняется данная команда
      if (c > 65536) {
      d

  • @KONARTIK1
    @KONARTIK1 ปีที่แล้ว +2

    Сколько же лентяев ардуиншиков в мире.