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

 
 
 
Reply to this topicStart new topic
> 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
Stranix
сообщение Jun 16 2005, 20:49
Сообщение #2





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



А ты ждешь когда тебе придет буква "U"? А ты почему при инициализации не включил трансмитер?
Go to the top of the page
 
+Quote Post
ssm
сообщение Jun 17 2005, 05:19
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 15
Регистрация: 23-04-05
Пользователь №: 4 417



у меня на меге 8515:
;инициализация
UART_INIT:
ldi R16,0 ;режим U2x=0 MPCM=0
out UCSRA,R16
ldi R16,0x98 ;режим RXCIE=1 RXEN=1 TXEN=1
out UCSRB,R16
ldi R16,0x8f ;режим UCZ=011 USBS=1
out UCSRC,R16
ldi R16,low(UART_BAUD) ;скорость
out UBRRL,R16
ldi R16,high(UART_BAUD)
out UBRRH,R16
<порезано>

//передача байта
UART_SB:
out UDR,R16 ;передать
UART_SB1:
in R16,USR ;проверить USR.6=1?
andi R16,0x40
breq UART_SB1 ;нет, передача не закончена
in R16,USR ;сброс бита
ori R16,0x40
out USR,R16
ret

;прерывание по приему
UART_RINT:
<порезано>
in R16,UDR ;сохранить байт
st Z,R16
<порезано>
reti

чего-то у тебя с инициализацией не то...
Go to the top of the page
 
+Quote Post
mejia
сообщение Jun 17 2005, 06:01
Сообщение #4





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



Цитата(Stranix @ Jun 16 2005, 23:49)
А ты ждешь когда тебе придет буква "U"? А ты почему при инициализации не включил трансмитер?
*


какой трансмиттер sad.gif , в документации по AT90S2313 про "трансмиттер" ничего не нашел

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 = 0xFF; //0x00
TIFR=0xFF

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
yung
сообщение Jun 17 2005, 06:10
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 25-03-05
Из: Рязань
Пользователь №: 3 669



Цитата(mejia @ Jun 17 2005, 09:01)
.......
void uart0_init(void)
{
UCR  = 0x00; //disable while setting baud rate
UBRR = 0x17; //set baud rate
// UBRR = 0x23; //set baud rate
UCR  = 0x09; //enable                                                <-----!!!!!!
}
*


Передатчик как раз включен, выключен приемник. RXEN установить надо. И прерывания от UART (RXCIE,TXCIE) почему-то выключены.
Go to the top of the page
 
+Quote Post

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

 


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


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