Ардуино мега
- Войдите на сайт для отправки комментариев
Чт, 18/06/2020 - 14:42
Ребята добрый день. Код который я привожу ниже я взял с этого форума. Он хорошо работает на ардуино нано.
Очень прошу помогите адаптировать его под ардуино мегу на любой пин. к сожалению моих знаний не хватает на таймеры и прочие сложные хитрости,
а генерация именно такая нужна.
//Строго на 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:
}
этот код под любой пин не адаптируешь. Надо новый писать, по другому.
Эх. беда. а может кто с проверенными библиотеками работал. посоветуйте нормальную. что бы генерировать сигнал хороший сигнал для шагового на меге. кода на драйвере огромный микрошаг выставлен и раскрутить нужно до предела.
До какого предела, что такое "огромный микрошаг", как выглядит хороший сигнал? Вы что, из музыкального училища сюда пришли или из поэтического кружка?
От 0 до 300кгц хотя бы.
300кгц? Это что за двигатель и драйвер такой? Я на ютубе ролики смотрел - в них движки на лидшайновских драйверах срывались уже на 11-15кГц. И это - с плавным стартом, хочу заметить.
А так, безотносительно странностей с частотой: https://playground.arduino.cc/Code/Timer1/