Авторизируйтесь,
чтобы продолжить
Некоторые функции доступны только зарегистрированным пользователям
Неправильный логин или пароль

Внимание! Теперь для входа на форум необходимо вводить единый пароль регистрации сервисов sibnet.ru!

Здравствуйте, гость ( Вход | Регистрация )



25 страниц V < 1 2 3 4 5 > »   
Ответить в эту темуОткрыть новую тему
> микроконтроллеры, всё что связано с микроконтроллерами
titr
сообщение 25.8.2009, 20:44
Сообщение #41


Любит поговорить
Group Icon


Группа: Sibnet-club
Сообщений: 342
Регистрация: 26.11.2007
Пользователь №: 11 660



Репутация:   1  


Цитата(jonsony @ 23.8.2009, 23:33) *

если бы прогнал в эмуляторе пошагово - нашел бы

просто видишь, пауза вызывается как подпрограмма, перед её вызовом прога (точнее камень) сохраняет определённые параметры, и дожидаеться возврата, а ты возврат нарушаеть переходом из подпрограммы в тело проги

Нет, думаю что не нашел бы. Мне не казалось что я неправильно использую подпрограмму. Тем паче, что я все эти процессы понимаю очень и очень поверхностно.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
jonsony
сообщение 25.8.2009, 21:24
Сообщение #42


я есть я и никто иной
Group Icon


Группа: Пользователи
Сообщений: 13 154
Регистрация: 18.9.2008
Из: Омск
Пользователь №: 50 025



Репутация:   648  


Цитата(titr @ 25.8.2009, 19:44) *

Нет, думаю что не нашел бы. Мне не казалось что я неправильно использую подпрограмму. Тем паче, что я все эти процессы понимаю очень и очень поверхностно.

при пошаговом ты бы увидел где у тебя вылетает на каком месте
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ewk
сообщение 7.9.2009, 11:44
Сообщение #43


Завтра начнём учиться!
Group Icon


Группа: Sibnet-club
Сообщений: 601
Регистрация: 15.11.2007
Пользователь №: 10 645



Репутация:   66  


Разработка устройств сопряжения с ПК
» Спойлер (нажмите, чтобы прочесть) «


» Спасибо сказали: «
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
titr
сообщение 10.10.2009, 19:52
Сообщение #44


Любит поговорить
Group Icon


Группа: Sibnet-club
Сообщений: 342
Регистрация: 26.11.2007
Пользователь №: 11 660



Репутация:   1  


Насколько важна директива "org" в тексте программы. Загнал в PIC без этой директивы программу вроде работает. Но при включении не всегда программа начинает работать с самого начала, а иногда и вовсе ерунду гонит. Может быть, что это из за нее?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
jonsony
сообщение 15.10.2009, 22:06
Сообщение #45


я есть я и никто иной
Group Icon


Группа: Пользователи
Сообщений: 13 154
Регистрация: 18.9.2008
Из: Омск
Пользователь №: 50 025



Репутация:   648  


Цитата(titr @ 10.10.2009, 18:52) *

Насколько важна директива "org" в тексте программы. Загнал в PIC без этой директивы программу вроде работает. Но при включении не всегда программа начинает работать с самого начала, а иногда и вовсе ерунду гонит. Может быть, что это из за нее?

почитай её назначение
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
zedimon
сообщение 16.10.2009, 21:44
Сообщение #46


Болтун
Group Icon


Группа: Sibnet-club
Сообщений: 624
Регистрация: 2.3.2008
Пользователь №: 23 091



Репутация:   22  


Цитата(jonsony @ 15.10.2009, 21:06) *

почитай её назначение

Хороший ответ.

Давайте все таки выясним для чего нужна директива "org":

Цитата:
Директива org, определяет, с какого именно адреса памяти программ (PC) начать исполнение программы (обычно, org 0 С нулевого адреса PC) и команда перехода на начало исполнения программы (обычно, goto Start).
Так как команда goto Start расположена сразу же после директивы org 0 (у команды goto Start нулевой адрес в памяти программ), то с этой команды и начнется исполнение программы.


