можете пояснить что происходит когда на МК на TxD (RxD ) подаешь сигнал?
То есть, вот есть переходник usb-com. Дальше с TxD и RxD ком порта идут на соответствующие порты ds232а(14 и 7(для 16 портового)). Затем с 11 и 10 заводим уже на атмегу.
Потом с ком порта передаем че нить(не важно че)
Сделать если
PORTB= принятый байт , то чето да должно менятся же.
Дык вот... как сам процесс происходит?
Ну то есть прокомментируйте этот код:
Код
unsigned char status,resh,resl;
unsigned int USART_Receive(void)
{
while (!(UCSRA &(1<<RXC))){
status=UCSRA;
resh=UCSRB;
resl=UDR;
if (status & (1<<FE)|(1<<DOR)|(1<<UPE))
return -1;
resh=(resh>>1)&0x01;
return((resh<<8)|resl); }
}
Если записать в вечный цикл PORTB= USART_Receive();
то все будут 11111 на порте Б. Так как он вылетит
if (status & (1<<FE)|(1<<DOR)|(1<<UPE))
return -1;
ну то есть касяк где то видимо. Если на ds232a замкнуть тупо TxD и RxD , то обратно значение вернется. Значит на порты МК норм передаваться должно + Мк работает, то есть проводил опыт без ком порта, светодиод подрубал - моргал.
То есть либо в функции этой че то не так.
Есть где почитать что происходит с Мк когда ему передают таким образом данные? то есть что с регистрами должно происходить7
Сообщение отредактировал zeonix - May 19 2011, 14:50