-
- Как 2 пальца... Прескалер 1024, прерывания каждые 125 - получаем 125 чётких прерываний в секунду. - AU08(20.04.2013 22:19)
- А что? И правда можно :). Но на кварце 16.384 прерываться надо будет не 125 раз в секунду, а только 64 раза. Реже прерываться уже нельзя теоретически. - Ксения(20.04.2013 22:40 - 22:49)
- Если сделать инверсию пина (Toggle OC2 on Compare Match) на выход (ОС2) 64 раза в секунду, и завести на другой pin + разрешить прерывание по фронту получим 32 прерывания в секунду. AU08(503 знак., 20.04.2013 23:58 - 21.04.2013 00:06)
- Идея знатная :), но осуществлять ее, видимо, не стану. - Ксения(21.04.2013 03:51)
- Побочный вопрос: прескайлер 1/2048 у каких-либо AVR-ок встречали? А то AVRcalc[ulator] в списке прескайлеров имеет еще 1/4096 и 1/16384 (хотя 1/8192 почему-то нет). У кого такие бывают? - Ксения(20.04.2013 23:00)
- Tiny85 и иже с ней - ilyaul(21.04.2013 00:04)
- Какая несправедливость! Tiny может, а Mega нет. - Ксения(21.04.2013 03:53)
- Не то слово. У 15 тиньки унутре заложен был 16x PLL. Такая ципа! А у меги нет. - Codavr(21.04.2013 03:58)
- А зачем этой Тиньке нужен этот PLL? Понимаю, когда USB канал надо держать на малой частоте кварца. А тут для чего? - Ксения(21.04.2013 04:12 - 04:51)
- Не то слово. У 15 тиньки унутре заложен был 16x PLL. Такая ципа! А у меги нет. - Codavr(21.04.2013 03:58)
- Какая несправедливость! Tiny может, а Mega нет. - Ксения(21.04.2013 03:53)
- Tiny85 и иже с ней - ilyaul(21.04.2013 00:04)
- Если сделать инверсию пина (Toggle OC2 on Compare Match) на выход (ОС2) 64 раза в секунду, и завести на другой pin + разрешить прерывание по фронту получим 32 прерывания в секунду. AU08(503 знак., 20.04.2013 23:58 - 21.04.2013 00:06)
- А что? И правда можно :). Но на кварце 16.384 прерываться надо будет не 125 раз в секунду, а только 64 раза. Реже прерываться уже нельзя теоретически. - Ксения(20.04.2013 22:40 - 22:49)
- Можно выбрать источник тактирования clk/128=16000000/128=125000 Гц. Режим таймера CTC с регистром сравнения равным 124 или 249. Получаете частоту прерываний 1 кГц. - Apтём(20.04.2013 21:59)
- Зачем мне 1 КГц, если мне нужен всего лишь 1 Гц (в 1000 раз меньше)? - Ксения(20.04.2013 22:43)
- Нет ничего страшного, если раз за 16000 тактов прерывание возникнет, Имхо. - Apтём(20.04.2013 23:27)
- Зачем мне 1 КГц, если мне нужен всего лишь 1 Гц (в 1000 раз меньше)? - Ксения(20.04.2013 22:43)
- Нельзя. У меня длинный таймер (T1) занят на более важное дело - счет импульсов, а время приходится отсчитывать коротким таймером (T2). А там самый большой делитель - 1024, и с ним мне секунду никак не удается получить точно. Пока живу на OCR2=0xF3 Ксения(160 знак., 20.04.2013 21:25)
- Как это нельзя? mazur(857 знак., 20.04.2013 22:01)
- 1000 в качестве делителя у вас откуда взялась? - Ксения(20.04.2013 22:33)
- Не помню уже весь ход рассуждений. :) Главное, что я получил результат. Вы возьмите калькулятор. mazur(39 знак., 20.04.2013 22:37)
- Ты для начала подели 16Мгц на 1024, а потом уже бери 15625Гц и дели их 8 битным таймером. Ну как-то так. Это тот случай когда важен не результат, а правильное решение. - Codavr(21.04.2013 03:42 - 03:44)
- Ксении важно как можно меньше прерываний. Мне же нужно было получить 1 мс (круглые частоты). На крайняк 10 мс (частоты для уарта). Так что и правильное решение и результат. - mazur(21.04.2013 08:21)
- Я грешным делом подумал, что ты ее задачу решить помогаешь. - Codavr(21.04.2013 08:54)
- Так она после уже написала, что как можно меньше прерываний. - mazur(21.04.2013 08:56)
- Тады ой. Прошу пардону! - Codavr(21.04.2013 09:03)
- Так она после уже написала, что как можно меньше прерываний. - mazur(21.04.2013 08:56)
- Я грешным делом подумал, что ты ее задачу решить помогаешь. - Codavr(21.04.2013 08:54)
- Ксении важно как можно меньше прерываний. Мне же нужно было получить 1 мс (круглые частоты). На крайняк 10 мс (частоты для уарта). Так что и правильное решение и результат. - mazur(21.04.2013 08:21)
- Зачем мне калькулятор? :) Если бы у меня прескайлер был не 1/1024, а 1/1000, то дело было на мази. А так приходится на кварц 16.384 МГц заглядываться. Впрочем, я сама виновата, что не знала, что такие бывают в продаже - цена-то у них одинаковая. - Ксения(20.04.2013 22:47)
- 1000 мс. По тому коду, что я выложил, прерывание получается каждые 1 мс. 1000 прерываний дают секунду. mazur(168 знак., 20.04.2013 22:56)
- Да поняла я, только сильно не хочется делать лишних 999 прерываний. Хотелось бы, чтобы их было как можно меньше, т.к. МК и так тяжело приходится - там, кроме часов, других прерываний много (T0 и T1 мегагерцы считают, и потому тоже часто просят Ксения(45 знак., 20.04.2013 23:04)
- может процик поменять? мега162 - 4 таймера , 2 уарта - m16_home(20.04.2013 23:23)
- Слишком велик он. Да и не надо мне 2 уарта. - Ксения(20.04.2013 23:40)
- может процик поменять? мега162 - 4 таймера , 2 уарта - m16_home(20.04.2013 23:23)
- Да поняла я, только сильно не хочется делать лишних 999 прерываний. Хотелось бы, чтобы их было как можно меньше, т.к. МК и так тяжело приходится - там, кроме часов, других прерываний много (T0 и T1 мегагерцы считают, и потому тоже часто просят Ксения(45 знак., 20.04.2013 23:04)
- 1000 мс. По тому коду, что я выложил, прерывание получается каждые 1 мс. 1000 прерываний дают секунду. mazur(168 знак., 20.04.2013 22:56)
- Ты для начала подели 16Мгц на 1024, а потом уже бери 15625Гц и дели их 8 битным таймером. Ну как-то так. Это тот случай когда важен не результат, а правильное решение. - Codavr(21.04.2013 03:42 - 03:44)
- Не помню уже весь ход рассуждений. :) Главное, что я получил результат. Вы возьмите калькулятор. mazur(39 знак., 20.04.2013 22:37)
- 1000 в качестве делителя у вас откуда взялась? - Ксения(20.04.2013 22:33)
- субботнее альтернативное: выход схемы сравнения второго таймера ОС2 соединяете со входом Т0 нулевого таймера. второй таймер программируете в режиме СТС ,вывод счётчика ОС2 программируете Toggle on Compare Match, Т0 программируете External clock m16_home(84 знак., 20.04.2013 21:54)
- Не пойдет, оба таймера (T0 и T1) заняты счетом внешних импульсов. Для счета времени свободен только T2, т.к. у него не внешнего входа. - Ксения(20.04.2013 22:35)
- 8000000/256/250/125 Расшифровывать? - ilyaul(20.04.2013 23:28)
- Растолковать! Обязательно. - Ксения(20.04.2013 23:37)
- 256 предделитель таймера 250-OCR 125 - посчитать "ручками" - это лучше чем 1000 - ilyaul(20.04.2013 23:46)
- Растолковать! Обязательно. - Ксения(20.04.2013 23:37)
- если Вас устроит 8мгц внутреннего от генератора то можно на TOSC1/2 часовой кварц повесить - m16_home(20.04.2013 23:26)
- Нет, внутренний генератор мне не годится. - Ксения(20.04.2013 23:39)
- 8000000/256/250/125 Расшифровывать? - ilyaul(20.04.2013 23:28)
- Не пойдет, оба таймера (T0 и T1) заняты счетом внешних импульсов. Для счета времени свободен только T2, т.к. у него не внешнего входа. - Ксения(20.04.2013 22:35)
- Как это нельзя? mazur(857 знак., 20.04.2013 22:01)
- Как 2 пальца... Прескалер 1024, прерывания каждые 125 - получаем 125 чётких прерываний в секунду. - AU08(20.04.2013 22:19)