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

 
 
> Объекты в IAR
chernenko
сообщение Dec 6 2006, 16:47
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 170
Регистрация: 8-02-06
Из: Москва
Пользователь №: 14 116



Реально ли использование объектов в IAR AVR (версия 3.20).
Написал простую тестовую программу и столкнулся с несколькими трудностями.

Во-первых создаваемый в main объект ни в какую не видится в обработчике прерывания таймера. Undefined говорит и все тут. Ничего не получалось и ушел от этого переносом кода в main, выставляя в прерывании флаг разрешения обработки.

Тестирую на двух фильтрах - объектах КИХ (обычное усреднение) и на БИХ (полосовом).

В debugere объекты создаются и все вроде правильно а в реальности на железе ерунда полная. Иногда бывает что при создании объекта некоторые переменные объекта начинаю неадекватно изменяться....


Вот так выглядит объект:
Код
class TAverage
  {
  private:
  #define average_array_size 32
  signed int average_array[average_array_size];
  signed long int average_out;
  unsigned int curr_average_array;
  
  public:
  unsigned char average_array_max;
  
  TAverage(unsigned char average_array_max_setup)
    {
    if(average_array_max_setup <= average_array_size)
      {
      average_array_max = average_array_max_setup;
      }
    }
    
  signed int average(signed int average_in)
    {
    average_out -= average_array[curr_average_array];
    average_array[curr_average_array] = average_in;  
    average_out += average_array[curr_average_array];
    curr_average_array++;
    if (curr_average_array >= average_array_max) curr_average_array = 0;
    return ((signed int)(average_out / average_array_max + 0.5));
    }
  };


Вот так создается объект с помощью конструктора:
Код
TAverage filtr(32);



Вот так использую метод объекта:
Код
InputData.Y.word = filtr.average(InputData.X.word);


Может я из-за малого опыта и знания допустил концептуальную ошибку.

Или есть объективные причины в невозможности использования объектов в IAR
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jorikdima
сообщение Dec 13 2006, 16:39
Сообщение #2


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Цитата(chernenko @ Dec 13 2006, 14:19) *
Цитата(jorikdima @ Dec 13 2006, 14:11) *

Во-первых локального объявления функции быть не может. (это я к фразе "Так же как и глобальное объявление функции? ")

Я не програмист, а радиотехник и вынужден изучать язык не имея никакой академической начальной платформы.

И я biggrin.gif biggrin.gif
Так в итоге вышло??
Go to the top of the page
 
+Quote Post
chernenko
сообщение Dec 15 2006, 23:00
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 170
Регистрация: 8-02-06
Из: Москва
Пользователь №: 14 116



Цитата(jorikdima @ Dec 13 2006, 16:39) *
Цитата(chernenko @ Dec 13 2006, 14:19) *

Цитата(jorikdima @ Dec 13 2006, 14:11) *

Во-первых локального объявления функции быть не может. (это я к фразе "Так же как и глобальное объявление функции? ")

Я не програмист, а радиотехник и вынужден изучать язык не имея никакой академической начальной платформы.

И я biggrin.gif biggrin.gif
Так в итоге вышло??



В результате получилась последовательность элементарных КИХ - фильтров.

Одна проблема:

В тестовой программке объекты создаются вот так:

Код
int main(void);
void SerialSetDelay(void);
void StartADC(void);
void StopADC(void);      
TAverage filtr(8);
TAverage filtr0(16);


Затем в прерывании используются вот так:
Код
InputData.Y.word = filtr.average(filtr0.average(InputData.Y.word));


Но это не гибко совсем.
То есть эти объекты в процессе программы я не могу удалить и не могу создать другие фильтры с новыми параметрами.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- chernenko   Объекты в IAR   Dec 6 2006, 16:47
- - dxp   Цитата(chernenko @ Dec 6 2006, 19:47) Реа...   Dec 11 2006, 10:35
|- - chernenko   Цитата(dxp @ Dec 11 2006, 10:35) Насчет т...   Dec 13 2006, 13:41
|- - dxp   Цитата(chernenko @ Dec 13 2006, 16:41) Ци...   Dec 13 2006, 13:51
- - jorikdima   Объект то где согдается? Глобально?   Dec 13 2006, 13:54
|- - chernenko   Цитата(jorikdima @ Dec 13 2006, 13:54) Об...   Dec 13 2006, 14:00
- - jorikdima   Во-первых локального объявления функции быть не мо...   Dec 13 2006, 14:11
|- - chernenko   Цитата(jorikdima @ Dec 13 2006, 14:11) Во...   Dec 13 2006, 14:19
|- - prottoss   Цитата(chernenko @ Dec 16 2006, 03:00) Но...   Dec 15 2006, 23:12
|- - chernenko   Цитата(prottoss @ Dec 15 2006, 23:12) Пра...   Dec 15 2006, 23:40
|- - jorikdima   Цитата(chernenko @ Dec 15 2006, 23:40) А ...   Dec 16 2006, 12:16
|- - prottoss   Цитата(chernenko @ Dec 16 2006, 03:40) А ...   Dec 16 2006, 12:34
- - chernenko   Только часто бывает, что в борланде идея работает ...   Dec 16 2006, 16:13
|- - prottoss   Цитата(chernenko @ Dec 16 2006, 20:13) А ...   Dec 17 2006, 01:16
|- - chernenko   Цитата(prottoss @ Dec 17 2006, 01:16) Во ...   Dec 17 2006, 01:32
|- - SasaVitebsk   Цитата(chernenko @ Dec 17 2006, 01:32) Пр...   Dec 17 2006, 03:02
|- - chernenko   Цитата(SasaVitebsk @ Dec 17 2006, 03:02) ...   Dec 17 2006, 04:42
|- - SasaVitebsk   Цитата(chernenko @ Dec 17 2006, 04:42) Ци...   Dec 17 2006, 16:31
|- - prottoss   Цитата(SasaVitebsk @ Dec 17 2006, 20:31) ...   Dec 17 2006, 17:09
|- - SasaVitebsk   Цитата(prottoss @ Dec 17 2006, 17:09) Сор...   Dec 18 2006, 23:58
- - forever failure   Во первых, во всех файлах, где используется переме...   Dec 16 2006, 17:07
- - jorikdima   а warning никакких нет?   Dec 17 2006, 01:06


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

 


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


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