Из этой цитаты по моему ясно для чего нужна директива org.
Если не понятно, поясню на пальцах, директива org говорит PIC откуда начать выполнение программы. Так как счетчик PC, при выключении питания, не сбрасывается, то, без этой команды (org 0), при следующем включении питания PIC продолжит выполнения программы с того места где остановился, что нарушает нормальную работу PIC.

Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Ale3000
сообщение 17.10.2009, 21:54
Сообщение #47


Болтун
Group Icon


Группа: Sibnet-club
Сообщений: 889
Регистрация: 15.11.2007
Пользователь №: 10 642



Репутация:   60  


Цитата(zedimon @ 16.10.2009, 20:44) *
Цитата:
[i]Директива org, определяет, с какого именно адреса памяти программ (PC) начать исполнение программы (обычно, org 0 С нулевого адреса PC) и команда перехода на начало исполнения программы (обычно, goto Start).
Неправда. Директива org сообщает компилятору с какого адреса он будет располагать следующий за директивой org код.
Цитата(zedimon @ 16.10.2009, 20:44) *
Из этой цитаты по моему ясно для чего нужна директива org.
Если не понятно, поясню на пальцах, директива org говорит PIC откуда начать выполнение программы.
Нет. PICу, как и любому другому процессору насрать на директиву org. После ресета он будет стартовать всегда по одному и тому же адресу. Для PICов, насколько я помню он нулевой. И в задачу программиста входит расположить именно по этому адресу начало своей программы.
Цитата(zedimon @ 16.10.2009, 20:44) *
Так как счетчик PC, при выключении питания, не сбрасывается, то, без этой команды (org 0), при следующем включении питания PIC продолжит выполнения программы с того места где остановился, что нарушает нормальную работу PIC.
PC сбрасывается при каждом ресете. А ресет случается при каждом включении питания.

Сообщение отредактировал Ale3000 - 17.10.2009, 21:56
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
jonsony
сообщение 17.10.2009, 22:25
Сообщение #48


я есть я и никто иной
Group Icon


Группа: Пользователи
Сообщений: 13 154
Регистрация: 18.9.2008
Из: Омск
Пользователь №: 50 025



Репутация:   648  


Цитата(Ale3000 @ 17.10.2009, 20:54) *

Нет. PICу, как и любому другому процессору насрать на директиву org. После ресета он будет стартовать всегда по одному и тому же адресу. Для PICов, насколько я помню он нулевой. И в задачу программиста входит расположить именно по этому адресу начало своей программы.

мда? а на кой тогда для com прог прописано org 100?

берём книжку по пикам, видим там
-"org - начальный адрес в памяти программ для последующего кода", ещё возражения?


-"Следует только иметь в виду, что при загрузке программы типа .СОМ регистр IP всегда инициализируется числом 100h, поэтому сразу вслед за оператором ORG 100h должна стоять первая выполнимая команда программы. Если данные желательно расположить в начале программы, перед ними следует помес-тить оператор перехода на фактическую точку входа, например jmp entry."

Сообщение отредактировал jonsony - 17.10.2009, 22:33
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
TODD22
сообщение 17.10.2009, 22:49
Сообщение #49


МЕГА флудер
Group Icon


Группа: Sibnet-club
Сообщений: 7 087
Регистрация: 18.12.2008
Пользователь №: 68 195



Репутация:   107  


может я чего то путаю(память подводит, да и температура у меня 39). но деректива "org" нужна для того что бы указать компилятору с какой ячейки памяти распологать основную программу. а вот до этой ячейки помойму распологаються подпрограммы обработчики прерывания, или bootloader. вроде бы так, книги по контроллерам нет под рукой...
Titr а вам бы я порекомендовал почитать книгу которую я на первой странице этой темы рекомендовал в сети есть ну и конечно же читать даташиты....
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Ale3000
сообщение 17.10.2009, 23:20
Сообщение #50


Болтун
Group Icon


Группа: Sibnet-club
Сообщений: 889
Регистрация: 15.11.2007
Пользователь №: 10 642



Репутация:   60  


