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

 
 
> Скорость смены логического значения
d7d1cd
сообщение Nov 14 2012, 02:49
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Привет всем! Свой вопрос изложу на конкретном примере.

Есть МК MSP430F149. Его пин 2.6 сконфигурирован на вывод и на него выведен логический 0. В программе выполняется команда:

BIS.B #0080, &0029

то есть, на пине устанавливается логическая 1.

Вопрос такой: в какой момент на пине появится высокий уровень напряжения? Сразу после выполнения команды или необходим еще один такт МК?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
d7d1cd
сообщение Nov 14 2012, 17:16
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Понятно. Тогда можно еще вопрос по теме.
Я взял откомпилированную программу, дизассемблировал ее и нашел код, где программа отправляет байт в микросхему памяти. Опустив ненужные детали, привожу код с комментариями:
Код
9038       7742         MOV.B   #8,R7            Устанавливаем счетчик цикла на 8 раз
903A       F0C08000EB6F BIC.B   #0080,0029        Устанавливаем низкий уровень сигнала на пине P2.7 (вход SCK микросхем памяти)
9040       0858         ADD     R8,R8            Сдвигаем влево на 1 бит отправляемый байт
9042       0428         JNC     904C            Если очередной бит отправляемого байта низкого уровня, то переходим к адресу 0x904C
9044       F0D04000E16F BIS.B   #0040,0029        Устанавливаем высокий уровень сигнала на пине P2.6 (вход SI микросхем)
904A       033C         JMP     9052            Переходим к адресу 0x9052
904C       F0C04000D96F BIC.B   #0040,0029        Устанавливаем низкий уровень сигнала на пине P2.6 (вход SI микросхем)
9052       0343         NOP                 
9054       F0D08000D16F BIS.B   #0080,0029        Устанавливаем высокий уровень сигнала на пине P2.7 (вход SCK микросхем памяти)
905A       1783         SUB     #1,R7            Если цикл передачи байта не закончился, то...
905C       EE23         JNZ     903A            ...переходим к адресу 0x903A


Объясните, для чего нужна команда NOP после команды, устанавливающей на пине SI нужный уровень? Такое ощущение, что она нужна для гарантированного появления на пине SI нужного уровня сигнала. Но как мне пояснили выше, уровень устанавливается сразу после выполнения команды...

Сообщение отредактировал d7d1cd - Nov 14 2012, 17:23
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 12th August 2025 - 04:03
Рейтинг@Mail.ru


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