Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Bascom и 2 хардверных UARTa

Сообщений 1 страница 4 из 4

1

ATbanned62.
Нужно по отдельности работать с ее обоими каналами  UART.

1. Установка скорости. Вот такой код получился, но не уверен в его правильности:

$baud = 38400 ' должно действовать для СОМ0
Config Com1 = 1200

2. Непосредственно работа с данными. Выяснилось, что команды типа inkey(#1)  ;   print #1, "text" работают только с софтверными каналами.
А как обращаться к хардверным?

0

2

Насколько я понял эти команды применимы и в программном UART? На Decada

Обратите внимание, что программный UART не посылает эхо. Еще одно отличие, что после передачи каждой строки передаются символы перевода строки/возврата каретки.

Программный UART также использует команды Print, Input, Inputhex, Inkey, Waitkey и Ischarwaiting.

Пример из Хелпа:

Код:
$regfile = "m88def.dat"

$crystal = 8000000

$baud = 19200

 

Dim B As Byte

Waitms 100

 

'Open a TRANSMIT channel for output

Open "comc.1:19200,8,n,1" For Output As #1

Print #1 , "serial output"

 

'Now open a RECEIVE channel for input

Open "comc.2:19200,8,n,1" For Input As #2

'Since there is no relation between the input and output pin

'there is NO ECHO while keys are typed

 

Print #1 , "Press any alpha numerical key"

 

'With INKEY() we can check if there is data available

'To use it with the software UART you must provide the channel

Do

   'Store in byte

   B = Inkey(#2)

   'When the value > 0 we got something

   If B > 0 Then

      Print #1 , Chr(b)                         'Print the character

   End If

Loop

Close #2                                         'Close the channels

Close #1

 

End

Ссылка на http://cxem.net/mc/mc179.php

Отредактировано amv2000 (2012-12-24 09:26:04)

0

3

'------ конфигурация UART0 -------
Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
'------ конфигурация UART1 -------
Config Com2 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Open "com2:" For Binary As #1           'определить номер канала для UART1

    Print Bufb          'работа с UART0 (обычно)
    Print #1 , Bufb   'работа с UART1 (через указатель канала)

+1

4

Не сообразил, что нумерация портов с 1.
Спасибо. Все заработало.

0