|
|
 |
Ответов
|
Nov 20 2006, 14:11
|
Частый гость
 
Группа: Свой
Сообщений: 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 ";"
--------------------
Завтра пойму, что нужно было сделать вчера...
|
|
|
|
|
Nov 20 2006, 15:05
|
Местный
  
Группа: Свой
Сообщений: 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;
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Nov 20 2006, 15:49
|
Частый гость
 
Группа: Свой
Сообщений: 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; это не так... причина в другом...
--------------------
Завтра пойму, что нужно было сделать вчера...
|
|
|
|
|
Nov 20 2006, 15:57
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Цитата(Faradey @ Nov 20 2006, 15:49)  это не так... причина в другом... А вы попробовали мой пример? Компилятор также ругается?
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Nov 20 2006, 15:58
|
Частый гость
 
Группа: Свой
Сообщений: 127
Регистрация: 31-05-06
Из: Belarus, Minsk
Пользователь №: 17 638

|
Цитата(otrog @ Nov 20 2006, 14:57)  Цитата(Faradey @ Nov 20 2006, 15:49)  это не так... причина в другом...
А вы попробовали мой пример? Компилятор также ругается? клеветать и лгать не в моих традициях
--------------------
Завтра пойму, что нужно было сделать вчера...
|
|
|
|
|
Nov 20 2006, 16:15
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Цитата(Faradey @ Nov 20 2006, 15:58)  клеветать и лгать не в моих традициях Тогда строчку Код hold_reg.SS_ADR.Lo_byte = 1; перенесите в main, или еще в какую процедуру.
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Nov 20 2006, 17:17
|

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

|
Цитата(otrog @ Nov 20 2006, 15:15)  ... строчку Код hold_reg.SS_ADR.Lo_byte = 1; перенесите в main, или еще в какую процедуру. т. к. инициализация переменной должна быть в строке, в которой эта переменная обьявляется. В примере Faradey происходит присвоение переменной значения. А это должно осуществляться только внутри функции. И дело здесь вовсе не в eeprom, а в нарушении правил программирования на С.
|
|
|
|
|
Nov 20 2006, 18:37
|
Частый гость
 
Группа: Свой
Сообщений: 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 .
--------------------
Завтра пойму, что нужно было сделать вчера...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|