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

 
 
> RS 485, Ежели кому невлом
TamTam
сообщение Mar 25 2007, 03:52
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254



Народ ежеле кому не влом поделитесь примерчиком работы с приемопередатчиком для RS-485
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Axxel
сообщение Mar 28 2007, 08:30
Сообщение #2


Частый гость
**

Группа: Новичок
Сообщений: 140
Регистрация: 31-01-07
Из: Челябинск
Пользователь №: 24 896



Мой пример:

//Прием
#pragma interrupt_handler CharacterHasReceived:12
void CharacterHasReceived(void)
{
unsigned char RXchar;
RXchar=UDR;
if(RXchar==NODE_ADRESS) {NodeAdressOk=1;} // If RXchar is an our node adress...
if(NodeAdressOk==1) { if((RXchar==ETX)&&(STXmarker==1)) {ETXmarker=1;STXmarker=0;RxIndex=0;NodeAdressOk=0; ErrorFlag=0;}
if((STXmarker==1)&&(ETXmarker!=1)) {RxBuffer[RxIndex++]=RXchar;}
if(RXchar==STX){STXmarker=1;ETXmarker=0;RxIndex=0;} }
}

//Передача

#pragma interrupt_handler CharacterHasTransmitted:14
void CharacterHasTransmitted(void)
{
if(TranRequest==1) //Transmition request has been activated. This is some variable(flag) which enables transmition.
{
unsigned char TXchar;
TXchar=TxBuffer[++TxIndex];
if(TxIndex==(TXBUF_SIZE-1)){TranRequest=0;TxIndex=0;}
UDR=TXchar;
}
else{done=1;}
}


//Запуск передачи

void SendBuffer(void)
{
PORTD|=TXD;
delayms(DELAY_BEFORE_SEND);//Если нужно
TranRequest=1;
UDR=TxBuffer[0];
while(!done);
done=0;
delayms(DELAY_AFTER_SEND);//То же самое
PORTD&=RXD;
}

Таймаутов,чексумов, и прочих проверок в этих функциях нет.
Не очень красиво, многое не доработно, но суть такая.
Вроде по теме ответ

Сообщение отредактировал Axxel - Mar 28 2007, 08:32


--------------------
Если боишься - не говори. если сказал - не бойся. ©
Go to the top of the page
 
+Quote Post



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

 


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


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