Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить

Как установить значение OCR1A ?

Сб апр 16, 2022 13:39:08

Собственно вопрос наверное даже странный, но тем не менее. Как производится установка регистра OCR1A в Ардуино? Я думал, что записи типа OCR1A = 19999 (например) достаточно. Однако в в выводе в сериал Serial.print(" OCR1AH= ");Serial.print(OCR1AH); Serial.print(" OCR1AL= ");Serial.println(OCR1AL);я вижу такую вот фигню:

OCR1AH= 0 OCR1AL= 31

т.е. старший байт не устанавливается???

Re: Как установить значение OCR1A ?

Сб апр 16, 2022 14:35:54

http://forum.easyelectronics.ru/viewtop ... =4&t=21582

Re: Как установить значение OCR1A ?

Сб апр 16, 2022 14:47:17

При инициализации Arduino, таймер уже настроен и занимается на обслуживание PWM (функция analogWrite()).
https://forum.arduino.cc/t/having-troub ... 1a/56613/4
Код:
  TCCR1A = 0;
  TCCR1B = 0;
  OCR1A = 19999;

  Serial.begin(57600);
  Serial.print(" OCR1AH= ");
  Serial.println(OCR1AH);
  Serial.print(" OCR1AL= ");
  Serial.println(OCR1AL);

ответ:
Код:
 OCR1AH= 78
 OCR1AL= 31

проверка: 78 * 256 + 31 = 19999.

Re: Как установить значение OCR1A ?

Сб апр 16, 2022 16:32:37

Спасибо. Ларчик просто открывается однако )

а вот однако ни фига ( запись вида
OCR1A = 0x1234;
Serial.print("OCR1A = 0x");
Serial.println(OCR1A);

в терминале дает
OCR1A = 0x52

Зараза... TCCR1A надо обязательно обнулить. :kill:
слепой кот Базилио ((

Re: Как установить значение OCR1A ?

Сб апр 16, 2022 18:00:59

Если не хотите лезть в настройки Arduino (и настройки по умолчанию например при инициализации), используйте не их, а чистый AVR. В противном случае, должны соображать то, что делает. Он не делает так много непредсказуемых вещей, и если хотите, можете увидеть это в коде в:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\
Последний раз редактировалось veso74 Сб апр 16, 2022 18:02:09, всего редактировалось 1 раз.

Re: Как установить значение OCR1A ?

Сб апр 16, 2022 18:01:47

странные эти Arduino...
в CodeVisionAVR такой фигни нет))

Re: Как установнаоборот, при обычном, элеменить значение OCR

Сб апр 16, 2022 18:06:13

странные эти Arduino ... такой фигни нет ...

Оффтоп: Все наоборот. При обычном, элементарном и среднем использовании вникаешь в математику, в алгоритм, не вдаваясь в бесконечные настройки регистров, таймеров и т. д. в "заглавными буквами" :), от которых испаряется всякое желание продолжать. А представьте, что потребителем может быть подросток, пусть даже первоклассник. И что? его устройство работает, не хуже напр. Вашего, написан почти на ассемблере. И он радуется, что создал что-то с помощью своего ума (и "общего разума" с помощью поделеного кода).

Re: Как установить значение OCR1A ?

Сб апр 16, 2022 18:33:49

veso74 писал(а):работает, не хуже напр. Вашего, написан почти на ассемблере.

почему почти ?))
у меня прекрасно всё работает и на ассемблере... в AVR Studio.
а радость от того что двигаемся дальше и глубже )) изучаем новые горизонты))

Re: Как установить значение OCR1A ?

Сб апр 16, 2022 19:18:27

вникаешь в математику, в алгоритм, не вдаваясь в бесконечные настройки регистров,

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

Re: Как установить значение OCR1A ?

Сб апр 16, 2022 19:58:30

... Мы, как эмбеддеры ...

Большой офлайн: Зачем? Для меня это хобби (наверное для 90% форумчан), эмоция, приятное времяпрепровождение. Работает конструкция или нет, эффекта (почти) нет. И часто само изготовление является самым приятным моментом, конструкция после навсегда может остаться в коробке/мешок/чердак. Напаример, в комнате, где я нахожусь сейчас, я вижу 11 устройств (посчитал их), по которым могу понять время. Ну ничего, на столе стоит 12-тое устройствo, нa PIC, на бредборде, для тестов. То же самое и с приемниками FM, и с приемниками КВ ... Это хобби. (частично пользуюсь переводчиком БГ -> РУ)

Re: Как установить значение OCR1A ?

Сб апр 16, 2022 20:05:07

Не спорю, для кого-то это всего лишь хобби, где важен быстрый результат. Не сошлись скетчи - пробуем другие, лезем на форум arduino.ru, тыкаемся.
А для кого-то - это работа, где важна принципиальная работоспособность, надежность, четкое поведение без сюрпризов. Каждому - своё. Кто-то получает удовольствие от того, что разбирается в тонкостях железа и может определить, почему не работает у ардуинщиков что-либо. Ну а почему бы и нет? Всегда ведь есть любители, а есть специалисты. Только вот "любителя народной медицины" не допустят делать хирургическую операцию.
Ответить