Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: DAlexV, ivan_fd  
Форум Picbasic.ru » Программирование МК » Swordfish » Функции и подпрограммы (параметры)
Функции и подпрограммы
demanik Дата: Ср, 17.02.2010, 17:28  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

В функциях и подпрограммах есть параметры: inline, ByVal, ByRef, ByRefConst, ConstExp.
Смысла которых изза слабого знания английского никак не пойму. Может ктото доходчиво разжует. angry


Попробуй всё и вся... может быть пол...

ЯНДЕКС Дата: 17.02.2010
DAlexV Дата: Чт, 18.02.2010, 20:26  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Ну задал вопрос так задал!!!!
Ни когда не пробовал сии параметры. Насколько понял из описания:

ByVal при обращении к процедуре значение переменной не меняется(создается локальная копия с которой и происходят изменения)(по умолчанию)
ByRef при этом изменяются значения переменной в зависимости от выполняемых в (функции, процедуре)

Code
include "USART.bas"
include "Convert.bas"

sub NoChange(pValue as byte)
     pValue = 10
end sub

sub ChangeValue(byref pValue as byte)
     pValue = 10
end sub

dim Value as byte
SetBaudrate(br19200)
Value = 0
NoChange(Value)
USART.Write("Value : ", DecToStr(Value), 13, 10)
ChangeValue(Value)
USART.Write("Value : ", DecToStr(Value), 13, 10)

при вызове функции NoChange(Value) значение Value не изменяется
при вызове функции ChangeValue(Value) значение Value равно 10(см. функцию)