Цитата(jonsony @ 17.10.2009, 21:25) *
мда? а на кой тогда для com прог прописано org 100?
Это ты уже про 8086 процессор говоришь?
Цитата(jonsony @ 17.10.2009, 21:25) *
берём книжку по пикам, видим там
-"org - начальный адрес в памяти программ для последующего кода", ещё возражения?
Я тебе так и написал: "Директива org сообщает компилятору с какого адреса он будет располагать следующий за директивой org код." Ты же ранее утверждал, что "директива org говорит PIC откуда начать выполнение программ".
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
jonsony
сообщение 17.10.2009, 23:29
Сообщение #51


я есть я и никто иной
Group Icon


Группа: Пользователи
Сообщений: 13 154
Регистрация: 18.9.2008
Из: Омск
Пользователь №: 50 025



Репутация:   648  


Цитата(Ale3000 @ 17.10.2009, 22:20) *

Это ты уже про 8086 процессор говоришь?

это я тебе тебя же цитирую из этих слов
-"Нет. PICу, как и любому другому процессору насрать на директиву org."

Цитата(Ale3000 @ 17.10.2009, 22:20) *

Я тебе так и написал: "Директива org сообщает компилятору с какого адреса он будет располагать следующий за директивой org код." Ты же ранее утверждал, что "директива org говорит PIC откуда начать выполнение программ".

ты ничего не путаешь?

Сообщение отредактировал jonsony - 17.10.2009, 23:30
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Ale3000
сообщение 17.10.2009, 23:37
Сообщение #52


Болтун
Group Icon


Группа: Sibnet-club
Сообщений: 889
Регистрация: 15.11.2007
Пользователь №: 10 642



Репутация:   60  


Цитата(jonsony @ 17.10.2009, 22:29) *
это я тебе тебя же цитирую из этих слов
-"Нет. PICу, как и любому другому процессору насрать на директиву org."
ты ничего не путаешь?
Когда запускается программа COM, то процессор не ресетуется. Операционная система загружает в память твою COM программу и переходит по адресу 100h. Если в начале COM программы написать ORG 200h. То DOS все равно передаст управление по адресу 100h, только в этом случае там будет мусор лежать.
Цитата(jonsony @ 17.10.2009, 22:29) *
ты ничего не путаешь?
Да, это утверждал zedimon. Извини.

Сообщение отредактировал Ale3000 - 17.10.2009, 23:40
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
jonsony
сообщение 18.10.2009, 0:31
Сообщение #53


я есть я и никто иной
Group Icon


Группа: Пользователи
Сообщений: 13 154
Регистрация: 18.9.2008
Из: Омск
Пользователь №: 50 025



Репутация:   648  


Цитата(Ale3000 @ 17.10.2009, 22:37) *

Когда запускается программа COM, то процессор не ресетуется. Операционная система загружает в память твою COM программу и переходит по адресу 100h. Если в начале COM программы написать ORG 200h. То DOS все равно передаст управление по адресу 100h, только в этом случае там будет мусор лежать.

» Спойлер (нажмите, чтобы прочесть) «
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Drex
сообщение 18.10.2009, 1:27
Сообщение #54


Молчун
Group Icon


Группа: Пользователи
Сообщений: 33
Регистрация: 18.7.2008
Из: Кемерово
Пользователь №: 41 308



Репутация:   1  


Цитата(zedimon @ 16.10.2009, 20:44) *

Хороший ответ.

Давайте все таки выясним для чего нужна директива "org":

Цитата:
Директива org, определяет, с какого именно адреса памяти программ (PC) начать исполнение программы (обычно, org 0 С нулевого адреса PC) и команда перехода на начало исполнения программы (обычно, goto Start).
Так как команда goto Start расположена сразу же после директивы org 0 (у команды goto Start нулевой адрес в памяти программ), то с этой команды и начнется исполнение программы.


Из этой цитаты по моему ясно для чего нужна директива org.
Если не понятно, поясню на пальцах, директива org говорит PIC откуда начать выполнение программы. Так как счетчик PC, при выключении питания, не сбрасывается, то, без этой команды (org 0), при следующем включении питания PIC продолжит выполнения программы с того места где остановился, что нарушает нормальную работу PIC.


