реклама на сайте
подробности

 
 
> как в IAR AVR переопределить getchar, подцепить scanf к UARTU
Seregio
сообщение Jul 29 2009, 09:33
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 3-06-09
Пользователь №: 49 874



в IAR перерепределяю функцию putchar и все работает.
начинаю переписывать getchar как прописано в EWAVR_CompilerReference.pdf
выкидывает ошибку Error[e27]: Entry "getchar" in module main ( C:\Documents and Settings\seregio\Мои документы\Release\Obj\main.r90 ) redefined in module.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Seregio
сообщение Jul 29 2009, 10:49
Сообщение #2





Группа: Участник
Сообщений: 14
Регистрация: 3-06-09
Пользователь №: 49 874



Error[e27]: Entry "getchar" in module main ( C:\Documents and Settings\seregio\Мои документы\Release\Obj\main.r90 ) redefined in module
?getchar ( L:\Program Files\IAR Systems\Embedded Workbench Evaluation 5.3\avr\LIB\DLIB\dlAVR-3s-ec_mul-64-n.r90 )
Error while running Linker

в хедере прописана стандартно: __INTRINSIC int getchar(void); т.е. ничего не трогал
printf - работает без замечаний, scanf ругается

код

#include <iom128.h>
#include <stdio.h>
#include <intrinsics.h>

int putchar(int c)
{
while ( !UCSR0A_UDRE0 ){};
UDR0 = c; return c;
}
int getchar(void)
{
while ( !(UCSR0A_RXC0) ){}
return UDR0-1;
}

void main (void)
{
float x;

DDRB_DDB0=1; PORTB_PORTB0 = 0;
UCSR0A=0x00; UCSR0B=0x18; UCSR0C=0x86; UBRR0H=0x00; UBRR0L=0x33;

scanf("%f", &x);
printf("X = %f ", x);

}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 23:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.03431 секунд с 7
ELECTRONIX ©2004-2016