Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Текст заголовка сообщения полностью: Компилеру при оптимизации на size не хотелось компилировать мой код. После некоторого танца с бубном все заработало:
Я в комментарии показал что ему не нравилось и на что заменил.
С точки зрения Си, запись правильна и так и эдак, просто так как я сначала делал более удобная запись для портирования на разные камни.
#include <iom32.h>
#define OK 1
#define KO 0
unsigned char USART_Recceve(unsigned char * res)//Recceve one byte from USART
{
if (!(UCSRA & (1<<RXC)))
{
return KO;
}
*res = UDR;
return OK;
}
__monitor unsigned char USART_GetDataToEEPROM( void __eeprom * data, unsigned short count)
{
unsigned char byte_data;
for (unsigned short i=0; i < count; i++)
{
while (USART_Recceve(&byte_data) == KO);// заменить на while (!(UCSRA & (1<<RXC)));
((unsigned char *)data)[i] = byte_data;// заменить на ((unsigned char *)data)[i] = UDR;
}
return OK;
}
__monitor unsigned char USART_GetData( void * data, unsigned short count)
{
unsigned char byte_data;
for (unsigned short i=0; i<count; i++)
{
while (USART_Recceve(&byte_data) == KO);// заменить на while (!(UCSRA & (1<<RXC)));
((unsigned char *)data)[i] = byte_data;// заменить на ((unsigned char *)data)[i] = UDR;
}
return OK;
}
int main()
{
unsigned char a;
USART_Recceve(&a);
return 0;
}
Составить ответ | Вернуться на конференцию
Ответы