Серьезное заблуждение.
Объясняю подробно. Директива org - это директива КОМПИЛЯТОРА, а не команда ассемблера. Эта директива исплняется именно компилятором во время компиляции программы. ПИК потом об этой директиве никогда ничего не узнает. Нужна эта директива для указания КОМПИЛЯТОРУ с какого места в пямяти программ будет располагаться исполняемый код, описанный сразу после директивы org. Бывает так, что нужно разместить чать программы в определенном месте памяти. Например, какую-то таблицу с данными. Для этого перед описанием таблицы вставляют эту директиву. Тогда, независимо от того, в каком месте была последняя скомпилированная команда, последующая в тексте команда будет размещена по адресу, указанному в org. По тексту программы такую директиву можно использовать более одного раза.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
titr
сообщение 18.10.2009, 1:46
Сообщение #55


Любит поговорить
Group Icon


Группа: Sibnet-club
Сообщений: 342
Регистрация: 26.11.2007
Пользователь №: 11 660



Репутация:   1  


Вот как все неоднозначно оказалось, каждый понимает эту команду по разному. А вопрос казалось бы простой. Спасибо всем, буду разбираться.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
zedimon
сообщение 13.11.2009, 22:51
Сообщение #56


Болтун
Group Icon


Группа: Sibnet-club
Сообщений: 624
Регистрация: 2.3.2008
Пользователь №: 23 091



Репутация:   22  


Экономим выводы МК.
Динамическая индикация по последовательной шине для PIC.
Прикрепленное изображение схема подключения.
Прикрепленный файл  Disp7seg_09.rar ( 475 байт ) Кол-во скачиваний: 84
демонстрационная прошивка.
Частота кварца 8 МГц.
Частота развертки 50 Гц.
Размер программы 153 байта, с уходом в прерывание от TMR0.
Максимально возможная частота развертки 200 Гц.

Управление LCD индикатором по последовательной шине для PIC.
Прикрепленное изображение схема подключения.
Прикрепленный файл  i2s_lsd.rar ( 683 байт ) Кол-во скачиваний: 78
демонстрационная прошивка.
Частота кварца 10 МГц.
Размер программы 238 байт.

Сообщение отредактировал zedimon - 5.3.2010, 12:05
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
wws63
сообщение 26.11.2009, 19:31
Сообщение #57


Молчун
Group Icon


Группа: Пользователи
Сообщений: 10
Регистрация: 2.9.2009
Пользователь №: 133 930



Репутация:   0  


Что-то не скачивается демонстрационная прошивка?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
zedimon
сообщение 26.11.2009, 22:18
Сообщение #58


Болтун
Group Icon


Группа: Sibnet-club
Сообщений: 624
Регистрация: 2.3.2008
Пользователь №: 23 091



Репутация:   22  


Цитата(wws63 @ 26.11.2009, 18:31) *

Что-то не скачивается демонстрационная прошивка?

Пере залил, хотя файл существовал.
Прикрепленный файл  Disp7seg_09.rar ( 475 байт ) Кол-во скачиваний: 92


Сообщение отредактировал zedimon - 26.11.2009, 22:19
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
wws63
сообщение 27.11.2009, 22:54
Сообщение #59


Молчун
Group Icon


Группа: Пользователи
Сообщений: 10
Регистрация: 2.9.2009
Пользователь №: 133 930



Репутация:   0  


Цитата(zedimon @ 26.11.2009, 21:18) *

Пере залил, хотя файл существовал.
Прикрепленный файл  Disp7seg_09.rar ( 475 байт ) Кол-во скачиваний: 92


Всё, скачал. Исходник для просмотра не скинете?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
zedimon
сообщение 29.11.2009, 12:31
Сообщение #60


Болтун
Group Icon


Группа: Sibnet-club
Сообщений: 624
Регистрация: 2.3.2008
Пользователь №: 23 091



Репутация:   22  


Цитата(wws63 @ 27.11.2009, 21:54) *

Всё, скачал. Исходник для просмотра не скинете?

Исходник для просмотра здесь: http://startcd.narod.ru/hc595/led595.html
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

25 страниц V < 1 2 3 4 5 > » 
Ответить в эту темуОткрыть новую тему
1 чел. просматривают этот форум (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 20.7.2019, 8:38
Редакция: (383) 347-86-84

Техподдержка: (383) 347-22-44
help.sibnet.ru
Размещение рекламы:
тел: (383) 347-06-78, 347-10-50

Правила использования материалов