Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Создание библиотек в CodeVision2
Отправлено
maxik_k 18 марта 2009, г. 13:00
Кто знает в чем причина? вроде все делаю по хелпу,но при компиляции ругается:
Error: c:\cvavr2\inc\My_74HC595.h(17), included from: define.h: declaration syntax error
Содержание файла My_74HC595.h:
/* 74HC595 driver routines
CodeVisionAVR C Compiler
Для работы должны быть определены, для примера
#define port_74hc595 PORTD
#define data_74hc595 PD0
#define shift_74hc595 PD1
#define out_74hc595 PD2
*/
/****************************************/
#ifndef _My_74HC595_INCLUDED_
#define _My_74HC595_INCLUDED_
#pragma used+
//объявление ф-й
void Out_74HC595_8bit(u08 data_reg); // для передачи 1 байт
#pragma used-
#pragma library My_74HC595.lib
#endif
Содержание файла My_74HC595.lib:
/* 74HC595 driver routines
CodeVisionAVR C Compiler
*/
//подпрограмма работы с сдвиговым регистром 74HC595
//передача одного байта
//должны быть определены выводы:
// - port_74hc595 - port подключения регистра
// - data_74hc595 - линия данных
// - shift_74hc595 - сигнал сдвига (по переднему фронту)
// - out_74hc595 - разрешение передачи на выход (по переднему фронту)
//Вход: unsigned char shift_reg - байт для передачи
u08 Out_74HC595_8bit(u08 data_reg)
{
register u08 temp_sreg=SREG; //сохранение регистра состояния
register u08 i;
for (i=0; i<8; i++)
{
data_reg<<=1; //сдвиг очередного бита в перенос с заполнением 0 левых битов
//выдача выдвинутого бита на линию data
if (SREG & 0x01) { port_74hc595.data_74hc595=1; }
else { port_74hc595.data_74hc595=0; }
#asm ("nop")
#asm ("nop")
// формируем сигнал сдвига
port_74hc595.shift_74hc595=1;
port_74hc595.shift_74hc595=0;
}
//формирование импульса для передачи данных на выход
port_74hc595.out_74hc595=1; port_74hc595.out_74hc595=0;
SREG=temp_sreg;
}
Составить ответ | Вернуться на конференцию.
Ответы