Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Счётчики-таймеры и ШИМ


Счётчики-таймеры и ШИМ

Сообщений 1 страница 13 из 13

1

Собственно и вопрос: будет ли работать счётчик как счётчик, если он используется как ШИМ?
Например: делаем на счётчике Timer0 прерывание по переполнению и весело моргаем светодиодом (например)
Как только переключаем Timer0=PWM  -  прерывания по переполнению не работают!
Так и должно быть или я что-то делаю не правильно?

0

2

хм. надо смотреть даташит, но вроде не должно работать: или-или

0

3

Нет, не должно.
Либо одно, либо другое.
Ибо аппаратные средства одни и те же.
Как правило, один таймер = 2 ШИМам, если он занят, то всё.
В общем надо выбирать, что будет работать в единицу времени.

0

4

Вот и ФИГ-то... или - или.
Чисто в теории Timer0 может работать только на переполнение 8-битного регистра TCNT0 по формуле 256 * делитель *  ( 1 / тактовая частота )
А вот в режиме PWM регистр TCNT0 (наверное) тоже считает, только не "досчитывает" до переполнения вследствие того, что происходит сравнение с регистрами OCR0A и OCR0B.
Лично у меня одновременно счётчик и PWM одновременно не работают - НО, на ардуине это всё как-то но работает!  Где суслик???

0

5

Вам как раз об этом выше все говорят.
Одновременно работать ничего не будет.
На 1 таймер может быть только 2 шим, но самого таймера нет, он занят шимом.

0

6

... в CodeVision можно сконфигурировать Timer0 на ШИМ до FF плюс два канала A&B плюс ПРЕРЫВАНИЕ по переполнению!  Я попробую так запустить таймер_0..... ибо на ардуине оно как-то работает...

0

7

-NMi- написал(а):

Собственно и вопрос: будет ли работать счётчик как счётчик, если он используется как ШИМ?
Например: делаем на счётчике Timer0 прерывание по переполнению и весело моргаем светодиодом (например)

Почему нет, работает.

http://sd.uploads.ru/t/GpQcR.jpg

Отредактировано sasha_1973 (2016-11-20 20:39:31)

0

8

-NMi- написал(а):

НО, на ардуине это всё как-то но работает!  Где суслик???


В документации на МК,  :flag:

-NMi- написал(а):

... в CodeVision можно сконфигурировать Timer0 на ШИМ до FF плюс два канала A&B плюс ПРЕРЫВАНИЕ по переполнению!


Так и в Bascome работает.



как это выглядит  -  скачать

один таймер  =  одновременно ( 3 прерывания + 2 ШИМа )

http://s2.uploads.ru/t/SXUQa.jpg

Отредактировано sasha_1973 (2016-11-20 21:33:32)

+1

9

Значит вся "соль" кроется только в конфигурации таймера(ов) ?

0

10

В этом режиме счётчик никогда не даст прерывание по переполнению.

http://s3.uploads.ru/t/NGjf1.jpg

0

11

В ЭТОМ режиме прерывания будут приходить через РАВНЫЕ промежутки времени, зависящие от частоты и предделителя + ДВА канала ШИМ будут работать НЕЗАВИСИМО ДРУГ ОТ ДРУГА!!!
Что в принципе и нужно МНЕ было!!!

http://sf.uploads.ru/t/JDBr0.jpg

0

12

В этом режиме впринципе тоже самое, что и в FPWM только в два раза медленнее, т.к. таймер сначала инкрементируется а потом декрементируется. Прерывание OVF0 будет ровно в момент ОБНУЛЕНИЯ TCNT0.
В остальном всё тоже самое, можно использовать тайминг от таймера + ДВА НЕЗАВИСИМЫХ друг от друга ШИМ!

http://s4.uploads.ru/t/7HQeZ.jpg

0

13

А вот и СУСЛИК!!!    Он есть, оказывается!   Крайне не рекомендуется его использовать!

http://s0.uploads.ru/t/ioT8H.jpg

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Счётчики-таймеры и ШИМ