/по ocr1a например устанавливать в 1 вывод генерации /по ocr1b сбрасывать счетчик таймера и устанавливать вывод генерации в 0 /------------ это все именно настройками счетчика а не силами процессора !!!
че то я путаюсь в этих буквенных индексах - вечером еще раз почитаю датащит / чем отлличается ocr1a от ocr1b ? в тини13 ведь нету ни ocr1a ни ocr1b ! есть ocr0a от ocr0b - а разница в выводах OC0A иOC0B ??? не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Понедельник, 28.01.2013, 13:56
кстати я понял почему я запутался в буквенных индексах... смотрим датащит http://www.promelec.ru/pdf/Attiny13.pdf стр 68 регистр TCCR0A таблица 26 написано COM01 и COM00, а должно быть COM0A1 и COM0A0 ( ну ладно - тут понятно ) таблица 27 написано COM01 и COM00, а должно быть COM0A1 и COM0A0 ( то же самое...) стр 69 таблица 28 - тут все нормально таблица 29 - написано COM01 и COM00, а должно быть COM0B1 и COM0B0 ( аналогичная ситуация, но тут можно разобраться ) таблица 30 - написано COM01 и COM00, а должно быть COM0B1 и COM0B0 ( опять.....) стр 70 таблица 31 - написано COM0A1 и COM0A0, а должно быть COM0B1 и COM0B0 ( тут у меня речь оборвалась... а вот это уже ни в какие рамки не лезет! они тупо скопипастили!!! даже не отредактировали ! будьте внимательны! )
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Понедельник, 28.01.2013, 22:22
почитал статью DiHalt'а... очень понравилось - доходчиво. но появилось несколько вопросов:
с помощью этой таблицы выбираем режим работы
далее определяемся с поведением вывода OC** прямой ШИМ (сброс при совпадении и установка при обнулении счета) или обратный ШИМ (сброс при обнулении и установка при совпадении) согласно таблице для режима Phase corect
или для режима FAST
вопрос заключается в следующем смотрим две последние таблицы - в них во второй строке есть такие режимы WGM02 = 0: Normal Port Operation, OC0A Disconnected. WGM02 = 1: Toggle OC0A on Compare Match.
ЗАЧЕМ ОНИ? первый - то же самое что и первая строка в этих таблицах = отключает OC0A второй - Toggle OC0A on Compare Match. - переключать по совпадению... а таймер при этом считает до конца? или, как в режиме CTC, до совпадения ?
Понял. Почему в первой таблице по два режима Fast PWM Mode и Phase Correct PWM Mode ? чем они отличаются ? Тем что в первой таблице, в колонке "TOP" указано число до которого считает таймер ? не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Вторник, 29.01.2013, 20:10
Phase Correct PWM Mode - это когда таймер считает от 0 до топ (при этом выдает шим согласно осрх), а потом от топ до 0 (опять выдает шим согласно осрх) и все сначала. Результирующая частота шим буде в два раза меньше, действующее напряжение не изменится - Uпит*OCRx/256 (если TOP=255).
Phase Correct PWM - есть два режима. смотри таблицу 32. первый (mode 1) считает от нуля до 255, а потом от 255 до нуля - с этим режимом мне все понятно второй (mode 5) считает от нуля до OCR**, а потом с OCR** до нуля - а вот этот режим какой то странный, на нем ШИМ не получится сделать....
Такая же ситуация обстоит с режимом Fast PWM ( их то же два ) опять смотрим таблицу 32. первый режим (mode 3) считает от нуля до 255, а потом сбрасывается в нуль - тут все понятно второй режим (mode 7) считает от нуля до OCR**, а потом сбрасывантся в нуль - и этот режим какой то странный, на нем то же ШИМ не получится сделать
вопрос заключается в следующем - зачем эти "странные" режимы? и какое отношение они имеют к ШИМ ? не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Вторник, 29.01.2013, 23:30
1) у ШИМ частота не должна меняться, а если таймер считает до OCR** а потом сбрасывается в нуль, то частота будет меняться - а это уже какая-то частотная модуляция.... что то вроде режима CTC 2) а если для вывода OCA НЕ будет установлен режим toggle ? а будет установлен другой режим. Что тогда? в обще что-то странное получается .... не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Вторник, 29.01.2013, 23:41