Страница 1 из 1
Как установить значение OCR1A ?
Добавлено: Сб апр 16, 2022 13:39:08
Land
Собственно вопрос наверное даже странный, но тем не менее. Как производится установка регистра 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
Martian
Re: Как установить значение OCR1A ?
Добавлено: Сб апр 16, 2022 14:47:17
veso74
При инициализации 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);
ответ:
проверка: 78 * 256 + 31 = 19999.
Re: Как установить значение OCR1A ?
Добавлено: Сб апр 16, 2022 16:32:37
Land
Спасибо. Ларчик просто открывается однако )
а вот однако ни фига ( запись вида
OCR1A = 0x1234;
Serial.print("OCR1A = 0x");
Serial.println(OCR1A);
в терминале дает
OCR1A = 0x52
Зараза... TCCR1A надо обязательно обнулить.

слепой кот Базилио ((
Re: Как установить значение OCR1A ?
Добавлено: Сб апр 16, 2022 18:00:59
veso74
Если не хотите лезть в настройки Arduino (и настройки по умолчанию например при инициализации), используйте не их, а чистый AVR. В противном случае, должны соображать то, что делает. Он не делает так много непредсказуемых вещей, и если хотите, можете увидеть это в коде в:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\
Re: Как установить значение OCR1A ?
Добавлено: Сб апр 16, 2022 18:01:47
roman.com
странные эти Arduino...
в CodeVisionAVR такой фигни нет))
Re: Как установнаоборот, при обычном, элеменить значение OCR
Добавлено: Сб апр 16, 2022 18:06:13
veso74
[uquote="roman.com",url="/forum/viewtopic.php?p=4216020#p4216020"]странные эти Arduino ... такой фигни нет ...[/uquote]
Оффтоп: Все наоборот. При обычном, элементарном и среднем использовании вникаешь в математику, в алгоритм, не вдаваясь в бесконечные настройки регистров, таймеров и т. д. в "заглавными буквами"

, от которых испаряется всякое желание продолжать. А представьте, что потребителем может быть подросток, пусть даже первоклассник. И что? его устройство работает, не хуже напр. Вашего, написан почти на ассемблере. И он радуется, что создал что-то с помощью своего ума (и "общего разума" с помощью поделеного кода).
Re: Как установить значение OCR1A ?
Добавлено: Сб апр 16, 2022 18:33:49
roman.com
veso74 писал(а):работает, не хуже напр. Вашего, написан почти на ассемблере.
почему почти ?))
у меня прекрасно всё работает и на ассемблере... в AVR Studio.
а радость от того что двигаемся дальше и глубже )) изучаем новые горизонты))
Re: Как установить значение OCR1A ?
Добавлено: Сб апр 16, 2022 19:18:27
НовыйДень
вникаешь в математику, в алгоритм, не вдаваясь в бесконечные настройки регистров,
...и почти все ардуинщики регулярно сталкиваются с проблемами несостыковки скетчей и конфликтов в железе. Ничего личного, просто многолетние наблюдения.
Хотя на самом деле любой программист имеет уже написанный функционал нижнего уровня, работающий с железом. Но грамотные программисты знают, как работает железо и в случае чего, могут поправить и отстроить "по месту". Мы, как эмбеддеры, вообще должны хорошо разбираться в железе, поскольку работа идет напрямую с железом, со входными и выходными сигналами. А вот ардуинщики забывают про это и оправдывают себя тем, что они якобы должны сосредоточиться на алгоритмах.
Понятно, что нынешний молодняк, если не получает результат в кратчайшее время, то быстро теряет интерес к занятию. И такая привычка вырабатывается и сохранятся даже годы спустя. Это да, есть такая беда, что уж поделать.
Re: Как установить значение OCR1A ?
Добавлено: Сб апр 16, 2022 19:58:30
veso74
[uquote="НовыйДень",url="/forum/viewtopic.php?p=4216061#p4216061"]... Мы, как эмбеддеры ...[/uquote]
Большой офлайн: Зачем? Для меня это хобби (наверное для 90% форумчан), эмоция, приятное времяпрепровождение. Работает конструкция или нет, эффекта (почти) нет. И часто само изготовление является самым приятным моментом, конструкция после навсегда может остаться в коробке/мешок/чердак. Напаример, в комнате, где я нахожусь сейчас, я вижу 11 устройств (посчитал их), по которым могу понять время. Ну ничего, на столе стоит 12-тое устройствo, нa PIC, на бредборде, для тестов. То же самое и с приемниками FM, и с приемниками КВ ... Это хобби. (частично пользуюсь переводчиком БГ -> РУ)
Re: Как установить значение OCR1A ?
Добавлено: Сб апр 16, 2022 20:05:07
НовыйДень
Не спорю, для кого-то это всего лишь хобби, где важен быстрый результат. Не сошлись скетчи - пробуем другие, лезем на форум arduino.ru, тыкаемся.
А для кого-то - это работа, где важна принципиальная работоспособность, надежность, четкое поведение без сюрпризов. Каждому - своё. Кто-то получает удовольствие от того, что разбирается в тонкостях железа и может определить, почему не работает у ардуинщиков что-либо. Ну а почему бы и нет? Всегда ведь есть любители, а есть специалисты. Только вот "любителя народной медицины" не допустят делать хирургическую операцию.