реклама на сайте
подробности

 
 
> Ищу третий месяц объяснение этих 4 строчек., таймер1 (режим 8)
ветерок
сообщение Jun 3 2017, 17:21
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 29-11-06
Из: Ижевск
Пользователь №: 22 902



Этот код реализует меандр длительностью "1" и "0" 170 и 100 микросекунд (примерно)
Код
// Настройка ТАЙМЕРА1
TCCR1A=(1<<COM1A1)|(1<<COM1A0);// порт PB1 как инвертированый выход таймера
TCCR1B=(1<<WGM13)|(1<<CS12)|(1<<CS10); // режим 8 ,таймера, частота клока: Fclk/256=62500 Гц (1 тик таймера=0.9536 мкс (62500\65536) )
  uint16_t x = 170; // длительность '1' (единички или иначе импульса) в микросекундах
uint16_t y = 100;   // Длительность '0'(ноля или паузы) в микросекундах
  ICR1= (uint32_t) (x+y) /128;
  OCR1A= (uint32_t) y /128;


но в даташитах ниводном не нашёл такой режим работы
И кусок текста или таблицу в которой бы указывалось что используется оба регистра OCR1A и ICR1 в работе!
в таблице есть ICR
а на диаграмме OCR

А это...
Код
ICR1= (uint32_t) (x+y) /128;
  OCR1A= (uint32_t) y /128;

вообще магия

Может кто ткнёт пальцем.
хочу понять где это описано и как это работает.



Сообщение отредактировал ветерок - Jun 3 2017, 17:23


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ветерок
сообщение Jun 4 2017, 02:56
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 29-11-06
Из: Ижевск
Пользователь №: 22 902



В каком месте даташита, можно ткнуть пальцем где явно описан этот примитив ?
Например конкретно это :" ICR1 задаёт период следования импульсов"
а OCR1A (или ICR1, если режим 9) задаёт скважность (точнее длительность импульса)" это вроде как-то понятно
мне не понятно где написано переключение сравнения с OCR1A на ICR1 и обратно.

Я бы понял если бы было написано типа
после совпадения счёта с регистром OCR, происходит изменение значения на выходе счётчик считает дальше до совпадения с содержимым в регистре ICR

Но это не написано!
Написана билиберда! Это реально так.

_pv
вот где ты там это увидел,там только изображено то что написано в тексте,таймер использует для своей работы такие -то регистры ну и спользует,это я вижу и понимаю
у меня другой вопрос был
где описаны моменты перехода с одного на другой.

Я конечно в меру тупой но всё таки очень хотелось бы понять,спасибо за отзывчивость sm.gif

Сообщение отредактировал ветерок - Jun 4 2017, 03:36


--------------------
Go to the top of the page
 
+Quote Post
Harvester
сообщение Jun 4 2017, 06:22
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846



Цитата(ветерок @ Jun 4 2017, 05:56) *
В каком месте даташита, можно ткнуть пальцем где явно описан этот примитив ?
Например конкретно это :" ICR1 задаёт период следования импульсов"
а OCR1A (или ICR1, если режим 9) задаёт скважность (точнее длительность импульса)" это вроде как-то понятно
мне не понятно где написано переключение сравнения с OCR1A на ICR1 и обратно.

п. 16.9.5 стр. 127:
Цитата
The counter counts repeatedly from BOTTOM (0x0000) to TOP and then from TOP to BOTTOM. In
non-inverting Compare Output mode, the Output Compare (OC1x) is cleared on the compare match between
TCNT1 and OCR1x while upcounting, and set on the compare match while downcounting.
...
The PWM resolution for the phase and frequency correct PWM mode can be defined by either ICR1 or OCR1A.
...
In phase and frequency correct PWM mode the counter is incremented until the counter value matches either
the value in ICR1 (WGM13:0 = 8), or the value in OCR1A (WGM13:0 = 9).

В переводе на русский:
При WGM13:0 = 8 счетчик считает от BOTTOM (0x0000) до TOP (ICR1) и обратно до BOTTOM.
В неинвертированном режиме в момент совпадения значения счетчика с OCR1 выход OC1x сбрасывается (при прямом счете) и устанавливается (при обратном счете).
В Вашем случае (инвертированный режим) - наоборот.


--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ветерок   Ищу третий месяц объяснение этих 4 строчек.   Jun 3 2017, 17:21
- - _pv   а ещё больше картинки слабо сделать?   Jun 3 2017, 17:49
- - ветерок   Допустим... А где это написано ?   Jun 3 2017, 18:05
- - _pv   таблица 16-4, столбец TOP   Jun 3 2017, 18:23
- - Den64   Адекватно тему создать можно было? (я б так вопрос...   Jun 3 2017, 18:26
- - ветерок   совершенно верно "При WGM13:0 = 8 счетчик сч...   Jun 4 2017, 09:40
|- - Den64   Цитата(ветерок @ Jun 4 2017, 12:40) тут к...   Jun 4 2017, 09:46
- - ветерок   оригинал читаю и перевод смотрел ну его смысла н...   Jun 4 2017, 09:48
|- - Den64   Цитата(ветерок @ Jun 4 2017, 12:48) OCR1 ...   Jun 4 2017, 11:56
- - aiwa   Цитата(ветерок @ Jun 3 2017, 20:21) но в ...   Jun 5 2017, 13:21
- - Эдди   Ты-то сам эту белиберду читал? Код uint16_t x = 1...   Jun 5 2017, 14:52
|- - Сергей Борщ   QUOTE (Эдди @ Jun 5 2017, 17:52) И непоня...   Jun 5 2017, 20:24
- - akl   Цитата(Эдди @ Jun 5 2017, 18:52) И непоня...   Jun 6 2017, 03:44
- - Эдди   Цитата(akl @ Jun 6 2017, 06:44) В этом ре...   Jun 6 2017, 05:19


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th August 2025 - 22:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016