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

Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить
Прорезались зубы
Сообщения: 217
Зарегистрирован: Ср янв 11, 2012 11:55:51

Сообщение Land »

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

OCR1AH= 0 OCR1AL= 31

т.е. старший байт не устанавливается???
Реклама
Реклама
Поставщик валерьянки для Кота
Сообщения: 1924
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария

Сообщение 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);
ответ:

Код: Выделить всё

 OCR1AH= 78
 OCR1AL= 31
проверка: 78 * 256 + 31 = 19999.
Контактная информация:
Прорезались зубы
Сообщения: 217
Зарегистрирован: Ср янв 11, 2012 11:55:51

Сообщение Land »

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

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

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

Зараза... TCCR1A надо обязательно обнулить. :kill:
слепой кот Базилио ((
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Сообщения: 1924
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария

Сообщение veso74 »

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

Сообщение roman.com »

странные эти Arduino...
в CodeVisionAVR такой фигни нет))
Реклама
Поставщик валерьянки для Кота
Сообщения: 1924
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария

Сообщение veso74 »

[uquote="roman.com",url="/forum/viewtopic.php?p=4216020#p4216020"]странные эти Arduino ... такой фигни нет ...[/uquote]
Оффтоп: Все наоборот. При обычном, элементарном и среднем использовании вникаешь в математику, в алгоритм, не вдаваясь в бесконечные настройки регистров, таймеров и т. д. в "заглавными буквами" :), от которых испаряется всякое желание продолжать. А представьте, что потребителем может быть подросток, пусть даже первоклассник. И что? его устройство работает, не хуже напр. Вашего, написан почти на ассемблере. И он радуется, что создал что-то с помощью своего ума (и "общего разума" с помощью поделеного кода).
Контактная информация:
Друг Кота
Сообщения: 9359
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

veso74 писал(а):работает, не хуже напр. Вашего, написан почти на ассемблере.
почему почти ?))
у меня прекрасно всё работает и на ассемблере... в AVR Studio.
а радость от того что двигаемся дальше и глубже )) изучаем новые горизонты))
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 362
Зарегистрирован: Вс апр 03, 2022 07:01:29

Сообщение НовыйДень »

вникаешь в математику, в алгоритм, не вдаваясь в бесконечные настройки регистров,
...и почти все ардуинщики регулярно сталкиваются с проблемами несостыковки скетчей и конфликтов в железе. Ничего личного, просто многолетние наблюдения.
Хотя на самом деле любой программист имеет уже написанный функционал нижнего уровня, работающий с железом. Но грамотные программисты знают, как работает железо и в случае чего, могут поправить и отстроить "по месту". Мы, как эмбеддеры, вообще должны хорошо разбираться в железе, поскольку работа идет напрямую с железом, со входными и выходными сигналами. А вот ардуинщики забывают про это и оправдывают себя тем, что они якобы должны сосредоточиться на алгоритмах.
Понятно, что нынешний молодняк, если не получает результат в кратчайшее время, то быстро теряет интерес к занятию. И такая привычка вырабатывается и сохранятся даже годы спустя. Это да, есть такая беда, что уж поделать.
Поставщик валерьянки для Кота
Сообщения: 1924
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария

Сообщение veso74 »

[uquote="НовыйДень",url="/forum/viewtopic.php?p=4216061#p4216061"]... Мы, как эмбеддеры ...[/uquote]
Большой офлайн: Зачем? Для меня это хобби (наверное для 90% форумчан), эмоция, приятное времяпрепровождение. Работает конструкция или нет, эффекта (почти) нет. И часто само изготовление является самым приятным моментом, конструкция после навсегда может остаться в коробке/мешок/чердак. Напаример, в комнате, где я нахожусь сейчас, я вижу 11 устройств (посчитал их), по которым могу понять время. Ну ничего, на столе стоит 12-тое устройствo, нa PIC, на бредборде, для тестов. То же самое и с приемниками FM, и с приемниками КВ ... Это хобби. (частично пользуюсь переводчиком БГ -> РУ)
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 362
Зарегистрирован: Вс апр 03, 2022 07:01:29

Сообщение НовыйДень »

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

Вернуться в «Arduino»