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

 
 
> структура в еепром?
Faradey
сообщение Nov 20 2006, 13:40
Сообщение #1


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

Группа: Свой
Сообщений: 127
Регистрация: 31-05-06
Из: Belarus, Minsk
Пользователь №: 17 638



если можно, то как определить структуру в еепром?


--------------------
Завтра пойму, что нужно было сделать вчера...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Faradey
сообщение Nov 20 2006, 14:11
Сообщение #2


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

Группа: Свой
Сообщений: 127
Регистрация: 31-05-06
Из: Belarus, Minsk
Пользователь №: 17 638



а так почему не работает?

Код
struct REG
{
   u08   Lo_byte;
   u08  Hi_bite;
};
struct HOLD_REG
{
struct REG SS_ADR;
struct REG SS_BAUD;
struct REG SS_PARITY;
struct REG SS_RESERV;
};

__eeprom struct HOLD_REG hold_reg;
hold_reg.SS_ADR.Lo_byte = 1;


ругается:
Цитата
Error[Pe077]: this declaration has no storage class or type specifier
Error[Pe147]: declaration is incompatible with "HOLD_REG __eeprom hold_reg"
Error[Pe065]: expected a ";"


--------------------
Завтра пойму, что нужно было сделать вчера...
Go to the top of the page
 
+Quote Post
otrog
сообщение Nov 20 2006, 15:05
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Цитата(Faradey @ Nov 20 2006, 14:11) *
__eeprom struct HOLD_REG hold_reg;

Помоему компилятору без разницы в каком регистре записаны идентификаторы. Поэтому получилось одинаковое название у типа структуры и у структуры.

Пишите
Код
struct THOLD_REG
{
struct REG SS_ADR;
struct REG SS_BAUD;
struct REG SS_PARITY;
struct REG SS_RESERV;
};

__eeprom struct THOLD_REG hold_reg;


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
Faradey
сообщение Nov 20 2006, 15:49
Сообщение #4


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

Группа: Свой
Сообщений: 127
Регистрация: 31-05-06
Из: Belarus, Minsk
Пользователь №: 17 638



Цитата(otrog @ Nov 20 2006, 14:05) *
Цитата(Faradey @ Nov 20 2006, 14:11) *

__eeprom struct HOLD_REG hold_reg;

Помоему компилятору без разницы в каком регистре записаны идентификаторы. Поэтому получилось одинаковое название у типа структуры и у структуры.

Пишите
Код
struct THOLD_REG
{
struct REG SS_ADR;
struct REG SS_BAUD;
struct REG SS_PARITY;
struct REG SS_RESERV;
};

__eeprom struct THOLD_REG hold_reg;




это не так...
причина в другом...


--------------------
Завтра пойму, что нужно было сделать вчера...
Go to the top of the page
 
+Quote Post
otrog
сообщение Nov 20 2006, 15:57
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Цитата(Faradey @ Nov 20 2006, 15:49) *
это не так...
причина в другом...

А вы попробовали мой пример? Компилятор также ругается?


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
Faradey
сообщение Nov 20 2006, 15:58
Сообщение #6


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

Группа: Свой
Сообщений: 127
Регистрация: 31-05-06
Из: Belarus, Minsk
Пользователь №: 17 638



Цитата(otrog @ Nov 20 2006, 14:57) *
Цитата(Faradey @ Nov 20 2006, 15:49) *

это не так...
причина в другом...

А вы попробовали мой пример? Компилятор также ругается?


клеветать и лгать не в моих традициях


--------------------
Завтра пойму, что нужно было сделать вчера...
Go to the top of the page
 
+Quote Post
otrog
сообщение Nov 20 2006, 16:15
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Цитата(Faradey @ Nov 20 2006, 15:58) *
клеветать и лгать не в моих традициях

Тогда строчку
Код
hold_reg.SS_ADR.Lo_byte = 1;

перенесите в main, или еще в какую процедуру.


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Nov 20 2006, 17:17
Сообщение #8


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(otrog @ Nov 20 2006, 15:15) *
... строчку
Код
hold_reg.SS_ADR.Lo_byte = 1;

перенесите в main, или еще в какую процедуру.

т. к. инициализация переменной должна быть в строке, в которой эта переменная обьявляется.
В примере Faradey происходит присвоение переменной значения. А это должно осуществляться только внутри функции.
И дело здесь вовсе не в eeprom, а в нарушении правил программирования на С.
Go to the top of the page
 
+Quote Post
Faradey
сообщение Nov 20 2006, 18:37
Сообщение #9


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

Группа: Свой
Сообщений: 127
Регистрация: 31-05-06
Из: Belarus, Minsk
Пользователь №: 17 638



Цитата(IgorKossak @ Nov 20 2006, 16:17) *
Цитата(otrog @ Nov 20 2006, 15:15) *

... строчку
Код
hold_reg.SS_ADR.Lo_byte = 1;

перенесите в main, или еще в какую процедуру.

т. к. инициализация переменной должна быть в строке, в которой эта переменная обьявляется.
В примере Faradey происходит присвоение переменной значения. А это должно осуществляться только внутри функции.
И дело здесь вовсе не в eeprom, а в нарушении правил программирования на С.


спасибо IgorKossak .


--------------------
Завтра пойму, что нужно было сделать вчера...
Go to the top of the page
 
+Quote Post



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

 


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


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