[an error occurred while processing this directive]
Ответ: я делаю так(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
миниатюрный аудио-видеорекордер mAVR

Отправлено VAI 26 июня 2002 г. 22:40
В ответ на: Вопрос по С для PIC. отправлено SERGO 26 июня 2002 г. 21:14

* В компиляторе в
* "Make\Linker options ..." вписать:
* -peeloc=2100h
*
* В Сишном файле должно быть:
*

#if sizeof( double ) == sizeof( float )

#asm
dbl2db macro dbl // разбивка double по байтам
db low( float24( dbl ))
db high( float24( dbl ))
db low( highword( float24( dbl )))
endm

#endasm

#else

#asm
dbl2db macro dbl // разбивка double по байтам
db low( dbl )
db high( dbl )
db low( highword( dbl ))
db high( highword( dbl ))
endm

#endasm

#endif

....

#asm

psect eeloc,delta=2,ovrld
global _eeprom_data

st_koef macro K1, Y1, K2, Y2, K3
dbl2db K1
dbl2db Y1
dbl2db K2
dbl2db Y2
dbl2db K3
endm


_eeprom_data

db 100
dbl2db 0.0015
st_koef 11013.85 0.99 -2288.6 2.78 1.0

#endasm
============================
где нибудь в h-ном файле объявляю

typedef struct
{ double k1;
double y1;
double k2;
double y2;
double k3;
} ST_KOEF;

typedef struct // содержимое EEPROM прибора
{ char zyu;
double dyu;
ST_KOEF syu;
} ROM_STRUCTURE;


static ROM_STRUCTURE ee_data @ 0; // фиктивная структура для получения адреса каждого из состaвляющих EEPROM

#define ee_adr( element ) ( (char)&ee_data.element )

и т.д.


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru