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

 
 
> RS-232(проблема), ввод/вывод
mejia
сообщение Jun 16 2005, 17:26
Сообщение #1





Группа: Новичок
Сообщений: 12
Регистрация: 12-06-05
Пользователь №: 5 952



unsure.gif Идея: по прерыванию, запись в буфер и чисто для себя(для проверки) обратно посылается буква U, естествнно не работает.... перерыл документацию по AT90S2313 , вроде все регистры отвечающие за прерывания включены, и все равно не работает huh.gif

можете сами у себя проверить, кроме как мистикой я это описать не могу

void main()
{
init_devices();
while(1);
}

// getting byte from COM PORT
#pragma interrupt_handler get_result:8
void get_result()
{//x.z no ne rabotaet

x[cou]=UDR;cou++;
if (cou==4) {cou=0;}//sort();}
putchar('U'); //vivod obratno !!!

}
void port_init(void)
{
DDRB =0xFF; //init port B na vixod
PORTB = 0x00; //vkl all
PORTD = 0x00; //port vkl
DDRD = 0x00; //vse na vxod
}
//call this routine to initialise all peripherals

void init_devices(void)
{
CLI();

port_init();
uart0_init();

SetBit (SREG,7); //bit maski prerivanii
MCUCR = 0x00;
GIMSK = 0xF0; //obshii registr maski prerivanii
GIFR = 0xF0;
TIMSK = 0x00; //0x00

SEI();

}

//UART0 initialisation
// desired baud rate: 9600
// actual: baud rate:9600 (0,0%)
//
void uart0_init(void)
{
UCR = 0x00; //disable while setting baud rate
UBRR = 0x17; //set baud rate
// UBRR = 0x23; //set baud rate
UCR = 0x09; //enable
}
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 00:31
Рейтинг@Mail.ru


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