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

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

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

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

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

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

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

 
Опции темы
Непрочитано 26.01.2010, 00:35  
innovator_king
Прописка
 
Аватар для innovator_king
 
Регистрация: 12.05.2009
Сообщений: 232
Сказал спасибо: 56
Сказали Спасибо 43 раз(а) в 35 сообщении(ях)
innovator_king на пути к лучшему
По умолчанию Class в IAR

Здравствуйте! Пытаюсь создать класс в IAR (конкретно для MSP430)
листинг класса I2C_.h
Код:
class I2C_
{
  public:
    char          port_SDA, 
                     port_SCL,
                     pause_SDA,
                     pause_SCL,
                     pause_get;
    
    unsigned char volatile    SCL_DIR,
                                        SDA_DIR,
                                        SDA_IN;
             void    start_i2c (void);
             void    stop_i2c  (void);
             bool    get_i2c   (void);
             void    IND_write_byte(char);
             void    return_a (void);
  private:
};
листинг main
Код:
#include "msp430x16x.h"
#include "I2C_.h"
int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  I2C_ fff;
  fff.port_SDA = 1;
  fff.&SDA_DIR = &P1DIR;
  return 0;
}
Проблема собственно говоря в присвоении адреса переменной fff.SDA_DIR адреса регистра P1DIR.
Пишет вот что:
Error[Pe133]: expected a member name
И показывает на строчку fff.&SDA_DIR = &P1DIR;
Реклама:
innovator_king вне форума  
Непрочитано 26.01.2010, 06:31  
roxfan
Временная регистрация
 
Регистрация: 25.11.2009
Сообщений: 61
Сказал спасибо: 1
Сказали Спасибо 17 раз(а) в 17 сообщении(ях)
roxfan на пути к лучшему
По умолчанию Re: Class в IAR

Наверное ты хотел сделать так:
unsigned char volatile *pSCL_DIR, *pSDA_DIR, *pSDA_IN;

и

fff.pSDA_DIR = &P1DIR;

Потом внутри класса обращайся так: *pSDA_DIR.
roxfan вне форума  
Сказали "Спасибо" roxfan
innovator_king (26.01.2010)
Непрочитано 26.01.2010, 09:14  
innovator_king
Прописка
 
Аватар для innovator_king
 
Регистрация: 12.05.2009
Сообщений: 232
Сказал спасибо: 56
Сказали Спасибо 43 раз(а) в 35 сообщении(ях)
innovator_king на пути к лучшему
По умолчанию Re: Class в IAR

roxfan, Спасибо за быстрый ответ. Ошибок теперь нет. Но пока контроллер не прошивал. Как прошью отпишусь. Наверное будет работать))))))
innovator_king вне форума  
Непрочитано 26.01.2010, 14:42  
innovator_king
Прописка
 
Аватар для innovator_king
 
Регистрация: 12.05.2009
Сообщений: 232
Сказал спасибо: 56
Сказали Спасибо 43 раз(а) в 35 сообщении(ях)
innovator_king на пути к лучшему
По умолчанию Re: Class в IAR

Попробовал описать конструктор. Неполучилось.
Листинг класса:
Код:
class I2C_
{
  public:
    char             port_SDA, 
                     port_SCL,
                     pause_SDA,
                     pause_SCL,
                     pause_get;
    
    unsigned char volatile    *SCL_DIR,
                                    *SDA_DIR,
                                    *SDA_IN;
             void    start_i2c (void);
             void    stop_i2c  (void);
             bool    get_i2c   (void);
             void    IND_write_byte(char);
             void    return_a (void);
  private:
};
///--------------------------------------------------------------------------
// конструктор 
I2C_::I2C_() 
{
  pause_SDA = 10;
  pause_SCL = 10;
  port_SDA = 0;
  port_SCL = 0;
  pause_get = 40;
}
Ошибка на конструктор:
Error[Pe135]: class "I2C_" has no member "I2C_"
innovator_king вне форума  
Непрочитано 26.01.2010, 14:57  
roxfan
Временная регистрация
 
