TxD и RxD ничего нет(
Подскажите, как можно отладить UART в режиме приемника?
- Сообщения: 29
- Зарегистрирован: Пн апр 30, 2007 13:45:52
Столкнулся с проблемой, не могу понять как отладить UART в режиме приемника, если используется опрос по флагу RxCn. Написал программу, которая отправляет, то что принимает. Смотрю в VMLAB осциллографом на
TxD и RxD ничего нет(
TxD и RxD ничего нет(
- Реклама
Чтоб принимать что-то вы должны что-то отправить на МК.
Можно передавать печатая в окне передачи в VMLAB. А можно просто соединить ножки TXD и RXD резистором 1 Ом и тогда МК будет принимать то что передает сам.
Можно передавать печатая в окне передачи в VMLAB. А можно просто соединить ножки TXD и RXD резистором 1 Ом и тогда МК будет принимать то что передает сам.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Наверное, надо ж чтоб кто-то что-то послал твоей программе? VMLAB умеет имитировать передачу по UART? (я ею не пользуюсь, но предполагаю, что это она уметь должна) Для I2C там есть и2ц-монитор, а для UART-а наверное есть тоже свой монитор... вот его и примени
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 29
- Зарегистрирован: Пн апр 30, 2007 13:45:52
Спасибо за совет посмотреть курс, но я по нему и пытаюся разобраться. Проблема в том, что в задаче организован УАРТ по прерыванию и флаги сами сбрасываются, а у меня почему то без прерывания флаг Rxn аппаратно не сбрасывается. С резистором попробую, но дело в том, чтобы что то получть, нужно что то отправить. Смотрю в VMLab на TxD ничего не выходит (
- Сообщения: 29
- Зарегистрирован: Пн апр 30, 2007 13:45:52
#include <mega8>
#include <m8_128>
void initialization(void){
// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0xFF; // Порт на выход
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 19200
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x0C;
}
char data; // данные для отправки
void main(void)
{
data=0x15;
initialization();// инит UART
while (1) {
while ( !( UCSRA & (1<<UDRE)) );//Жду освобождения буфера
UDR=data;// Отправляю данные
while ( !(UCSRA & (1<<RXC)) ); //Жду флаг завершения приема
PORTB=UDR; // Вывожу данные в порт
}
}
#include <m8_128>
void initialization(void){
// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0xFF; // Порт на выход
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 19200
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x0C;
}
char data; // данные для отправки
void main(void)
{
data=0x15;
initialization();// инит UART
while (1) {
while ( !( UCSRA & (1<<UDRE)) );//Жду освобождения буфера
UDR=data;// Отправляю данные
while ( !(UCSRA & (1<<RXC)) ); //Жду флаг завершения приема
PORTB=UDR; // Вывожу данные в порт
}
}
- Реклама
- Сообщения: 29
- Зарегистрирован: Пн апр 30, 2007 13:45:52
Слава богу ! 
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


