реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Порты ввода/вывода в MSP430
HARMHARM
сообщение Feb 7 2007, 12:46
Сообщение #16


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



У меня настойчиво просится наружу мысль: вроде где-то читал что реальное изменение состояния на выходе при записи в PxOUT происходит на последнем переднем фронте MCLK команды. Искал - не нашел где вычитал sad.gif
Go to the top of the page
 
+Quote Post
rezident
сообщение Feb 7 2007, 18:52
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(HARMHARM @ Feb 7 2007, 14:46) *
У меня настойчиво просится наружу мысль: вроде где-то читал что реальное изменение состояния на выходе при записи в PxOUT происходит на последнем переднем фронте MCLK команды. Искал - не нашел где вычитал sad.gif

Ну вообще это вроде как логически вытекает. Последовательность такая: выборка кода команды (1МЦ), выборка операндов (1-2МЦ), действие над операндами (1МЦ), запись результата действия (1МЦ). Поскольку запись последняя в этой цепочке, то и на выходе пина сигнал появится на последнем МЦ выполнения всей команды.
Go to the top of the page
 
+Quote Post
Shread
сообщение Feb 7 2007, 22:50
Сообщение #18


иногда заглядывающий
****

Группа: Свой
Сообщений: 900
Регистрация: 18-05-05
Из: Зеленоград
Пользователь №: 5 170



Цитата(Сергей Борщ @ Feb 7 2007, 12:34) *
Цитата(Shread @ Feb 6 2007, 23:30) *

Ну вот это как раз не проблема, выкинуть MCLK на ножку проца и делать посылки с достаточно большим интервалом, даже на аналоговом осцилле будет все прекрасно видно.
Хорошо, тогда вопрос вам: как вы определите с какого именно из импульсов MCLK на этой ноге началось выполнение команды? wink.gif

Честно сказать, я думал вы несколько о другом говорили, подразумевая синхронизацию скопа.
Но коли так: можно попробовать синхриться по внешнему прерыванию. При этом нужно загасить WDT и оставить пустым основной цикл. И все посылки делать из прерывания.+Шаманство.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 8 2007, 01:48
Сообщение #19


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Shread @ Feb 7 2007, 21:50) *
Честно сказать, я думал вы несколько о другом говорили, подразумевая синхронизацию скопа.
Но коли так: можно попробовать синхриться по внешнему прерыванию. При этом нужно загасить WDT и оставить пустым основной цикл. И все посылки делать из прерывания.+Шаманство.
Вот именно! Нужно внешнее событие (ведь от чего-то автор вопроса хотел синхронизировать два процессора) и некое время от реакции на это событие до выполнения следующей команды. Время это будет в общем случае недетерменированным, ибо процессор должен закончить выполнение текущей команды, а это от 0 до 5 тактов задержки. И даже если будет 100% известно "какой командой процессора черт ест колобка в pacman-е" (на каком такте дергается выходная нога) - это ровным счетом ничего не даст. Если надо дергать ногой с точностью до 1 тика тактовой частоты - надо использовать таймер тактированный этой частотй и его режимы захвата и сравнения. Только так можно будет поручиться за временные диаграммы и это будет сделано простым, наглядным и естественным способом. Критикуйте.

Сам себя покритикую - возможно добиться одинакового времени реакции на внешенее событие, но для этого процессор должен ждать этого события в режиме спячки с работающим тактовым генератором - время просыпания в этом случае регламентировано. Если следующей командой дергать ногой, то осциллограф поможет определить сколько тиков между этими событиями. Это число будет константой и может быть учтено в программе. Но кривовато это как-то.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Ekim
сообщение Feb 8 2007, 06:52
Сообщение #20





Группа: Новичок
Сообщений: 7
Регистрация: 4-02-07
Пользователь №: 25 044



Цитата(rezident @ Feb 7 2007, 18:52) *
Цитата(HARMHARM @ Feb 7 2007, 14:46) *

У меня настойчиво просится наружу мысль: вроде где-то читал что реальное изменение состояния на выходе при записи в PxOUT происходит на последнем переднем фронте MCLK команды. Искал - не нашел где вычитал sad.gif

Ну вообще это вроде как логически вытекает. Последовательность такая: выборка кода команды (1МЦ), выборка операндов (1-2МЦ), действие над операндами (1МЦ), запись результата действия (1МЦ). Поскольку запись последняя в этой цепочке, то и на выходе пина сигнал появится на последнем МЦ выполнения всей команды.

А выборка кода команды происходит разве не в процессе выполнения предыдущей команды (или я путаю с AVR, поправте пож если не прав)?
Как раз эта последовательность меня и интересует, она, мне кажется, должна быть где-то описана,...но где???
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Feb 8 2007, 09:03
Сообщение #21


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(Ekim @ Feb 8 2007, 05:52) *
А выборка кода команды происходит разве не в процессе выполнения предыдущей команды (или я путаю с AVR, поправте пож если не прав)?
Как раз эта последовательность меня и интересует, она, мне кажется, должна быть где-то описана,...но где???

Нет, здесь нет Prefetch. Потому и команды длинные такие.
Go to the top of the page
 
+Quote Post
Shread
сообщение Feb 9 2007, 01:03
Сообщение #22


иногда заглядывающий
****

Группа: Свой
Сообщений: 900
Регистрация: 18-05-05
Из: Зеленоград
Пользователь №: 5 170



Цитата(Сергей Борщ @ Feb 8 2007, 01:48) *
Сам себя покритикую - возможно добиться одинакового времени реакции на внешенее событие, но для этого процессор должен ждать этого события в режиме спячки с работающим тактовым генератором - время просыпания в этом случае регламентировано. Если следующей командой дергать ногой, то осциллограф поможет определить сколько тиков между этими событиями. Это число будет константой и может быть учтено в программе. Но кривовато это как-то.

Ну вообщем согласен. Есть правда еще один способ, но он требует валидацию после каждой компиляции: подбор на живом железе. Т.е знаешь какую последовательность надо получить и получаешь. Применять можно только в том случае, если последовательности всегда одинаковые. Это сродни использованию в ПЛИС в качестве задержек луты-иногда работает, но на 100 процентов поручиться за результат низя.

Автору поста могу порекомендовать обратиться с этим вопросом в техническую поддержку. Если самому не хватает знаний английского для общения с EPIC, можно потормошить Компел, они обычно охотно тормошатся smile.gif Вообщем вопрос вполне резонный, и думаю решаемый.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 18:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01702 секунд с 7
ELECTRONIX ©2004-2016