Занятие №8. Реализация ШИМ — Микроконтроллеры и Технологии
Под режимом работы 16-разр. таймера понимается его алгоритм счета и поведение связанного с ним выхода формирователя импульсов, что определяется комбинацией бит, задающих режим работы таймера (WGMn3-0) и режим формирования выходного сигнала (COMnx1:0). При этом биты задания режима формирования выходного сигнала не влияют на алгоритм счета, т.к. алгоритм счета зависит только от состояния бит задания режима работы таймера. В режимах с ШИМ биты COMnx1:0 позволяют включить/отключить инверсию на генерируемом ШИМ-выходе (т.е. выбрать ШИМ с инверсией или ШИМ без инверсии). Для режимов без ШИМ биты COMnx1:0 определяют, какое действие необходимо выполнить при возникновении совпадения: сбросить, установить или инвертировать выход (см. также “Блок формирования выходного сигнала” и «Временные диаграммы 16-разр. таймеров-счетчиков»).
Нормальный режим работы
Самым простым режимом работы является нормальный режим (WGMn3-0 = 0b0000).
Фактически, флаг переполнения TOVn является 17-ым битом таймера-счетчика за тем исключением, что он только устанавливается и не сбрасывается. Однако программно это свойство может быть использовано для повышения разрешающей способности таймера, если использовать прерывание по переполнению таймера, при возникновении которого флаг TOVn сбрасывается автоматически. Для нормального режима работы не существует каких-либо особых ситуаций, поэтому запись нового состояния счетчика может быть выполнена в любой момент.
В нормальном режиме можно использовать блок захвата. Однако при этом следует соблюдать, чтобы максимальный интервал времени между возникновениями внешних событий не превысил периода переполнения счетчика. Если такое условие не соблюдается, необходимо использовать прерывание по переполнению таймера-счетчика или предделитель.
Блок сравнения может использоваться для генерации прерываний. Не рекомендуется использовать выход OCnx для генерации сигналов в нормальном режиме работы, т.к. в этом случае будет затрачена значительная часть процессорного времени.
Режим сброса таймера при совпадении (СТС)
В режиме СТС (WGM01, WGM00 =0b10) регистр OCR0 используется для задания разрешающей способности счетчика. Если задан режим CTC и значение счетчика (TCNT0) совпадает со значением регистра OCR0, то счетчик обнуляется (TCNT0=0). Таким образом, OCR0 задает вершину счета счетчика, а, следовательно, и его разрешающую способность. В данном режиме обеспечивается более широкий диапазон регулировки частоты генерируемых прямоугольных импульсов. Он также упрощает работу счетчика внешних событий.
В режиме сброса таймера при совпадении (WGMn3-0 = 0b0100 или 0b1100) разрешающая способность таймера задается регистрами OCRnA или ICRn. В режиме СТС происходит сброс счетчика (TCNTn), если его значение совпадает со значением регистра OCRnA (WGMn3-0 = 0b0100) или с ICRn (WGMn3-0 = 0b1100). Значение регистра OCRnA или ICRn определяет верхний предел счета, а, следовательно, и разрешающую способность таймера. В данном режиме обеспечивается более широкий диапазон регулировки частоты генерируемых прямоугольных импульсов. Он также упрощает работу счетчика внешних событий. Временная диаграмма работы таймера в режиме СТС показана на рисунке 1. Счетчик (TCNTn) инкрементирует свое состояние до тех пор, пока не возникнет совпадение со значением OCRnA или ICRn, а затем счетчик (TCNTn) сбрасывается.
Рисунок 1 – Временная диаграмма для режима СТС
По достижении верхнего предела счета может генерироваться прерывание с помощью флагов OCFnA или ICFn, соответствующим используемым регистрам для задания верхнего предела счета. Если прерывание разрешено, то процедура обработки прерывания может использоваться для обновления верхнего предела счета. Однако, задание значения вершины счета близкого к значению нижнего предела счета, когда счетчик работает без предделения или с малым значением предделения, необходимо выполнять с особой осторожностью, т.к. в режиме СТС нет двойной буферизации. Если значение, записанное в OCRnA или ICRn, меньше текущего значения TCNTn, то сброс счетчика по условию совпадения наступит, когда он достигнет максимального значения (0xFFFF), затем перейдет в исходное состояние 0x0000 и достигнет нового значения OCRnA или ICRn. Во многих случаях возникновение такой ситуации не желательно. В качестве альтернативы может выступить режим быстрой ШИМ, где регистр OCRnA определяет верхний предел счета (WGMn3-0 = 0b1111), т.к. в этом случае OCRnA имеет двойную буферизацию.
Для генерации сигнала в режиме CTC выход OCnA может использоваться для изменения логического уровня при каждом совпадении, для чего необходимо задать режим переключения (COMnA1, COMnA0 = 0b01). Значение OCnA будет присутствовать на выводе порта, только если для данного вывода задано выходное направление.
где переменная N задает коэффициент деления предделителя (1, 8, 32, 64, 128, 256 или 1024).
Также как и для нормального режима работы, флаг TOV0 устанавливается на том же такте таймера, когда его значение изменяется с 0xFFFF на 0x0000.
Режим быстрой широтно-импульсной модуляции (ШИМ) (WGMn3-0 = 0b0101, 0b0110, 0b0111, 0b1110, 0b1111) предназначен для генерации ШИМ-импульсов повышенной частоты. В отличие от других режимов работы в этом используется однонаправленная работа счетчика. Счет выполняется в направлении от нижнего к верхнему пределу счета.
Если задан неинвертирующий режим выхода, то при совпадении TCNTn и OCRnx сигнал OCnx устанавливается, а на верхнем пределе счета сбрасывается. Если задан инвертирующий режим, то выход OCnx сбрасывается при совпадении и устанавливается на верхнем пределе счета.
Разрешающая способность ШИМ может быть фиксированной 8, 9 или 10 разрядов или задаваться регистром ICRn или OCRnA, но не менее 2 разрядов (ICRn или OCRnA = 0x0003) и не более 16 разрядов (ICRn или OCRnA = 0xFFFF). Разрешающая способность ШИМ при заданном значении верхнего предела (ВП) вычисляется следующим образом:
В режиме быстрой ШИМ счетчик инкрементируется до совпадения его значения с одним из фиксированных значений 0x00FF, 0x01FF или 0x03FF (если WGMn3:0 = 0b0101, 0b0110 или 0b0111, соответственно), значением в ICRn (если WGMn3:0 = 0b1110) или значением в OCRnA (если WGMn3:0 = 0b1111), а затем сбрасывается следующим тактом синхронизации таймера. Временная диаграмма для режима быстрой ШИМ представлена на рисунке 2. На рисунке показан режим быстрой ШИМ, когда для задания верхнего предела используется регистр OCRnA или ICRn. Значение TCNTn на временной диаграмме показано в виде графика функции для иллюстрации однонаправленности счета. На диаграмме показаны как инвертированный, так и неинвертированный ШИМ-выходы. Короткой горизонтальной линией показаны точки на графике TCNTn, где совпадают значения OCRnx и TCNTnx. Флаг прерывания OCnx устанавливается при возникновении совпадении.
Рисунок 2 – Временная диаграмма для режима быстрой ШИМ
Флаг переполнения таймера-счетчика (TOVn) устанавливается всякий раз, когда счетчик достигает верхнего предела. Дополнительно тем же тактовым импульсом вместе с флагом TOVn могут установиться флаги OCnA или ICFn, если для задания верхнего предела используется регистр OCRnA или ICRn, соответственно. Если одно из этих прерываний разрешено, то в процедуре обработки прерывания может быть выполнено обновление верхнего предела счета и порогов сравнения.
Если изменяется значение верхнего предела счета, то необходимо соблюдение условия, чтобы записываемое новое значение верхнего предела было больше или равно значений во всех регистрах порога сравнения. В противном случае совпадение между TCNTn и OCRnx никогда не возникнет. Обратите внимание, что при использовании фиксированных значений верхнего предела во время записи в регистры OCRnx происходит маскирование к 0 неиспользуемых разрядов.
Механизм модификации регистра ICRn отличается от OCRnA в том случае, если он используется для задания верхнего предела. Регистр ICRn не имеет двойной буферизации. Это означает, что если в ICRn записывается малое значение во время работы счетчика с малым предделением или без него, то имеется опасность записи в регистр ICRn значения, которое окажется меньше текущего значения TCNTn. Как результат, в такой ситуации будет пропущено совпадение на вершине счета. В этом случае счетчик дойдет до максимального значения (0xFFFF), перезапустится со значения 0x0000, а только затем возникнет совпадение. Регистр OCRnA содержит схему двойной буферизации, поэтому, его можно модифицировать в любой момент времени.
Если выполняется запись по адресу OCRnA, то фактически значение помещается в буферный регистр OCRnA. Если же возникает совпадение между TCNTn и вершиной счета, то следующим тактом синхронизации таймера происходит копирование буферного регистра в регистр порога сравнения OCRnA. Обновление регистра выполняется тем же тактом, что и сброс TCNTn и установка флага TOVn.
Рекомендуется использовать регистр ICRn для задания верхнего предела, если верхний предел счета является константой. В этом случае также освобождается регистр OCRnA для генерации ШИМ-сигнала на выходе OCnA. Однако, если частота ШИМ динамически изменяется (за счет изменения верхнего предела), то в этом случае выгоднее использовать регистр OCRnA для задания верхнего предела, т.к. он поддерживает двойную буферизацию.
В режиме быстрой ШИМ блоки сравнения позволяют генерировать ШИМ-сигналы на выводах OCnx. Если COMnx1:0 =0b10, то задается ШИМ без инверсии выхода, а если COMnx1:0 = 0b11, то задается режим ШИМ с инверсией на выходе (см. таблицу 59). Фактическое значение OCnx можно наблюдать на выводе порта, если для него задано выходное направление (DDR_OCnx). ШИМ-сигнал генерируется путем установки (сброса) регистра OCnx при возникновении совпадения между OCRnx и TCNTn, а также путем сброса (установки) регистра OCnx вместе со сбросом счетчика (переход с верхнего предела на нижний предел).
Частота ШИМ выходного сигнала для заданного значения верхнего предела (ВП) определяется выражением:
где N – переменная, которая задает значение коэффициента предделения (1, 8, 32, 64, 128, 256 или 1024).
Запись предельных значений в регистр OCRnx связана с особыми случаями в генерации ШИМ-импульсов. Если OCRnx установить равным нижнему пределу (0x0000), то на выходе будет возникать короткий импульс каждый (ВП+1)-ый такт синхронизации таймера. Запись в OCRnx значения равного верхнему пределу приведет к установке постоянного уровня лог. 1 или 0 на выходе (зависит от выбранной с помощью бит COMnx1:0 полярности выходного сигнала).
Если требуется генерация меандра (прямоугольные импульсы со скважностью 2 или заполнением 50%) высокой частоты, то необходимо использовать режим быстрой ШИМ с установкой бит COMnA1:0 = 0b01, которая вызывает переключение (инвертирование) логического уровня на выходе OCnA при каждом совпадении. Данное применимо, только если OCRnA используется для задания верхнего предела (WGMn3-0 =0b1111). Максимальная генерируемая частота меандра в этом случае fOCnA = fclk_I/O/2, если OCRnA =0x0000. Данная особенность аналогична переключению OCnA в режиме СТС за исключением двойной буферизации, которая имеется в режиме быстрой ШИМ.
Режим широтно-импульсной модуляции с фазовой коррекцией (Phase Correct)
Режим широтно-импульсной модуляции с фазовой коррекцией (ШИМ ФК) (WGMn3-0 = 0b0001, 0b010, 0b0011, 0b1010 или 0b1011) предназначен для генерации ШИМ сигнала с фазовой коррекцией и высокой разрешающей способностью. Режим ШИМ ФК основан на двунаправленной работе таймера-счетчика. Счетчик циклически выполняет счет в направлении от нижнего предела (0x0000) до верхнего предела, а затем обратно от верхнего предела к нижнему пределу. Если задан неинвертирующий режим выхода формирователя импульсов, то выход OCnx сбрасывается/устанавливается при совпадении значений TCNTn и OCRnx во время прямого/обратного счета. Если задан инвертирующий режим выхода, то, наоборот, во время прямого счета происходит установка, а во время обратного – сброс выхода OCnx. При двунаправленной работе максимальная частота ШИМ-сигнала меньше, чем при однонаправленной работе, однако, за счет такой особенности, как симметричность в режимах ШИМ с двунаправленной работой, данные режимы предпочитают использовать при решении задач управления приводами.
Разрешающая способность ШИМ в данном режиме может быть либо фиксированной (8, 9 или 10 разрядов) либо задаваться с помощью регистра ICRn или OCRnA. Минимальная разрешающая способность равна 2-м разрядам (ICRn или OCRnA = 0x0003), а максимальная -16-ти разрядам (ICRn или OCRnA =0xFFFF). Если задан верхний предел, то разрешающая способность ШИМ в данном режиме определяется следующим образом:
В режиме ШИМ ФК счетчик инкрементируется пока не достигнет одного из фиксированных значений 0x00FF, 0x01FF или 0x03FF (соответственно для WGMn3-0 = 0b0001, 0b0010 или 0b0011), а также значения равного ICRn (если WGMn3-0 = 0b1010) или OCRnA (если WGMn3:0 = 0b1011). Далее, при достижении верхнего предела, счетчик изменяет направление счета. Значение TCNTn остается равным верхнему пределу в течение одного такта синхронизации таймера. Временная диаграмма для режима ШИМ ФК представлена на рисунке 3. На рисунке показан режим ШИМ ФК с использованием регистра OCRnA или ICRn для задания верхнего предела. Состояние TCNTn представлено в виде графика функции для иллюстрации двунаправленности счета. На рисунке представлены, как неинвертированный, так и инвертированный ШИМ-выход. Короткие горизонтальные линии указывают точки на графике изменения TCNTn, где возникает совпадение со значением OCRnx. Флаг прерывания OCnx устанавливается при возникновении совпадения.
Рисунок 3 – Временная диаграмма для режима ШИМ ФК
Флаг переполнения таймера-счетчика (TOVn) устанавливается всякий раз, когда счетчик достигает нижнего предела. Если для задания верхнего предела используется регистр OCRnA или ICRn, то, соответственно устанавливается флаг OCnA или ICFn тем же тактовым импульсом, на котором произошло обновление регистра OCRnx из буферного регистра (на вершине счета). Флаги прерывания могут использоваться для генерации прерывания по достижении счетчиком нижнего или верхнего предела.
При изменении значения верхнего предела счета необходимо следить, чтобы оно было больше или равно значениям во всех регистрах сравнения. В противном случае совпадение между TCNTn и OCRnx никогда не возникнет. Обратите внимание, что при использовании фиксированных значений верхнего предела счета во время записи в регистры OCRnx неиспользуемые разряды обнуляются. Третий период на рисунке 53 иллюстрирует случай, когда динамическое изменение верхнего предела счета приводит к генерации несимметричного импульса. Данная особенность основывается на времени обновления регистра OCRnx. Поскольку, обновление OCRnx возникает на вершине счета, то и период ШИМ начинается и заканчивается на вершине счета. Это подразумевает, что длительность обратного счета определяется предыдущим значением верхнего предела, а прямого – новым значением верхнего предела. Если два этих значения разные, то и длительность прямого и обратного счета будет также отличаться. Различие в длительности приводит несимметричности выходных импульсов.
Если стоит задача изменения верхнего предела при работающем счетчике, то вместо этого режима рекомендуется использовать режим ШИМ ФЧК (фазовая и частотная коррекция). Если используется статическое значение верхнего предела, то между данными режимами практически нет отличий.
В режиме ШИМ ФК блоки сравнения позволяют генерировать ШИМ-сигналы на выводах OCnx. Если установить COMnx1:0 = 0b10, то выход ШИМ будет без инверсии, а если COMnx1:0=0b11, то с инверсией. Фактическое значение OCnx можно наблюдать на выводе порта, если в регистре направления данных для данного вывода порта задано выходное направление (DDR_OCnx). ШИМ-сигнал генерируется путем установки (сброса) регистра OCnx при совпадении значений OCRnx и TCNTn во время прямого счета, а также путем сброса (установки) регистра OCnx при совпадении между OCRnx и TCNTn во время обратного счета. Результирующая частота ШИМ-сигнала в режиме ШИМ ФК при заданном верхнем пределе (ВП) может быть вычислена по следующему выражению:
где N – коэффициент деления предделителя (1, 8, 32, 64, 128, 256 или 1024).
Запись предельных значений в регистр OCRnx связано с особыми случаями в генерации ШИМ-сигналов в режиме ШИМ ФК. Если задать режим ШИМ без инверсии и OCRnx установить равным нижнему пределу, то на выходе непрерывно будет установлен лог. 0, а если равным верхнему пределу, то на выходе постоянно присутствует лог. 1. Для ШИМ с инверсией указанные уровни необходимо заменить противоположными.
Если задать использование OCnA в качестве верхнего предела (WGMn3:0 = 0b1011) и установить COMnA1:0 =0b01, то на выходе OCnA будет генерироваться меандр.
Режим широтно-импульсной модуляции с фазовой и частотной коррекцией (Phase and Frequency Correct)
Режим широтно-импульсной модуляции с фазовой и частотной коррекцией (ШИМ ФЧК) (WGMn3-0 = 0b1000 или 0b1001) предназначен для генерации ШИМ-импульсов высокой разрешающей способности с фазовой и частотной коррекцией. Также как и режим ШИМ ФК режим ШИМ ФЧК основан на двунаправленной работе счетчика. Счетчик циклически считает от нижнего предела (0x0000) до верхнего предела, а затем обратно от верхнего предела к нижнему пределу. Если задан неинвертирующий режим ШИМ, то выход OCnx сбрасывается, если возникает совпадение между TCNTn и OCRnx во время прямого счета, и устанавливается, если возникает совпадение во время обратного счета. В инвертирующем режиме работа инверсная. Двунаправленная работа, по сравнению с однонаправленной, связана с генерацией более низких частот. Однако, благодаря симметричности в режимах ШИМ с двунаправленным счетом, их применение предпочтительно в задачах управления приводами.
Основное отличие между режимами ШИМ ФК и ШИМ ФЧК состоит в моменте обновления регистра OCRnx из буферного регистра OCRnx (см. рисунок 3 и рисунок 4).
Разрешающая способность ШИМ в этом режиме может задаваться с помощью регистра ICRn или OCRnA. Минимальная разрешающая способность равна 2-ум разрядам (ICRn или OCRnA = 0x0003), а максимальная разрешающая способность — 16-ти разрядам (ICRn или OCRnA = 0xFFFF). Разрешающая способность ШИМ в разрядах может быть вычислена по следующему выражению:
В режиме ШИМ ФЧК счетчик инкрементируется до совпадения со значением в ICRn (WGMn3:0 = 0b1000) или в OCRnA (WGMn3:0 = 0b1001). Это означает достижение вершины счета, после чего происходит изменение направления счета. Значение TCNTn остается равным вершине счета в течение одного такта синхронизации таймера. Временная диаграмма для режима ШИМ ФЧК показана на рисунке 54. На рисунке показан режим ШИМ ФЧК, когда вершину счета задает регистр OCRnA или ICRn. Значение TCNTn показано в виде графика функции для иллюстрации двунаправленности счета. На диаграмме показан как неинвертирующий, так и инвертирующий ШИМ выходы. Короткие горизонтальные линии указывают на точки график TCNTn, где возникает совпадение между OCRnx и TCNTn. Флаг прерывания OCnx устанавливается после возникновения совпадения.
Рисунок 4 – Временная диаграмма режима ШИМ с фазовой и частотной коррекцией
Флаг переполнения таймера-счетчика (TOVn) устанавливается тем же тактом, когда произошло обновление регистров значением из буферного регистра (на нижнем пределе счета). Если для задания верхнего предела используется регистр OCRnA или ICRn, то по достижении счетчиком верхнего предела устанавливается флаг OCnA или ICFn, соответственно. Флаги прерывания могут использоваться для генерации прерывания при достижении счетчиком верхнего или нижнего предела.
При изменении верхнего предела необходимо следить, чтобы новое значение было больше или равно значениям во всех регистрах порога сравнения. В противном случае, если задано значение верхнего предела меньше любого из значений регистров порога сравнения, совпадение между TCNTn и OCRnx никогда не наступит.
На рисунке 4 показано, что в отличие от режима ШИМ ФК, генерируемый выходной сигнал симметричен на всех периодах. Поскольку, регистры OCRnx обновляются на нижнем пределе счета, то длительности прямого и обратного счетов всегда равны. В результате выходные импульсы имеют симметричную форму, а, следовательно, и откорректированную частоту.
Использование регистра ICRn для задания верхнего предела рекомендуется, если значение верхнего предела является константой. В этом случае также освобождается регистр OCRnA для широтно-импульсной модуляции импульсов на выводе OCnA. Однако если требуется динамическое изменение частоты ШИМ за счет изменения верхнего предела, то для задания верхнего предела рекомендуется использовать регистр OCRnA за счет наличия у него двойной буферизации.
В режиме ШИМ ФЧК блоки сравнения позволяют генерировать ШИМ-импульсы на выводе OCnx. Если COMnx1:0 = 0b10, то задается неинвертирующий ШИМ выход, а, если COMnx1:0=0b11, то инвертирующий (см. таблицу 60). Значение OCnx будет присутствовать на соответствующем выводе порта только в случае, если для него задано выходное направление. ШИМ сигнал генерируется путем установки (сброса) регистра OCnx при совпадении между OCRnx и TCNTn во время прямого счета и сброса (установки) регистра OCnx при совпадении между OCRnx и TCNTn во время обратного счета. Частота ШИМ в данном режиме при заданном верхнем пределе (ВП) счета определяется следующим образом:
где N – коэффициент деления предделителя (1, 8, 32, 64, 128, 256 или 1024).
Запись предельных значений в регистр OCRnx связана с особыми случаями в генерации ШИМ-сигналов в данном режиме. Если задать OCRnx равным нижнему пределу (0x0000), то в неинвертирующем режиме на выходе будет постоянного присутствовать низкий логический уровень, а при записи значения равного верхнему пределу на выходе будет длительно присутствовать высокий логический уровень. В инвертирующем режиме приведенные уровни будут противоположными.
Если OCRnA используется для задания верхнего предела (WGMn3:0 = 0b1001) и COMnA1:0 = 0b01, то на выходе OCnA будет генерироваться меандр.
Конфигурируем ШИМ в Bascom — Проекты — AVR project.ru
Достаточно часто появляется необходимость использовать управление какого-либо устройства (будь то лампочка накаливания, двигатель, ТЭН или простой светодиод) посредством ШИМ.
Наверно объяснять что это такое и в чем прелесть управления ШИМом не нужно, информации в интернете накопилось уже достаточно много, да и врядли мне получиться разжевать эту тему лучше. Поэтому сразу перейдем к делу, а именно запустим ШИМ на Attiny2313 средствами Bascom-AVR.
Шим в микроконтроллерах AVR работает на таймерах-счетчиках, в мк Tiny2313 таких таймеров всего 2: 8-и битный Timer0 считающий до 255 и 16-и битный Timer1 способный считать до 65535. Каждый таймер управляет двумя ШИМ-каналами, таким образом всего аппаратно можно реализовать целых 4 канала ШИМ.
Информацию о количестве каналов ШИМ и разрядность каждого канала можно глянуть на страницах даташита на микроконтроллер.
Так, на борту Attiny2313 имеются два 8-и битных канала ШИМ работающих от Timer0 и еще два канала под управлением таймера Timer1 имеют программируемую разрядность от 8 до 10 бит. В даташите эти ноги подписываются следующим образом:
Для того чтобы сконфигурировать таймер Timer1 на генерацию ШИМ в Bascom достаточно записать следующую строку :
Config Timer1 = Pwm, Pwm = 8, Compare A Pwm = Clear Up, Compare B Pwm = Clear Down, Prescale = 64
Pwm = 8 выбирается разрядность ШИМ, для Timer1 как писалось выше может быть также Pwm = 9 или Pwm = 10.
Compare A/B Pwm = Clear Up/Clear Down здесь конфигурируем активное состояние для каждого канала ШИМ (А и В).
Prescale = 64 — уже знакомая строка конфигурации таймера, отвечающая за предварительное деление частоты переполнения таймера, в данном случае делитель будет задавать частоту ШИМ. Можем менять на свое усмотрение Prescale= 1|8|64|256|1024
Скважность генерируемого сигнала определяется значением, которые мы записываем в регистры сравнения OCR1A и OCR1B (каналов ШИМ же у нас два на одном таймере, вот по одному регистру на канал А и В). Со значениями, которые лежат в этих регистрах постоянно сравнивается значение счетного регистра (туда оно копируется с таймера), при их совпадении происходит переключение ноги мк в активное состояние, а счетный регистр продолжает считать до своего максимального значения. Досчитав до максимума, таймер начинает считать в обратном направлении, и дойдя до момента когда значения счетного регистра и регистра сравнения снова совпадут, произойдет обратное переключение на ноге микроконтроллера (см. рисунок ниже)
Для нас регистры сравнения OCR1A и OCR1B всего-навсего переменные, в которые мы можем положить какое-нибудь значение. Например, так:
OCR1A = 100
OCR1B = 150
В баскоме для удобства предусмотрено и другое название этих регистров: PWM1A и PWM1B, так предыдущие строки будут равнозначны следующим:
PWM1A = 100
PWM1B = 150
Теперь разберемся, как влияет конфигурация активного состояния Clear Up/Clear Down на то, что происходит на выходе ШИМ в зависимости от значения регистра сравнения.
Когда выход сконфигурирован как Compare A Pwm = Clear Down активным состоянием выхода является высокий уровень и при увеличении значения регистра OCR (PWM) пропорциональное напряжение на этой ноге будет расти. С точностью до наоборот все будет происходить, если выход сконфигурирован как Compare A Pwm = Clear Up. Все это хорошо проиллюстрировано на картинке ниже
Значения, которые могут принимать эти регистры сравнения зависят от того, какую разрядность канала ШИМ мы выбрали. При PWM = 8 (8-и битный шим) возможно значение от 0 до 255; при PWM = 9 от 0 до 511; при PWM = 10 от 0 до 1023. Тут я думаю, все понятно.
Теперь небольшой пример:
подключим к микроконтроллеру светодиоды как показано на схеме (питание мк на схеме не указано)
И напишем небольшую программку:
$crystal = 4000000
Config Timer1 = Pwm, Pwm = 9, Compare A Pwm = Clear Down, Compare B Pwm = Clear Up, Prescale = 8
Config PORTB.3 = Output
Config PORTB.4 = Output
Do
Incr Pwm1a ‘плавно увеличиваем значение регистра сравнения OCR1A
Incr Pwm1b ‘плавно увеличиваем значение регистра сравнения OCR1B
Waitms 20 ‘добавим задержку
Loop
End
После того как откомпилировали и прошили программу в контроллер один из светодиодов (D1) будет плавно набирать яркость, а другой (D2) плавно гаснуть
Если сейчас ткнуть осциллографом на выходы ШИМ, то можем увидеть такую вот картину с изменяющейся скважностью импульсов (синий сигнал на ОС1А, красный на ОС1В):
Config Timer0 = Pwm, Compare A Pwm = Clear Up, Compare B Pwm = Clear Down, Prescale = 64
Теперь аналогичный пример со светодиодами, но теперь шим сгенерируем при помощи Timer0:
$regfile = «attiny2313.dat»
$crystal = 4000000
Config Timer0 = Pwm, Compare A Pwm = Clear Down, Compare B Pwm = Clear Up, Prescale = 8
Config PORTB.2 = Output
Config PORTD.5 = Output
Do
Incr Pwm0a ‘плавно увеличиваем значение регистра OCR0A
Incr Pwm0b ‘плавно увеличиваем значение регистра OCR0B
Waitms 20 ‘добавим задержку
Loop
End
Подключим светодиоды к выходу ШИМ Timer0, как показано на схеме:
Тут все аналогично: первый светодиод (D1) будет плавно набирать яркость, а второй (D2) будет плавно гаснуть.
Подсчет частоты генерации ШИМ
Если требуется узнать частоту генерации ШИМ, то сделать это не сложно. Смотри на формулу ниже:
Частота ШИМ = (частота кварца/предделитель) / (размер счетного регистра *2)
Для примера подсчитаем несколько значений:
1. Частота кварца = 4000000 Гц, предделитель = 64, разрядность ШИМ 10 бит => размер счетного регистра = 1024
Частота ШИМ = (4000000/64)/(1024*2) = 122 Гц
2. Частота кварца = 8000000 Гц, предделитель = 8, разрядность ШИМ 9 бит => размер счетного регистра = 512
Частота ШИМ = (8000000/8)/(512*2) = 976,56 Гц
3. Частота кварца 16000000 Гц, предделитель = 1, разрядность ШИМ 8 бит => размер счетного регистра = 256
Частота ШИМ = (16000000/1)/(256*2) = 31250 Гц
Конфигурируем ШИМ в Bascom « схемопедия
Достаточно часто появляется необходимость использовать управление какого-либо устройства (будь то лампочка накаливания, двигатель, ТЭН или простой светодиод) посредством ШИМ. Наверно объяснять что это такое и в чем прелесть управления ШИМом не нужно, информации в интернете накопилось уже достаточно много, да и врядли мне получиться разжевать эту тему лучше. Поэтому сразу перейдем к делу, а именно запустим ШИМ на Attiny2313 средствами Bascom-AVR. Шим в микроконтроллерах AVR работает на таймерах-счетчиках, в мк Tiny2313 таких таймеров всего 2: 8-и битный Timer0 считающий до 255 и 16-и битный Timer1 способный считать до 65535. Каждый таймер управляет двумя ШИМ-каналами, таким образом всего аппаратно можно реализовать целых 4 канала ШИМ. Информацию о количестве каналов ШИМ и разрядность каждого канала можно глянуть на страницах даташита на микроконтроллер. Так, на борту Attiny2313 имеются два 8-и битных канала ШИМ работающих от Timer0 и еще два канала под управлением таймера Timer1 имеют программируемую разрядность от 8 до 10 бит. В даташите эти ноги подписываются следующим образом:
Для того чтобы сконфигурировать таймер Timer1 на генерацию ШИМ в Bascom достаточно записать следующую строку :
Config Timer1 = Pwm, Pwm = 8, Compare A Pwm = Clear Up, Compare B Pwm = Clear Down, Prescale = 64
Pwm = 8 выбирается разрядность ШИМ, для Timer1 как писалось выше может быть также Pwm = 9 или Pwm = 10.
Compare A/B Pwm = Clear Up/Clear Down здесь конфигурируем активное состояние для каждого канала ШИМ (А и В).
Prescale = 64 – уже знакомая строка конфигурации таймера, отвечающая за предварительное деление частоты переполнения таймера, в данном случае делитель будет задавать частоту ШИМ. Можем менять на свое усмотрение Prescale= 1|8|64|256|1024
Скважность генерируемого сигнала определяется значением, которые мы записываем в регистры сравнения OCR1A и OCR1B (каналов ШИМ же у нас два на одном таймере, вот по одному регистру на канал А и В). Со значениями, которые лежат в этих регистрах постоянно сравнивается значение счетного регистра (туда оно копируется с таймера), при их совпадении происходит переключение ноги мк в активное состояние, а счетный регистр продолжает считать до своего максимального значения. Досчитав до максимума, таймер начинает считать в обратном направлении, и дойдя до момента когда значения счетного регистра и регистра сравнения снова совпадут, произойдет обратное переключение на ноге микроконтроллера (см. рисунок ниже)
Для нас регистры сравнения OCR1A и OCR1B всего-навсего переменные, в которые мы можем положить какое-нибудь значение. Например, так:
OCR1A = 100
OCR1B = 150
В баскоме для удобства предусмотрено и другое название этих регистров: PWM1A и PWM1B, так предыдущие строки будут равнозначны следующим:
PWM1A = 100
PWM1B = 150
Теперь разберемся, как влияет конфигурация активного состояния Clear Up/Clear Down на то, что происходит на выходе ШИМ в зависимости от значения регистра сравнения. Когда выход сконфигурирован как Compare A Pwm = Clear Down активным состоянием выхода является высокий уровень и при увеличении значения регистра OCR (PWM) пропорциональное напряжение на этой ноге будет расти. С точностью до наоборот все будет происходить, если выход сконфигурирован как Compare A Pwm = Clear Up. Все это хорошо проиллюстрировано на картинке ниже
Значения, которые могут принимать эти регистры сравнения зависят от того, какую разрядность канала ШИМ мы выбрали. При PWM = 8 (8-и битный шим) возможно значение от 0 до 255; при PWM = 9 от 0 до 511; при PWM = 10 от 0 до 1023. Тут я думаю, все понятно.
Теперь небольшой пример: подключим к микроконтроллеру светодиоды как показано на схеме (питание мк на схеме не указано)
И напишем небольшую программку:
$regfile = “attiny2313.dat”
$crystal = 4000000
Config Timer1 = Pwm, Pwm = 9, Compare A Pwm = Clear Down, Compare B Pwm = Clear Up, Prescale = 8
Config PORTB.3 = Output
Config PORTB.4 = Output
Do
Incr Pwm1a ‘плавно увеличиваем значение регистра сравнения OCR1A
Incr Pwm1b ‘плавно увеличиваем значение регистра сравнения OCR1B
Waitms 20 ‘добавим задержку
Loop
End
После того как откомпилировали и прошили программу в контроллер один из светодиодов (D1) будет плавно набирать яркость, а другой (D2) плавно гаснуть
Если сейчас ткнуть осциллографом на выходы ШИМ, то можем увидеть такую вот картину с изменяющейся скважностью импульсов (синий сигнал на ОС1А, красный на ОС1В):
Конфигурация таймера Timer0 для генерации ШИМ практически такая же, за исключением того, что timer0 это 8-и битный таймер, и поэтому ШИМ генерируемый этим таймером будет всегда иметь разрядность 8. Поэтому конфигурируя этот таймер, разрядность ШИМ не указывается:
Config Timer0 = Pwm, Compare A Pwm = Clear Up, Compare B Pwm = Clear Down, Prescale = 64
Теперь аналогичный пример со светодиодами, но теперь шим сгенерируем при помощи Timer0:
$regfile = “attiny2313.dat”
$crystal = 4000000
Config Timer0 = Pwm, Compare A Pwm = Clear Down, Compare B Pwm = Clear Up, Prescale = 8
Config PORTB.2 = Output
Config PORTD.5 = Output
Do
Incr Pwm0a ‘плавно увеличиваем значение регистра OCR0A
Incr Pwm0b ‘плавно увеличиваем значение регистра OCR0B
Waitms 20 ‘добавим задержку
Loop
End
Подключим светодиоды к выходу ШИМ Timer0, как показано на схеме:
Тут все аналогично: первый светодиод (D1) будет плавно набирать яркость, а второй (D2) будет плавно гаснуть.
Подсчет частоты генерации ШИМ
Если требуется узнать частоту генерации ШИМ, то сделать это не сложно. Смотри на формулу ниже:
Частота ШИМ = (частота кварца/предделитель) / (размер счетного регистра *2)
Для примера подсчитаем несколько значений:
1. Частота кварца = 4000000 Гц, предделитель = 64, разрядность ШИМ 10 бит => размер счетного регистра = 1024
Частота ШИМ = (4000000/64)/(1024*2) = 122 Гц
2. Частота кварца = 8000000 Гц, предделитель = 8, разрядность ШИМ 9 бит => размер счетного регистра = 512
Частота ШИМ = (8000000/8)/(512*2) = 976,56 Гц
3. Частота кварца 16000000 Гц, предделитель = 1, разрядность ШИМ 8 бит => размер счетного регистра = 256
Частота ШИМ = (16000000/1)/(256*2) = 31250 Гц
Взято с: avrproject.ru
Категория: AVR
Метки: avr
Последние статьи
Пример работы ШИМ и АЦП на ассемблере AVRStudio – Радиодед
Простенькая программка иллюстрирует работу ШИМ в режиме Fast PWM таймера Timer1 и АЦП. Написана на ассемблере, компилируется в AVR Studio. Для микроконтроллера ATmega8, который тактируется внутренним RC – генератором на 1МГц.
Исходный текст программы на ассемблере, под AVR Studio:
{codecitation class=”brush: vb; gutter: true;” width=”700px” }; Atmega8, crystal 1MHZ (internal)
; Timer Counter 1
; Fast PWM & ADC
.include “m8def.inc”
.def wreg =R16
.def duration =R17
.def wreg2 =R18
init:
ldi wreg,low(RAMEND)
out SPL,wreg
ldi wreg,high(RAMEND) ; Stack Pointer = $45F
out SPH,wreg
cli ; запретить прерывания
ldi wreg, 0b10000011 ; Вкл. Ацп, Однокр. преобр., Прерывание запрещено, СК/8 (125 kHz)
out ADCSR, wreg
ldi wreg, 0b01101110 ; AVcc, Внеш. конд. на Aref, Выравн. по лев. краю, channel 1.23V bg
out ADMUX, wreg
rcall adc_convert
;******************* TIMER1 ***********************
ldi wreg,0x00
out PORTB,wreg ; Запись 0 в порт
ldi wreg,0b00000010 ; PortB.1 (OC1A) – Output
out DDRB,wreg
ldi wreg, 0b10000001 ; неинв. 8 битный ШИМ
out TCCR1A, wreg
ldi wreg, 0b00001001 ; CK/1
out TCCR1B, wreg
ldi wreg, 0b00000000
out TIMSK, wreg
main:
ldi wreg, 250 ; 25mS
rcall delay
ldi wreg, 0b01100101 ; ADC Channel 5 (PortC.5 ; pin 28)
rcall adc_convert
ldi wreg2, 0x00
out OCR1AH, wreg2
out OCR1AL, wreg
rjmp main
;*********************** DELAYS **************************
delay: ; 0.1mS * wreg
ldi duration, 24
cycle:
nop
dec duration
brne cycle
dec wreg
brne delay
ret
;********************** AD CONVERTION *******************
adc_convert:
out ADMUX, wreg ; wreg contains channel
sbi ADCSR, ADSC ; Start Convertion
sbic ADCSR , ADSC
rjmp PC-1
in wreg, ADCL ; просто формальность (первым всегда читается ADCL)
in wreg, ADCH ; wreg contains result
ret
Southernstretch.com JEOSNDE 2PCS USB ASP + 10PIN to 6PIN адаптер Новый USBASP USBISP AVR программатор USB ATMEGA8 ATMEGA128 Кабельные сборки Промышленные и научные
JEOSNDE 2 шт. USB ASP + 10PIN к 6PIN адаптер новый USBASP USBISP AVR программатор USB ATMEGA8 ATMEGA128
M9528 Skyjacker M95 Performance Однотрубный амортизатор, 1204 Инструменты BINGFANG-W Линейный привод Моторизованные направляющие стола скольжения Стол с линейной направляющей с ходом 400 мм и шаговым двигателем Nema17 42. 1 пара черных 1 пара перчаток Memphis N9699 L Большие нейлоновые перчатки HPT 15 калибра Ninja HPT с темно-серым покрытием из вспененной губки из ПВХ.150233 Отвечает стандартам и правилам NSF, СОВМЕСТИМЫМ с BB-20B 150235 10 Большой синий корпус Система фильтрации воды для всего дома 1 Вход / выход Латунные порты Кнопка сброса давления 1 комплект, синий, Модные тележки Сохранение тепла Складная тележка для покупок Подъем по лестнице Вагонетка разное Автомобиль с колесами и Съемный холщовый мешок Цвет: бежевый, тонкая офсетная отвертка ANEX 6102/2/10, PK10 0,0310×1 3/4 ID Arbor Shim, JEOSNDE 2PCS USB ASP + адаптер 10PIN на 6PIN Новый USBASP USBISP Программатор AVR USB ATMEGA8 ATMEGA128 , FastCap SB- 8X12BL SpeedBrace 8-дюймовая 12-дюймовая черная опора, 24-дюймовый удлинительный кабель питания SATA 15pin.Ручной Вкл. Авто Выкл. Белый датчик незанятости, саморез из нержавеющей стали 18-8 # 14 x 1-3 / 4 Винты для листового металла с ферменной головкой Светлая отделка Полная резьба Количество 100 от Fastenere. Ширина 10-3 / 4 x длина 10-3 / 4 Упаковка из 10 карт Accuform MPL123CT10 PF-Cardstock Класс опасности 1 / Раздел 3H DOT Табличка Черный на оранжевой надписи ВЗРЫВООПАСНОСТЬ 1,3H 1 с графической легендой ВЗРЫВООПАСНОСТЬ 1,3H 1 с шириной 10-3 / 4 х 10-3 / 4 длины. Длина кабеля: Около 70 см Occus 10PCS 18AWG 50 + 20 см Кабель питания модульного блока питания 6Pin на 6 + 2Pin Кабель питания видеокарты 6P на двойной ленточный сплиттер 8p.Промышленный войлок F-10 у стопы с клеем, ширина 72, длина 3 фута, толщина 1/4. JEOSNDE Адаптер USB ASP + 10PIN на 6PIN 2PCS Новый USBASP USBISP Программатор AVR USB ATMEGA8 ATMEGA128 , L-SS18GZ 457 мм L-SS18GZ Hoffman Ladder Rack System Корпус Аксессуар с прямым покрытием,
1 шт. USB STK500 для ATMEGA8U2 ATMEGA8 ATMEGA128 лучший программатор AVR L
1PCS USB STK500 для ATMEGA8U2 ATMEGA8 ATMEGA128 лучший программист AVR L Электронные компоненты и полупроводники Полупроводники и активные компоненты gkdevelopers.комможно использовать на ноутбуке без последовательного порта. 1X высококачественная линия передачи данных USB. Системное программное обеспечение в настоящее время поддерживает следующие устройства во всех скоростных классах 6, 1 шт. USB STK500 для ATMEGA8U2 ATMEGA8 ATMEGA128 лучший программатор AVR L. 4, неоткрытый, программное обеспечение поддержки оригинального программного обеспечения AVRSUDIO с использованием AVRISP. Состояние: Новое: Совершенно новый. например, коробка без надписи или полиэтиленовый пакет. См. Список продавца для получения полной информации. Просмотреть все определения условий : Торговая марка: : Небрендовые / универсальные , UPC: : Не применяется : MPN: : Не применяется , 。.неиспользованный, с использованием интерфейса USB, за исключением случаев, когда товар изготовлен вручную или не был упакован производителем в нерызничную упаковку, неповрежденный товар в оригинальной упаковке (если применима упаковка). Упаковка должна быть такой же, как в розничном магазине.
Информация[email protected]
+91 7888093332
1 шт. USB STK500 для ATMEGA8U2 ATMEGA8 ATMEGA128 лучший программатор AVR L
1 шт. USB STK500 для ATMEGA8U2 ATMEGA8 ATMEGA128 лучший программатор AVR L
ATMEGA8U2 ATMEGA8 ATMEGA128 лучший программатор AVR L 1PCS USB STK500 для, системное программное обеспечение в настоящее время поддерживает следующие устройства во всех скоростных классах 6, программное обеспечение поддержки оригинального программного обеспечения AVRSUDIO с использованием AVRISP, 4, используя интерфейс USB, вы можете использование на ноутбуке без последовательного порта, 1 высококачественная линия передачи данных USB, поиск всего, что вам нужно, Бесплатная доставка, самая лучшая цена, быстрая доставка по всему миру, Посетите нас, чтобы получить уникальный опыт! для ATMEGA8U2 ATMEGA8 ATMEGA128 лучший программатор AVR L 1 шт. USB STK500, 1 шт. USB STK500 для ATMEGA8U2 ATMEGA8 ATMEGA128 лучший программист AVR L.
Seite wurde nicht gefunden. — Nusswahn
Seite wurde nicht gefunden. — нуссванAkzeptieren
Печенье Nur essenzielle akzeptieren
Individualuelle Datenschutzeinstellungen
DatenschutzeinstellungenHier finden Sie eine Übersicht über alle verwendeten Cookies.Sie können Ihre Einwilligung zu ganzen Kategorien geben oder sich weitere Informationen anzeigen lassen und so nur bestimmte Cookies auswählen.
Имя | Borlabs Cookie |
---|---|
Анбитер | Eigentümer dieser Веб-сайт |
Zweck | Speichert die Einstellungen der Besucher, die in der Cookie Box von Borlabs Cookie ausgewählt wurden. |
Имя файла cookie | borlabs-cookie |
Cookie Laufzeit | 1 Jahr |
Akzeptieren | |
---|---|
Имя | Пиксель Facebook |
Анбитер | Facebook Ireland Limited |
Zweck | Cookie von Facebook, das für Website-Analysen, Ad-Targeting und Anzeigenmessung verwendet wird. |
Datenschutzerklärung | https://www.facebook.com/policies/cookies |
Имя файла cookie | _fbp, act, c_user, datr, fr, m_pixel_ration, pl, присутствие, sb, spin, wd, xs |
Cookie Laufzeit | Sitzung / 1 Jahr |
Адаптер прокладки подседельного штыря велосипеда 27.От 2 до 30,9 мм или 31,6 мм для велосипедных компонентов и деталей Cane Creek RockShox Подседельные штыри smilesbysmaha.com
Сайт работает на WordPress.Адаптер прокладки подседельного штыря велосипеда от 27,2 до 30,9 мм или 31,6 мм для Cane Creek RockShox
Купите мужской вязаный мужской свитер с круглым вырезом с круглым вырезом и другие пуловеры YYear и другие пуловеры в магазине YYear. Пожалуйста, свяжитесь с производителем по вопросам гарантии и поддержки. 100% предварительно усадочный полиэстер — самый яркий цвет.Bonyak Jewelry 18-дюймовое колье с родиевым покрытием с 4-миллиметровыми белыми каменными бусинами апреля месяца рождения и подвеской Святой Марии Фаустины: Одежда, дата первого упоминания: 23 сентября. Наш широкий выбор элегантен для бесплатной доставки и бесплатного возврата. Купите кошелек для монет Cute Brown Bunny Bubbles Rabbit Мужские парусиновые кошельки на молнии ChangeMarvellous Case и другие кошельки и мешочки для монет, возможно, на три размера меньше, чем размер ЕС или размер США, вы можете держать его или положить в сумки, чтобы носить с собой. 10-дюймовый неглубокий сабвуфер — мощный сабвуфер мощностью 600 Вт для неглубокой установки.ACDelco 36P0440 Professional Насос гидроусилителя рулевого управления. Удобный классический традиционный дизайн, футболка Free Truck с капюшоном и карманом на веревке. Настройка шляпы. Модная новинка 3D для мужчин в магазине мужской одежды, 35% хлопок с мягкой ручкой, двойной пике. Адаптер прокладки подседельного штыря велосипеда от 27,2 до 30,9 мм или 31,6 мм для Cane Creek RockShox , ювелирные изделия: серебро 925 пробы с запеченной эмалью. Похоже, вам нравится покупать эту рубашку, Обработка драгоценных камней — с драгоценными камнями часто обращаются по-разному, чтобы улучшить их внешний вид, просто бросьте эту бандану-балаклаву в стиральную машину, 120 см / 47 дюймов (4-5 лет): рекомендуемая высота 110-120 см / 43-47 дюймов, наш широкий выбор элегантен для бесплатной доставки и бесплатного возврата, наш широкий выбор имеет право на бесплатную доставку и бесплатный возврат.Мы стремимся к 100% обслуживанию и опыту обслуживания клиентов. Купить Ожерелье с подвеской в виде круга мира LavaFashion из стерлингового серебра. Пожалуйста, обращайтесь в Roy Rose Jewelry для получения дополнительной информации о настройке. Мы копируем и вставляем ваш гравированный текст на машину, ИСПОЛЬЗУЙТЕ ВЫПУСКНОЕ МЕНЮ ДЛЯ ВЫБОРА ЦВЕТА, дата первого упоминания: 10 сентября. Адаптер прокладки подседельного штыря велосипеда 27,2 — 30,9 мм или 31,6 мм для Cane Creek RockShox , купите 4 штуки Upstream + Downstream Oxygen Датчик 234-4898×2 234-4897×1 234-4883×1 Датчик O2 на 2002 год, Отделка: Мелованная краска на водной основе.### Приветствуются оптовые заказы и предоставляются оптовые скидки. Пожалуйста, свяжитесь с нами, если у вас есть какие-либо вопросы. На Фото 9 виден штамп на небольшой кожаной нашивке на задней части сумки. Красивая старинная золотая траурная брошь для волос Небольшое количество волос повреждено Красивое качество, НОВЫЕ ФАНАТЫ FACEBOOK получают 10% СКИДКУ, я уверен, что вы будете очень довольны и гордитесь тем, что приобрели в моем магазине, ★★ Коричневая кожаная банка соответствовать 21 цвету фетра, Обратите внимание, что наши цвета представлены как можно точнее, Стопка браслетов из бисера и бисера для женщин, Как предмет в интернет-магазине, этот предмет можно сделать в точности по образцу на картинке, просто купив этот предмет или в качестве альтернативы, пожалуйста, сообщите нам, какой цвет вам нужен, чтобы мы могли согласовать образцы цветов.Рубашка с длинным рукавом Tommy Hilfiger 1/4 Zip Black Размер XL. Адаптер прокладки подседельного штыря велосипеда от 27,2 до 30,9 мм или 31,6 мм для Cane Creek RockShox . Вы можете обратиться к местному ювелиру, чтобы подобрать размер для широкой полосы, или распечатайте таблицу размеров колец для широкой полосы, чтобы измерить ее дома, модель носит размер подробно описан выше, но она обычно имеет размер 4. Овальное кольцо с опалом ручной работы в стиле ар-деко Стерлинг. Поскольку все формы тела и предпочтения по размеру различаются, у меня есть шайба немного большего размера, которую можно использовать для многих имен.эластичные боковые панели и вышитый логотип баскетбольного на груди инвалидной коляски. возможно, что в фотолаборатории цвета могут отличаться. и тщательно исследованы на предмет авторских прав, поэтому вы можете безопасно использовать их в любых своих творениях, 50 тегов готовы для ваших вечеринок, ERZGAMMA STAR ПОДВЕСНОЕ ОЖЕРЕЛЬЕ 925 СТЕРЛИНГОВОГО СЕРЕБРА. Шарикоподшипники, нагруженные ПРУЖИНОЙ, на каждом зажиме удерживают гнезда в безопасном месте для транспортировки и предотвращают потерю инструмента. ЛЮБИМЫЕ ВЕЧЕРИНКИ: Обеспечивает безмерные часы веселья и азарта для ваших гостей и тусовщиков.: NFL Seattle Seahawks Team Pet Collar, Переходник прокладки подседельного штыря велосипеда от 27,2 до 30,9 мм или 31,6 мм для Cane Creek RockShox ,: Челюсть против скольжения: Челюсть покрыта противоскользящим материалом для предотвращения скольжения или падения предметов. Плоский размер: 21 см в длину и 1 см в ширину (регулируется), Диаметр булавки на запястье: 12 мм (не для 10 мм). Все товары, которые мы продаем, проходят строгий контроль качества. Сделайте вашу ванную комнату более привлекательной, Pro-Kit снижает тяжелую центральную точку вашего автомобиля и уменьшает перо из пружин, когда вы увеличиваете скорость.Может использоваться в нескольких целях. 4 x 25 мм Колесный адаптер с шестигранной втулкой Преобразование шины Прокладка для удлинителя колеса Уширитель для модификации автомобиля RC Аксессуары: Музыкальные инструменты, Долговечность: Твердый латунный клапан и кронштейн стержня из нержавеющей стали; хромированный; для продления срока службы и предотвращения ржавчины и коррозии. карта поиска A104 Обхват приводного клинового ремня 104-дюймовый промышленный резиновый приводной ремень: автомобили и мотоциклы. Отличные цены на любимые товары для дома, замените старые Briggs & Stratton 5 794307 497316.Мощные, чем у традиционных застежек для квилтинга. Адаптер прокладки подседельного штыря велосипеда от 27,2 до 30,9 мм или 31,6 мм для Cane Creek RockShox , Harley Davidson Sportster XL88R. суставы и мышцы полностью расслабляются.
1PCS IC ATMEGA8 ATMEGA8-16PU ATMEL DIP-28 NEW Business & Industrial bluediamondinnovation Электрооборудование и принадлежности
1PCS IC ATMEGA8 ATMEGA8-16PU ATMEL DIP-28 NEW
, мы помогаем вам индивидуально продемонстрировать его.Все предметы прошли тест SGS. Метод лечения: Обработка цвета, ФУНКЦИЯ: 3-й стоп-сигнал новейшей технологии со светодиодом для функции стояночного и стоп-сигнала, Таймер сна Таймер сна может быть запрограммирован на воспроизведение музыки в течение любого периода до 60 минут. Buyartforless Lady with The Rose 30×24 Art Print Плакат Гетры для балерин от Эда Кейпо Сделано в США: плакаты и принты, и легкий титан с твердостью, намного превышающей твердость золота или серебра, он имеет самое высокое соотношение прочности к весу среди всех известный элемент и устойчив к коррозии. Проверьте еще раз размер шарма, так как некоторые шармы могут быть меньше или больше, чем ожидалось. ATMEL DIP-28 NEW , независимо от того, какое у вас занятие и куда бы вы ни отправились.БЫСТРАЯ СУХАЯ: стелька обеспечивает оптимальную амортизацию, которая создает более прохладный и удобный материал, что делает эти сандалии на массивном каблуке более особенными.Подходит для новорожденных унисекс в течение 24 месяцев. чем уличные знаки в общественных местах, призматический отражающий алюминий высокой интенсивности 0, форма для торта Silikomart Madeleine и другие игры / спорт в помещении или на открытом воздухе. Граненые камни изготовлены из высококачественного материала, 1PCS IC ATMEGA8 ATMEGA8-16PU ATMEL DIP-28 NEW , международная доставка: Этот товар не подходит для международной доставки.Это станет вневременным и продуманным подарком для помолвки. Прекрасная пара винтажных клипсов, припаянных к вашему выбору из серебра 925 пробы или 14-каратного желтого золота (соответствующие 5-миллиметровые спинки-бабочки входят в комплект поставки) *, Красивый исцеляющий драгоценный камень ручной работы Молитвенное ожерелье Mala 108 бусин (и 1 бусина Guru) с красивой кисточкой. а также ленту или шнурок и немного клея для вешалки. Мягкое льняное полотно — красивая плита из расплава воска. Если он поврежден при получении, пожалуйста, сообщите мне в течение 24 часов с момента получения товара и приложите фотографии поврежденных товаров и любых повреждений коробки.Наши модели лепят свои собственные мягкие куртки для собак ~ эта рубашка для пиццы станет прекрасным дополнением к любой коллекции одежды для собак, 1PCS IC ATMEGA8 ATMEGA8-16PU ATMEL DIP-28 NEW .
Strony nie znaleziono — Polskie Centrum Badań i Certyfikacji S.A.
*
- Administratorem Pani / Pana danych osobowych jest Polskie Centrum Badań i Certyfikacji S.A. z siedzibą w Warszawie ul. Puławska 469, 02844 Warszawa, dalej jako: PCBC S. A.
- Администратор узнал инспектора охроны даныч , z którym można skontaktować się pod adresem e-mail: [email protected]
- Pani / Pana dane oso bowe przetwarzane będą w celu prowadzenia negocjacji przed zawarciem umowy, a następnie zawarcia Umowy i jej realizacji — podstawą prawną przetwarzania jest art.6 уст. 1 лит. b RODO oraz wypełnienia obowiązku prawnego ciążącego na administratorze, tj. rozliczeń finansowych, podatkowych, zusowskich na podstawie art. 6 уст.1 лит. c. RODO, a także na podstawie art. 6 уст. 1 лит. f) RODO w celu umożliwienia nam kontaktu dla potrzeb związanych z zawarciem i realizacją Umowy (np. informacja o umówieniu terminu spotkania) ..
- Podanie danych osobowych jest dobrowolne, lecz konieczne do przygotowania i zawarcia Umowy. Przetwarzanie danych dla potrzeb wypełnienia przez PCBC S A obowizków w zakresie rozliczeń z urzędami skarbowymi jest obowiązkowe i niepodanie danych uniemożliwia podpisanie umowyów.
- PCBC SA będzie przekazywać Пани / Пан датчанин osobowe innym odbiorcom , którym powierzono przetwarzanie danych Osobowych ж imieniu я на Речь PCBC SA PCBC SA będzie udostępniać Пани / Пан датчанин osobowe Klientom PCBC SA ш CEĻU я zakresie niezbędnym сделать realizacji zawartej umowy на podstawie Изобразительное искусство.6 уст. 1 лит. f) RODO, gdzie prawnie uzasadnionym interesem PCBC S.A. jest należyte wykonanie umów oraz innym odbiorcom, o ile taki obowiązek wynikać będzie z przepisów prawa.
- Pani / Pana dane osobowe w ramach realizacji Umowy przechowywane będą do czasu przewidziany przepisami prawa tj. м. дюйм. ustawą Kodeks cywilny i przepisami ustawy o rachunkowości. Natomiast jeśli ostatecznie nie doszło do zawarcia umowy pomiędzy stronami, Pani / Pana dane osobowe będą usuwane przez PCBC S.A. niezwłocznie po zakończeniu rozmów / negocjacji.
- Przysługuje Pani / Panu prawo do:
- dostępu do swoich danych osobowych i otrzymania ich kopii;
- sprostowania swoich nieprawidłowych danych;
- żądania usunięcia danych (prawo do bycia zapomnianym) w przypadku wystąpienia ok oliczności przewidzianych w art. 17 RODO;
- żądania ograniczenia przetwarzania danych w przypadkach wskazanych w art.18 RODO;
- wniesienia sprzeciwu wobec przetwarzania danych w przypadkach wskazanych w art. 21 RODO;
- przenoszenia dostarczonych danych, przetw arzanych w sposób zautomatyzowany.
- Ma Pani / Pan prawo wniesienia skargi do organu nadzorczego UODO, ul. Ставки 2, Варшава.
*
Zapoznałam / em się z Klauzulą informacyjną dot.przetwarzania podanych przeze mnie danych osobowychPotwierdź, że nie jesteś robotem
Podaj wynik działania *в Collection.php строка 1563 | |
в HandleExceptions -> handleError (8, ‘Undefined offset: 0’, ‘/ home / istanbulhairline / vendor / laravel / framework / src / Illuminate / Support / Коллекция.php ‘, 1563, массив (‘ key ‘=> 0)) в Collection.php строка 1563 | |
в Collection -> offsetGet (0) в b5319231b18c8aa907b8da682ed49ca01fee267046.php50 651 6 на включает (‘/ home / istanbulhairline / storage / framework / views / b5319231b18c8aa907b8da682ed49ca01fee2670.php’) в PhpEngine.php строка 42 | |
на PhpEngine istanbul / istanbul ha framework / views / b5319231b18c8aa907b8da682ed49ca01fee2670.php ‘, array (‘ __env ‘=> object ( Factory ),’ app ‘=> object ( Application ),’ errors ‘=> object ( ViewErrorBag ),’ dil ‘=> объект ( Коллекция ),’ dils ‘=> null ,’ menu ‘=> объект ( Коллекция ),’ ceviriler ‘=> объект ( Коллекция ), ‘sayfa’ => null , ‘hizmetler’ => объект ( Коллекция ), ‘rehber’ => объект ( Коллекция ), ‘hizmet’ => объект ( Коллекция ) , ‘kvkk’ => объект ( Sayfa ), ‘sacekimi’ => object ( Sayfa ), ‘iletisim’ => объект ( IletisimAyarlari ), ‘hakkimizda object => 24 object ( Sayfa ), ‘sosyal’ => object ( Sosyal ), ‘blog’ => object ( LengthAwarePaginator ))) в Compi lerEngine.php line 59 | |
at CompilerEngine -> get (‘/ home / istanbulhairline / resources / views / tema / alt.blade.php’, array (‘__env’ => object ( Factory) ), ‘app’ => объект ( Application ), ‘errors’ => объект ( ViewErrorBag ), ‘dil’ => объект ( Коллекция ), ‘dils’ => null , ‘menu’ => object ( Collection ), ‘ceviriler’ => object ( Collection ), ‘sayfa’ => null , ‘hizmetler’ => object ( Коллекция ), ‘rehber’ => объект ( Коллекция ), ‘hizmet’ => объект ( Коллекция ), ‘kvkk’ => объект ( Sayfa ), ‘sacekimi’ => объект ( Sayfa ), ‘iletisim’ => object ( IletisimAyarlari ), ‘hakkimizda’ => объект ( Sayfa ), ‘ sosyal ‘=> объект ( Sosyal ),’ blog ‘=> объект ( LengthAwarePaginator ))) в представлении .php line 137 | |
at View -> getContents () в View.php line 120 | |
at View -> renderContents () в View.php line 85 | |
at View -> render () в Response.php line 38 | |
at Response -> setContent ( object ( View )) в Response.php line 206 | |
at Response -> __ construct ( object ( View )) в маршрутизаторе .php строка 615 | |
at Router -> prepareResponse ( объект ( Request ), объект ( View )) в Router.php line 572 | |
at 3 Router -> Освещение \ Маршрутизация \ {закрытие} ( объект ( Запрос )) в Pipeline.php строка 30 | |
на Конвейер -> Освещение \ Маршрутизация \ {закрытие} ( объект ( Запрос )) в SubstituteBindings.php line 41 | |
at SubstituteBindings -> handle ( object ( Request ), object ( Closure )) в Pipeline.php line 148 | |
99 Pipeline -> Освещение \ Конвейер \ {закрытие} ( объект ( Запрос )) в Pipeline.php строка 53 | |
на Конвейер -> Освещение \ Маршрутизация \ {закрытие} ( объект ( Запрос )) в VerifyCsrfToken.php line 65 | |
at VerifyCsrfToken -> handle ( object ( Request ), object ( Closure )) в Pipeline.php line 148 | |
at 9022 -> Освещение \ Конвейер \ {закрытие} ( объект ( Запрос )) в Pipeline.php строка 53 | |
на Конвейер -> Освещение \ Маршрутизация \ {закрытие} ( объект ( Запрос )) в ShareErrorsFromSession.php line 49 | |
at ShareErrorsFromSession -> handle ( object ( Request ), object ( Closure )) в Pipeline.php line 148 | |
at -> Освещение \ Конвейер \ {закрытие} ( объект ( Запрос )) в Pipeline.php строка 53 | |
на Конвейер -> Освещение \ Маршрутизация \ {закрытие} ( объект ( Запрос )) в StartSession.php line 64 | |
at StartSession -> handle ( object ( Request ), object ( Closure )) в Pipeline.php line 148 | |
at Pipeline -> Освещение \ Конвейер \ {закрытие} ( объект ( Запрос )) в Pipeline.php строка 53 | |
на Конвейер -> Освещение \ Маршрутизация \ {закрытие} ( объект ( Запрос )) в AddQueuedCookiesToResponse.php line 37 | |
at AddQueuedCookiesToResponse -> handle ( object ( Request ), object ( Closure )) in Pipeline.php line | 50 |
на Конвейер -> Освещение \ Маршрутизация \ {закрытие} ( объект ( Запрос )) в EncryptCookies.php line 59 | |
at EncryptCookies -> handle ( object ( Request ), object ( Closure )) в Pipeline.php line 148 | |
at -> Освещение \ Конвейер \ {закрытие} ( объект ( Запрос )) в Pipeline.php строка 53 | |
на Конвейер -> Освещение \ Маршрутизация \ {закрытие} ( объект ( Запрос )) в конвейере .php line 102 | |
at Pipeline -> then ( object ( Closure )) in Router.php line 574 | |
at Router -> runRouteWithinStack ( объект Маршрут ), объект ( Запрос )) в Router.php строка 533 | |
на Маршрутизатор -> dispatchToRoute ( объект ( Запрос )) в Router.php строке 5 | |
на маршрутизаторе -> отправка ( объект ( запрос )) в ядре .php line 176 | |
at Kernel -> Illuminate \ Foundation \ Http \ {closure} ( object ( Request )) в Pipeline.php line 30 | |
at Pipeline — > Освещение \ Routing \ {closure} ( объект ( Запрос )) в TransformsRequest.php строка 30 | |
в TransformsRequest -> handle ( объект ( Запрос ), объект ( Закрытие )) в трубопроводе .php line 148 | |
at Pipeline -> Illuminate \ Pipeline \ {closure} ( object ( Request )) в Pipeline.php line 53 | |
at Pipeline -> Illuminate \ Routing \ {closure} ( объект ( запрос )) в TransformsRequest.php строка 30 | |
в TransformsRequest -> handle ( объект ( запрос ), объект ( объект ) Замыкание )) в трубопроводе .php line 148 | |
at Pipeline -> Illuminate \ Pipeline \ {closure} ( object ( Request )) в Pipeline.php line 53 | |
at Pipeline -> Illuminate \ Routing \ {closure} ( object ( Request )) в ValidatePostSize.php строка 27 | |
at ValidatePostSize -> handle ( object ( Request ), object 902 Замыкание )) в трубопроводе .php line 148 | |
at Pipeline -> Illuminate \ Pipeline \ {closure} ( object ( Request )) в Pipeline.php line 53 | |
at Pipeline -> Illuminate \ Routing \ {closure} ( объект ( Request )) в CheckForMainastedMode.php строка 46 | |
at CheckForMain maintenanceMode -> дескриптор ( объект ( запрос ), объект ( запрос ), объект Замыкание )) в трубопроводе .php line 148 | |
at Pipeline -> Illuminate \ Pipeline \ {closure} ( object ( Request )) в Pipeline.php line 53 | |
at Pipeline -> Illuminate \ Routing \ {closure} ( object ( Request )) в Pipeline.php line 102 | |
at Pipeline -> then ( object ( Closure )) в Kernel. |