-
- при ручном взведении CCIFG, а до того можно взводить CCIE или не взводить - пофигу. А флаг в TA0IV сбросится после any access - Vit(14.06.2012 19:58)
- Если я правильно вас понимаю .... CCIE влияет на аппаратные источники прерывания. Чтобы надежно полностью сбросить TAxIV нужно, запретив все источники прерываний от TimerA, считать его (TAxIV) содержимое 8 раз. - rezident(14.06.2012 20:07)
- это понятно. но пока наблюдаю то ли неадекват какой-то (грешу на перечитывание дебаггером), то ли механизм TAxIV без GIE не работает. последнее может быть реализовано по-разному - либо флаги не доступны механизму TAxIV пока нет GIE, либо они Vit(184 знак., 14.06.2012 20:20 - 20:22)
- Если у вас в дебаггере открыта вкладка регистров таймера, то вполне может быть, что это он малину портит. В устройстве TAxIV не кэширование используется, а что-то типа приоритетного шифратора. - rezident(14.06.2012 22:29)
- закрывал - не помогает. насчет "не кэширование" как понимаю только догадки. хотел проверить, а оно не хочет - типо его вааще нет. - Vit(14.06.2012 22:51)
- Есть EvalBoard на MSP430F5438A. Timer A там такой же как в MSP430FR5739. Приведите фрагмент кода или тестовый исходник, чтобы посмотреть то, что вы описываете. Завтра постараюсь проверить вживую. - rezident(14.06.2012 23:16)
- Вот Vit(539 знак., 15.06.2012 10:31)
- Вот такую программу протестировал. rezident(2969 знак., 15.06.2012 20:07 - 20:21)
- Дополнительно проверил ситуацию, когда сразу установлено несколько флагов CCIFG. rezident(670 знак., 15.06.2012 20:52)
- Большое спасибо. Т.е. без GIE и CCIE в TA0IV ничего не будет, а вызов обработчика зависит от фактического состояния CCIFG. Vit(495 знак., 16.06.2012 10:57)
- Насчет GIE вы немного ошибаетесь. Он не оказывает влияние на состояние TA0IV, а лишь только на возможность вызова маскируемых прерываний. - rezident(16.06.2012 13:21)
- Пока вывод именно такой - см. стартовый топик - CCIFG без GIE при установленном CCIE на состояние PA0IV не влияет - из PA0IV читается 0. - Vit(16.06.2012 13:30)
- У меня не такой вывод. Самоцитата из предыдущего сообщения. rezident(443 знак., 16.06.2012 13:33)
- у меня при сброшенном GIE в TA0IV всегда 0 Vit(180 знак., 16.06.2012 13:43 - 13:47)
- Где именно 0? На вкладке с регистрами в окне дебаггера? Дык я это сразу указал, что там практически всегда TA0IV=0x0000 отображается. В то время как в переменных, куда я копирую содержимое этого регистра отображается нормальное его значение. rezident(112 знак., 16.06.2012 13:48)
- В тесте переменная читает TA0IV, её значение не меняется, но далее она модифицируется и это видно. В окне регистров выбран не таймер - Vit(16.06.2012 13:53, ссылка)
- Ладно с другой стороны подойду. GIE не может (не имеет права) оказывать влияние на флаги прерываний хотя бы с той точки зрения, что при переходе по вектору прерывания GIE автоматически сбрасывается и восстанавливает свое состояние только rezident(863 знак., 16.06.2012 14:13, ссылка)
- Гы, классная сопля, детская. Теперь усё в TA0IV видно, даже дебаггером. Спасибо! - Vit(16.06.2012 17:22)
- Насчет ошибки - спасибо - явно сопля тут - благодаря ей предположил, что GIE (из фона) всего-лишь разрешает работу(аппаратную запись в) PA0IV (типа не имеет смысла его трогать не в обработчиках), ну и смотрит за наличием запроса прерывания по Vit(119 знак., 16.06.2012 14:50)
- Ладно с другой стороны подойду. GIE не может (не имеет права) оказывать влияние на флаги прерываний хотя бы с той точки зрения, что при переходе по вектору прерывания GIE автоматически сбрасывается и восстанавливает свое состояние только rezident(863 знак., 16.06.2012 14:13, ссылка)
- В тесте переменная читает TA0IV, её значение не меняется, но далее она модифицируется и это видно. В окне регистров выбран не таймер - Vit(16.06.2012 13:53, ссылка)
- Где именно 0? На вкладке с регистрами в окне дебаггера? Дык я это сразу указал, что там практически всегда TA0IV=0x0000 отображается. В то время как в переменных, куда я копирую содержимое этого регистра отображается нормальное его значение. rezident(112 знак., 16.06.2012 13:48)
- у меня при сброшенном GIE в TA0IV всегда 0 Vit(180 знак., 16.06.2012 13:43 - 13:47)
- У меня не такой вывод. Самоцитата из предыдущего сообщения. rezident(443 знак., 16.06.2012 13:33)
- Пока вывод именно такой - см. стартовый топик - CCIFG без GIE при установленном CCIE на состояние PA0IV не влияет - из PA0IV читается 0. - Vit(16.06.2012 13:30)
- Насчет GIE вы немного ошибаетесь. Он не оказывает влияние на состояние TA0IV, а лишь только на возможность вызова маскируемых прерываний. - rezident(16.06.2012 13:21)
- Большое спасибо. Т.е. без GIE и CCIE в TA0IV ничего не будет, а вызов обработчика зависит от фактического состояния CCIFG. Vit(495 знак., 16.06.2012 10:57)
- Дополнительно проверил ситуацию, когда сразу установлено несколько флагов CCIFG. rezident(670 знак., 15.06.2012 20:52)
- Вот такую программу протестировал. rezident(2969 знак., 15.06.2012 20:07 - 20:21)
- Вот Vit(539 знак., 15.06.2012 10:31)
- Есть EvalBoard на MSP430F5438A. Timer A там такой же как в MSP430FR5739. Приведите фрагмент кода или тестовый исходник, чтобы посмотреть то, что вы описываете. Завтра постараюсь проверить вживую. - rezident(14.06.2012 23:16)
- закрывал - не помогает. насчет "не кэширование" как понимаю только догадки. хотел проверить, а оно не хочет - типо его вааще нет. - Vit(14.06.2012 22:51)
- Если у вас в дебаггере открыта вкладка регистров таймера, то вполне может быть, что это он малину портит. В устройстве TAxIV не кэширование используется, а что-то типа приоритетного шифратора. - rezident(14.06.2012 22:29)
- это понятно. но пока наблюдаю то ли неадекват какой-то (грешу на перечитывание дебаггером), то ли механизм TAxIV без GIE не работает. последнее может быть реализовано по-разному - либо флаги не доступны механизму TAxIV пока нет GIE, либо они Vit(184 знак., 14.06.2012 20:20 - 20:22)
- Если я правильно вас понимаю .... CCIE влияет на аппаратные источники прерывания. Чтобы надежно полностью сбросить TAxIV нужно, запретив все источники прерываний от TimerA, считать его (TAxIV) содержимое 8 раз. - rezident(14.06.2012 20:07)
- при ручном взведении CCIFG, а до того можно взводить CCIE или не взводить - пофигу. А флаг в TA0IV сбросится после any access - Vit(14.06.2012 19:58)