ByRefConst тут посложнее. Что то связанное с экономией памяти при работе с постоянными константами(что бы не использовать ОЗУ процессора.
Гугл дал такой перевод:
Существует и третья передачи параметров механизма, который используется главным образом для постоянных массивов. Микроконтроллера ПИК ™, постоянная массивы хранятся в отличие от памяти данные которых требует использования byrefconst. Это гарантирует, что диск адрес передается и не ОЗУ адрес. Например,

Code

include "USART.bas"
const Names(3) as string = ("David", "Fred", "Peter")
sub DisplayNames(byrefconst pNames() as string)
     dim Index as byte
     for Index = 0 to bound(pNames)
        USART.Write(pNames(Index), 13, 10)
     next
end sub

SetBaudrate(br19200)
DisplayNames(Names)      
     

то бишь pNames не создается как константа в памяти проца, а читается напрямую из const Names()

Ну и на сладкое inline и noinline
Ни чего не понятно, но что то связанное с блокировкой вызова данной за оператором функции и компиляцией программы. Якобы увеличивает скорость(из за исключения переходов к подпрограммам) , но и так же размер компилируемой программы.

Прошу прошения что не как то невнятно, сам еще учусь. Надеюсь разъяснил.

P/S. Если непонятно есть переводчик Google http://translate.google.ru/?js=y&p....#submit
перевожу когда самому непонятно, не идеально, но врубиться можно


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
demanik Дата: Вс, 07.03.2010, 14:04  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

С ByVal и ByRef разобрался:
ByRef - функция или подпрограмма берет значение, обрабатывает и при выходе возвращает измененное значение (если было изменение внутри подпрограммы).
ByVal - функция или подпрограмма берет значение, обрабатывает но при выходе оставляет оригинальное значение.
happy
Остальное ByRefConst, ConstExp, inline и noinline пока туманно.

Переделал уже два проэкта из протона на рыбу. Чем глубже разбираюсь тем больше нравится рыба. Очень много общего в рыбе с микробейсиком. Но есть огромный плюс, это возможность корректировать и переделывать стандартные библиотеки. Например: в библиотеке LCD мне непонравился оператор вывода на дисплей "Write" он такойже как и в библиотеке EEPROM но там для записи в ячейку памяти, и для их одновременного использования нужно писать префиксы: LCD.Write и EE.Wrire. немного неудобно и я переделал в библиотеке LCD "Write" на "PRINT". при переделке с протона меньше именений, но минус работает только с моей библиотекой. cool


Попробуй всё и вся... может быть пол...

DAlexV Дата: Вс, 07.03.2010, 17:20  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (demanik)
и я переделал в библиотеке LCD "Write" на "PRINT".

Да на здоровье. Этим он мне то же нравиться. Не нравиться стандартная, переделывай или пиши свою.
Quote (demanik)
но минус работает только с моей библиотекой.

Если кому то отдать нужно, переименовал в My_LCD и прикрепляешь к проджекту. Не проблема.


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
MasterPic Дата: Вс, 07.03.2010, 19:23  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 186
Репутация: 2   ±
Замечания:   ±
На сайте с 22.11.2008

Статус: Offline

Подскажите, где по 18 серии по русски внятно написано, может, кинете чем нибудь. а на рыбу по русски есть у кого нибудь? Да вообще, надо наверное уже на какие нибудь pic33 переходить?
DAlexV Дата: Вс, 07.03.2010, 19:36  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (MasterPic)
Подскажите, где по 18 серии по русски внятно написано

Что имеется ввиду??? На Рыбе на русском вряд ли, редкий язык.
Quote (MasterPic)
надо наверное уже на какие нибудь pic33 переходить
Это сугубо личное дело. Меня и 18 полностью устраивает.


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Victoricr Дата: Ср, 22.06.2022, 07:29  |                                                                                                                Сообщение # 7
Группа: Пользователи
Ранг:  Новенький
Сообщений: 10
Репутация: 0   ±
Замечания:   ±
На сайте с 02.12.2020

Статус: Offline

Добрый день друзья!
Предлагаем Вашему вниманию замечательный сайт https://dengi-do-zarplaty.ru/
Конечно, никто не хочет давать деньги в долг и особенно никому не хочется брать их взаймы. Но иногда ситуация решает за нас и приходится очень срочно искать, откуда взять деньги. В первую очередь обычно обращаются к родственникам, друзьям, коллегам по работе, партнерам по бизнесу, но во многих случаях они могут отказать. Хорошим выбором будет обратиться в финансовую компанию, в которой можно на выгодных условиях взять кредит, чтобы улучшить свое положение. Причем важно не только оформить кредит быстро с хорошими требованиями, но и взять кредит наличными под низкий процент. Никто не хочет влезать в долги, которые еще не понятно, как придется отдавать.


купить пленку защитную 5
Bogdanivf Дата: Чт, 09.11.2023, 09:23  |                                                                                                                Сообщение # 8
Группа: Заблокированные
Ранг:  Пытаюсь разобраться
Сообщений: 42
Репутация: 0   ±
Замечания:   ±
На сайте с 19.04.2021

Статус: Offline

Приветствую Вас товарищи.

Предлагаем Вашему вниманию интересный сайт для заказа услуг стоматологии в Минске.К вашим услугам лучшие стоматологи Минска с многолетним стажем.стоматология минск,удаление зуба, отбеливание зубов,лечение зуба,удаление зуба мудрости,стоматология минск цены и стоматология платные услуги минск.
У нас работают стоматологи высшей категории, доценты и профессора — врачи с высоким уровнем профессионализма и личной ответственности, способные действовать в команде и постоянно совершенствоваться. Наша профессия — это ваша здоровая и красивая улыбка!Мы всегда на связи с вами! Мы предлагаем комплексный подход в решении стоматологических проблем.это команда единомышленников, одни из лучших специалистов в области эстетической и восстановительной стоматологии, ортопедии, ортодонтии, челюстно-лицевой хирурги и периодонтологии, эндодонтии, что позволяет достигать наилучших результатов лечения.Мы верим в построение отношений, основанных на доверии и взаимопонимании. Наши пациенты становятся нашими друзьями.
Увидимся!
гигиена полости рта с брекет системой
имплантация зубов протезы
анестезия через сколько проходит после лечения зуба
пломбирование зуба после удаления нерва
зуб стоматология в минск
имплантация 21 зуба
диета после отбеливания зубов
стоимость съемного зубного протеза верхней челюсти
металлокерамическая коронка цена в минске
остеомиелит после удаления зуба
процесс заживления удаления зуба
зубные бюгельные протезы нового поколения
имплантация соседних зубов
перед установкой виниров
лечение пульпита за одно посещение это правильно
показания к имплантации зубов
безметалловые керамические коронки
что нужно знать перед имплантацией зубов
удаление зуба шестерки
герметизация фиссур постоянных зубов
установка импланта зуба имплантация зубов
съемные зубные протезы виниры
мосты передних зубов металлокерамика
профессиональное отбеливание зубов
пульпит лечение или удаление
рекомендации после имплантации зубов верхней
съемные зубные протезы квадротти
синус лифтинг при имплантации зубов цена
повышение температуры после имплантации зубов
керамические коронки на жевательные
делать ли имплантацию зуба
чистка и отбеливание зубов цена
капы для отбеливания зубов
самолигирующие брекеты взрослым
пломбирование коренных зубов
немедленная имплантация зубов
температура после имплантации зубов
чистка и отбеливание зубов
наборы для имплантации зубов в стоматологии
отбеливание зубов с помощью
удаление нерва зуба цена
стоимость нижнего зубного съемного протеза
съемные зубные протезы на десна
имплантация зубов вся челюсть под ключ
композитные виниры нижний
композитные виниры недорого
виниры микропротезирование
удаление дистопированного зуба
имплантация при полном отсутствии верхних зубов
сколько стоят элайнеры на зубы


купить набор сверл по металлу
Форум Picbasic.ru » Программирование МК » Swordfish » Функции и подпрограммы (параметры)
  • Страница 1 из 1
  • 1
Поиск: