Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 09.02.2006, 13:50   #1
BPSNSK
Частый гость
 
Регистрация: 25.08.2005
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
BPSNSK на пути к лучшему
По умолчанию Глубина вложений операторов в программе для AVR

Привожу кусок программы, где пересчитываются переменые 8 каналов в зависимости от их приоритета (CH). Высший приоритет - 0. Писал в CodeVisionAVR. Контроллер Мега16.
Пока не додумал что-нибудь попроще, но работает эта лесенка (программно проверил) только до комментария. То есть просчитывает только до 4-го уровня.
Какие-то есть на это ограничения, просветите, пожалуйста? Если да, то как можно извернуться?

for (a=0;a‹=7;a++)

if (CH[a]==0)

for (b=0;b‹=7;b++)

if (CH[b]==a)
{
Mas[b]=Mas[b]+Mas[a];

for (c=0;c‹=7;c++)

if (CH[c]==b)
{

Mas[c]=Mas[c]+Mas[b];

for (d=0;d‹=7;d++)

if (CH[d]==c)
{

Mas[d]=Mas[d]+Mas[c];

// Глубина = 4

for (e=0;e‹=7;e++)

if (CH[e]==d)
{

Mas[e]=Mas[e]+Mas[d];

for (f=0;f‹=7;f++)

if (CH[f]==e)
{

Mas[f]=Mas[f]+Mas[e];

for (g=0;g‹=7;g++)

if (CH[g]==f)
{

Mas[g]=Mas[g]+Mas[f];

for (h=0;h‹=7;h++)

if (CH[h]==g)

Mas[h]=Mas[h]+Mas[g];


}

}

}
//
}

}

}

Для удобства восприятия текста я прилагаю скриншот.

-- Прилагается рисунок: --
Реклама:
BPSNSK вне форума  
Непрочитано 09.02.2006, 16:26   #2
Gnider
Почётный гражданин KAZUS.RU
 
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
Gnider на пути к лучшему
По умолчанию

А дебаггер,дизассемблер для чего придуманы - лезь в код и смотри
Gnider вне форума  
Непрочитано 10.02.2006, 11:46   #3
BPSNSK
Частый гость
 
Регистрация: 25.08.2005
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
BPSNSK на пути к лучшему
По умолчанию

Сделал отладку по шагам. Циклы работают, но расчёты не производятся ниже 4 уровня.
В моём варинате вместо простого расчёта ещё стояло по 2 оператора IF.
Упростил программу - удалив по одному IF - прога заработала как надо.
Похоже есть ограничение на глубину IF. Нигде не встречал, где б прочесть доку?
BPSNSK вне форума  
Непрочитано 10.02.2006, 17:41   #4
Gnider
Почётный гражданин KAZUS.RU
 
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
Gnider на пути к лучшему
По умолчанию

Если есть такое ограничение - либо менять компилер,либо программу переделывать.
Gnider вне форума  
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В какой программе компелить код (подключение #include ) FedorChek Микроконтроллеры, АЦП, память и т.д 4 04.05.2009 20:00
вопрос по программе Transformer 3.0.0.3 Ham-radio1986 Источники питания и свет 1 06.12.2007 10:04
CodeVision Проблеммы при программе более 50% памяти Andrewg Proteus, KiCAD и другие ECAD 2 07.08.2007 17:20
Несколько мобильных операторов на одной SIM карте Angelus Автоматика и аппаратура связи 7 05.03.2007 11:26


Часовой пояс GMT +4, время: 03:55.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot