Ардуино мега

fsdb
Offline
Зарегистрирован: 24.10.2015

Ребята добрый день. Код который я привожу ниже я взял с этого форума. Он хорошо работает на ардуино нано.
Очень прошу помогите адаптировать его под ардуино мегу на любой пин. к сожалению моих знаний не хватает на таймеры и прочие сложные хитрости,
а генерация именно такая нужна.



//Строго на 9 пине генерация частоты
long Set_frequency(long freq)
{
  TCCR1A = 0b01000000; 
  uint16_t ocr;

  if(freq ==0)  {TCCR1B=0;}
  
  if ((freq < 134) and  (freq >0))
  {
    TCCR1B = 0b00001010; 
    ocr = 1000000UL/freq - 1;
    freq = 1000000UL/(ocr+1);
    
  }

    if (freq >= 134) 

  {
    TCCR1B = 0b00001001;
    ocr = 8000000UL/freq - 1;
    freq = 8000000UL/(ocr+1);
  }


  OCR1AH = highByte(ocr);
  OCR1AL = lowByte(ocr);
  TIMSK1 = 0;
  return freq;
}

void setup() {
  // put your setup code here, to run once:

pinMode(9, OUTPUT);
//Генерация частоты

Set_frequency(5000);
}

void loop() {
  // put your main code here, to run repeatedly:

}

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

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

fsdb
Offline
Зарегистрирован: 24.10.2015

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

sadman41
Offline
Зарегистрирован: 19.10.2016

До какого предела, что такое "огромный микрошаг", как выглядит хороший сигнал? Вы что, из музыкального училища сюда пришли или из поэтического кружка?

fsdb
Offline
Зарегистрирован: 24.10.2015

От 0 до 300кгц хотя бы. 

sadman41
Offline
Зарегистрирован: 19.10.2016

300кгц? Это что за двигатель и драйвер такой? Я на ютубе ролики смотрел - в них движки на лидшайновских драйверах срывались уже на 11-15кГц. И это - с плавным стартом, хочу заметить. 

А так, безотносительно странностей с частотой: https://playground.arduino.cc/Code/Timer1/