Регистрация: 25.11.2009
Сообщений: 61
Сказал спасибо: 1
Сказали Спасибо 17 раз(а) в 17 сообщении(ях)
roxfan на пути к лучшему
По умолчанию Re: Class в IAR

Так надо ж его сначала объявить перед тем, как описывать. Где-нибудь в секции public: добавь I2C_();
А вообще лучше почитай какую-нибудь книжку по С++. Или хотя бы тутор по классам.
roxfan вне форума  
Непрочитано 26.01.2010, 16:04  
innovator_king
Прописка
 
Аватар для innovator_king
 
Регистрация: 12.05.2009
Сообщений: 232
Сказал спасибо: 56
Сказали Спасибо 43 раз(а) в 35 сообщении(ях)
innovator_king на пути к лучшему
По умолчанию Re: Class в IAR

Да как всегда я не внимательный)) В книге и правда был прототип конструктора, только правда в самомом начале после public:. Теперь всё нормально.
Спасибо.
innovator_king вне форума  
Непрочитано 26.01.2010, 17:24  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
Стрелка Re: Class в IAR

-------------------------------
Покажите, плиз, весь проект. Я отказываюсь от осей - мне вечно таймеров не хватает - а здесь классы, все дела...
При вечном голоде на оперативку - неужели всего хватает ???
Ну очень прошу...
__________________
warez

Последний раз редактировалось urry; 27.01.2010 в 09:23.
urry вне форума  
Непрочитано 26.01.2010, 17:56  
alexgap
Гражданин KAZUS.RU
 
Аватар для alexgap
 
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
alexgap на пути к лучшему
По умолчанию Re: Class в IAR

Сообщение от urry Посмотреть сообщение
При вечном голоде на оперативку - неужели всего хватает ???
За этим будущее. Компиляторы постоянно совершенствуются и пожалуй не далек тот день когда классы будут развертываться в набор статических функций при наличии соответствующих предпосылок в программе.

А вот гибкость класса функциями трудно сэмитировать. Всё обычно заканчивается на уровне динозавроподобных #define... Ну пока один LCD, одна I2C и всего по одному с этим, конечно, можно жить. А вот если несколько... То тут начинают в голову приходить "плохие" мысли

Поэтому не стоит разводить святых войн, время в глобальном смысле работает против.
alexgap вне форума  
Сказали "Спасибо" alexgap
innovator_king (26.01.2010)
Непрочитано 26.01.2010, 21:12  
innovator_king
Прописка
 
Аватар для innovator_king
 
Регистрация: 12.05.2009
Сообщений: 232
Сказал спасибо: 56
Сказали Спасибо 43 раз(а) в 35 сообщении(ях)
innovator_king на пути к лучшему
По умолчанию Re: Class в IAR

Сообщение от alexgap Посмотреть сообщение
А вот гибкость класса функциями трудно сэмитировать. Всё обычно заканчивается на уровне динозавроподобных #define... Ну пока один LCD, одна I2C и всего по одному с этим, конечно, можно жить. А вот если несколько... То тут начинают в голову приходить "плохие" мысли
Обычно я пишу на С, но тут и правда оценил всю мощь классов когда стало несколько интерфейсов I2C. Вот и попёрло на "плохие мысли".
Сообщение от urry Посмотреть сообщение
Покажите, плиз, весь проект.
Как только сделаю проект выложу. Только это будет не совсем скоро (неделя - две)

Последний раз редактировалось innovator_king; 26.01.2010 в 21:17.
innovator_king вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подниму тему WinAVR vs IAR oleg110592 Микроконтроллеры, АЦП, память и т.д 5 24.10.2015 14:06
IAR Embedded Workbench zubr_ Embedd С 393 01.07.2015 21:15
IAR, Proteus и cof файл - как? tems-ya Proteus 4 13.06.2014 02:32
Почему Вы не используете IAR? AndryG Микроконтроллеры, АЦП, память и т.д 210 27.05.2014 21:39
Настройки в IAR Embedded Workbench for 8051 kazusdoc Микроконтроллеры, АЦП, память и т.д 2 27.01.2010 12:04


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


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