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

миниатюрный аудио-видеорекордер mAVR

Отправлено VAI 20 февраля 2003 г. 07:18
В ответ на: Ответ: можно еще добавить макросов отправлено VAI 20 февраля 2003 г. 06:20

FILE: F:\HT-SHARE.MY\Ee-def.h

/* ---------------------------------------------- ee-def.h ------------------------------------------------ **
* Инициализация EEPROM в PIC16F87x
* В компиляторе в
* "Make\Linker options ..." вписать:
* -peeloc=2100h
*
* В Сишном файле должно быть:
*
* #asm
* psect eeloc,delta=2,ovrld
* global _eeprom_data
* _eeprom_data
* ....
* далее все константы через db или нежеприведенные макросы
* ....
* #endasm
* -------------------------------------------------------------------------------------------------------- */
#ifndef _MY_ee-def_h
#define _MY_ee-def_h
#include <pic.h>


/* -------------------------------------------------------------------------------------------------------- **
* Макросы
* -------------------------------------------------------------------------------------------------------- */

#asm
uint2db macro uint // разбивка unsigned int по байтам
db low( uint );
db high( uint );
endm

ulong2db macro ulong // разбивка unsigned long по байтам
db low( ulong )
db high( ulong )
db low( highword( ulong ))
db high( highword( ulong ))
endm

#endasm


#if sizeof( double ) == sizeof( float )
#define S_DOUBLE 3
#asm
dbl2db macro dbl // разбивка double по байтам
db low( float24( dbl ))
db high( float24( dbl ))
db low( highword( float24( dbl )))
endm

#endasm

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

#endasm

#endif

#endif //_MY_ee-def_h
/* ---------------------------------------------( end of file )-------------------------------------------- */


Created with The Source Studio - EVALUATION version


FILE: C:\!!\EEPROM.C

/* ---------------------------------------------- eeprom.c ------------------------------------------------ **
*
* -------------------------------------------------------------------------------------------------------- */

#include <ee-def.h>

#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
uint2db 4642
db 0
db 79
db 157
dbl2db 0.539993

st_koef 49.36 1.73 -32.75 2.56 1.0

dbl2db 0.0015
dbl2db 1.3
#endasm

/* --------------------------------------------( end of file )--------------------------------------------- */


Created with The Source Studio - EVALUATION version


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

Ответы



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

E-mail: info@telesys.ru