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

 
 
 
Reply to this topicStart new topic
> UART и ETRX357, Связь pic16f688 и zigbee модема
Croman13n3c
сообщение Jul 28 2011, 07:44
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 1-02-11
Пользователь №: 62 630



Инициализация uart :
CODE

//BAUDCTL register
ABDEN = 0;
WUE = 0;
BRG16 = 1;
SCKP = 0;
RCIDL = 0;
ABDOVF = 0;
//Baud Rate
SPBRG =0x0C;
SPBRGH =0;
//RCSTA register
OERR = 0;
FERR = 0;
ADDEN = 0;
CREN = 1;
SPEN = 1;
//TXSTA register
TRMT = 1;
BRGH = 1;
SENDB = 0;
SYNC = 0;
TXEN = 0;
TX9 = 0;
//Activate pins IO
TRISC4=0;//выход (TX)
TRISC5=1;//вход (RX)
TXEN=1;
RCIE=1;//прерывание от RX
PEIE=1;//прерывания от переферии
GIE=1;//прерывания глобальные
}


Прием байта :

Код
if (RCIF)
{
  InData = RCREG;        
    inBuf[rxWPoint++] = InData;    
}
RCIF=0;


Программа по отдельности работает ( проверял из протеуса часть работы с модемом и разбор сообщений от него на отдельной макетке(pic +ftdi на usb))
Но в сборе работает через раз.

Fosc = 1 Mhz (встроенный генератор)
Baudrate = 19200

Собственно подскажите в какую сторону копать ?
Go to the top of the page
 
+Quote Post
xemul
сообщение Jul 28 2011, 09:42
Сообщение #2



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(Croman13n3c @ Jul 28 2011, 11:44) *
Собственно подскажите в какую сторону копать ?

Вероятно, в сторону п.п. 10.1.2.4, 10.1.2.5 ДШ. (особенно 10.1.2.5)

Код
if(RCIF)
{
// добавьте сюда обработку хотя бы OERR
   InData = RCREG;        
   inBuf[rxWPoint++] = InData;    
// а просто "inBuf[rxWPoint++] = RCREG;" нельзя?
// "rxWPoint++" без подробностей не пугает?
//   RCIF=0; // лишняя подробность
}
Go to the top of the page
 
+Quote Post

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

 


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


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