Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Break състояние с хардуерен UART 18F2550
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=7915
Страница 1 от 1

Автор:  ivojk [ Нед Юни 20, 2010 5:24 pm ]
Заглавие:  Break състояние с хардуерен UART 18F2550

Здравейте,
Трябва да направя линията на хардуерен UART в състояние на "Break" в произволен момент и за произволно време.
Използвам 18F2550 но не успявам. Опитах с изключване на предавателя но не се получава.
Може ли някой да ми помогне как да стане или ако може да ми помогнете с библиотека за софтуерен UART в която да си направя такава функция ако няма в нея.
Използвам CCS С компилатор.

Благодаря предварително

Автор:  setoy [ Пон Юни 21, 2010 5:04 pm ]
Заглавие: 

Ако не ме лъже паметта, имаше някакъв бит в някой от регистрите за целта. Ама няма да е лощо да погледнеш и ератите...

Автор:  amdatlon [ Пон Юни 21, 2010 8:00 pm ]
Заглавие: 

Аз използвам този начин и ми върши работа :
Код:
Output_high (PIN_C6);
   
  Delay_ms(70);   
     
   //  send 0000001  at 5 baud rate
   Output_low (PIN_C6);
   
   Delay_ms(1800);          //1800 ms
   Output_high (PIN_C6);
   Delay_ms(200);
   


Задаваш ниско ниво за определеното време и после го вдигаш пак високо .
Така предавам числото с ниска скорост.

Намерих и това :
Код:
#include <18F452.h>
#fuses XT,NOWDT,PUT,BROWNOUT,NOLVP
#use delay(clock=4000000)

#define BAUDRATE 9600
#define TX_PIN  PIN_C6
#define RX_PIN  PIN_C7

#use rs232(baud=BAUDRATE, xmit=TX_PIN, rcv=RX_PIN, ERRORS)

void send_break(int8 time_ms)
{
// Disable the UART and send a Break
// for the specified time.
setup_uart(FALSE);
output_low(TX_PIN);
delay_ms(time_ms);

// Re-enable the UART.
setup_uart(TRUE);
set_uart_speed(BAUDRATE);
}

//======================================
void main(void)
{
int8 i;

while(1)
  {
   // Send 10 bytes of 0x55 to show UART activity
   for(i=0; i<10; i++)
       putc(0x55);
   
   send_break(20);
  }

}

Автор:  ivojk [ Вто Юни 22, 2010 10:14 pm ]
Заглавие:  re

зравейте,
Това вече го открих със спирането на UART и вече BReak.
Благодаря за отговора.

Поздрави

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/