-
- Атомарно не знаю, а так просто вычитать с учетом тактов занимаемых текущим обработчиком до момента записи новой константы. - DL36(10.08.2010 21:27)
- а, ну это-то даже я знаю. в начале обработчика совсем немного тактов, вряд ли это они влияют. У меня-то четкая закономерность - 1 период внешнего кварца... - Argon(10.08.2010 21:32)
- 8 команд и видимо сохранение контекста какое то есть потом надо ДШ почитать, было там пропуск тактов после записи хотя где уже не помню. - DL36(10.08.2010 22:35)
- да какое там сохранение контекста... основной цикл в main() - глухой, for(;;) - Argon(10.08.2010 22:46)
- Так в конкретном случае об атомарности не надо заботиться. Для проверки предположения можно просто вычитать "TMR1L -= 16" и присваивать "THR1H = 0xFF". - testerplus(10.08.2010 22:30)
- а давно проверено, именно так. не помогает! - Argon(10.08.2010 22:44)
- В симуляторе с внешним тактированием T1CKI (как там сэмулировать тактирование с LP - не знаю) работает четко. Завтра на работе попробую в железе с LP. - testerplus(11.08.2010 00:46 - 01:00)
- Проверил в железе - работает четко: 1024 Hz. Писал на ассемблере с минимальным кодом прерывания 7 инструкций. Как только добавил 10 нопов - получил 963 Гц. Дело,скорее всего, вот в чем: testerplus(752 знак., 11.08.2010 13:35)
- Спасибо, так работает! Похоже, идея организовать UART через прерывания была плохой. - Argon(11.08.2010 14:26)
- А в Вашем пике есть CCP? Можно использовать прерывание Compare и модифицировать CCPR, не трогая TMR1. - testerplus(12.08.2010 10:03)
- Увы, нет. Пользую PIC12F675. Так что придется делать UART через задержки... - Argon(12.08.2010 10:38 - 11:02)
- А в Вашем пике есть CCP? Можно использовать прерывание Compare и модифицировать CCPR, не трогая TMR1. - testerplus(12.08.2010 10:03)
- Спасибо, так работает! Похоже, идея организовать UART через прерывания была плохой. - Argon(11.08.2010 14:26)
- Проверил в железе - работает четко: 1024 Hz. Писал на ассемблере с минимальным кодом прерывания 7 инструкций. Как только добавил 10 нопов - получил 963 Гц. Дело,скорее всего, вот в чем: testerplus(752 знак., 11.08.2010 13:35)
- В симуляторе с внешним тактированием T1CKI (как там сэмулировать тактирование с LP - не знаю) работает четко. Завтра на работе попробую в железе с LP. - testerplus(11.08.2010 00:46 - 01:00)
- а давно проверено, именно так. не помогает! - Argon(10.08.2010 22:44)
- 8 команд и видимо сохранение контекста какое то есть потом надо ДШ почитать, было там пропуск тактов после записи хотя где уже не помню. - DL36(10.08.2010 22:35)
- а, ну это-то даже я знаю. в начале обработчика совсем немного тактов, вряд ли это они влияют. У меня-то четкая закономерность - 1 период внешнего кварца... - Argon(10.08.2010 21:32)
- Атомарно не знаю, а так просто вычитать с учетом тактов занимаемых текущим обработчиком до момента записи новой константы. - DL36(10.08.2010 21:27)