господа, подскажите как правильно менять скорость USART по ходу выполнения программы?
с помощью Config Com1 = 9600, Synchrone = 0 , Parity = None , Stopbits = 2 , Databits = 8 , Clockpol = 0
или baud = 9600 ??????????????
скорость USART
Сообщений 1 страница 8 из 8
Поделиться12015-11-13 19:09:05
Поделиться22015-11-13 19:30:51
Config Com1 = 9600, Synchrone = 0 , Parity = None , Stopbits = 2 , Databits = 8 , Clockpol = 0
или baud = 9600 ??????????????
Так не получится.
Только на прямую регистрами
Examples of Baud Rate Setting - выбираете значения и вперёд.
Поделиться32015-11-13 20:40:26
э..м.. ээ.. а поподробнее можно?
Поделиться42015-11-13 21:28:40
э..м.. ээ.. а поподробнее можно?
Идёте сюда, качаете документацию на необходимый контроллер.
В документации ищите раздел
смотрите нужную частоту МК и данные в регистрах
например:
$crystal = 1000000
$baud = 9600
Ubrr0 = 12
Ucsr0a.u2x0 = 1
$crystal = 8000000
$baud = 38400
Ubrr0 = 12
Ucsr0a.u2x0 = 0
'или так
Ubrr0 = 25
Ucsr0a.u2x0 = 1
Поделиться52015-11-13 21:36:27
я на лету менял командой baud
да и в справке это показано 
Example $regfile = "m48def.dat" $crystal = 4000000 $baud = 19200 Config Com1 = Dummy, Synchrone = 0, Parity = None, Stopbits = 1, Databits = 8, Clockpol = 0 Print "Hello" 'Now change the baud rate in a program Baud = 9600 Print "Did you change the terminal emulator baud rate too?" End
Отредактировано Александр Д. (2015-11-13 21:37:43)
Поделиться62015-11-13 21:50:33
вообще должно работать элементарно по команде "baud = 9600", но в баскоме есть баг, на некоторых МК, на определенных портах - не работает
пробуйте
Поделиться72015-11-14 18:03:43
на атмеге8 я пробую сначало так:
Sub Set_usart_speed
Local Tmpbyte As Byte
Tmpbyte = Usart_speed
Select Case Tmpbyte
Case 1
Baudrate = 4800
Load_timer = &H00D8
Case 2
Baudrate = 9600
Load_timer = &H006C
Case 3
Baudrate = 19200
Load_timer = &H0031
Case 4
Baudrate = 38400
Load_timer = &H0018
Case 5
Baudrate = 57600
Load_timer = &H0011
Case Else
Baudrate = 9600
Load_timer = &H006C
End Select
Baud=Baudrateпотом так:
Local Tmpbyte As Byte
Tmpbyte = Usart_speed
Select Case Tmpbyte
Case 1
Baudrate = 4800
Load_timer = &H00D8
Case 2
Baudrate = 9600
Load_timer = &H006C
Case 3
Baudrate = 19200
Load_timer = &H0031
Case 4
Baudrate = 38400
Load_timer = &H0018
Case 5
Baudrate = 57600
Load_timer = &H0011
Case Else
Baudrate = 9600
Load_timer = &H006C
End Select
Config Com1 = Baudrate , Synchrone = 0 , Parity = None , Stopbits = 2 , Databits = 8 , Clockpol = 0и так и так скорость осталась прежней, не поменялась после выполнения этого куска кода
сейчас попробую как рекомендовал sasha_1973
Поделиться82015-11-14 18:10:12
в баскоме есть баг, на некоторых МК, на определенных портах - не работает
Речь про программный USART?
