Отключение TX аппаратного UART
|
|
marss70 | Дата: Вторник, 04.02.2014, 14:42 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| Приветствую, всех! Подскажите, пожалуйста, как отключить вход TX при использовании аппаратного UART? МК работает только на приём данных и по разводке платы именно эта нога мне удобна.
P.S. Попутал название темы и как изменить её не знаю...
Сообщение отредактировал marss70 - Вторник, 04.02.2014, 14:45 |
|
| |
KoSS_89 | Дата: Вторник, 04.02.2014, 19:32 | Сообщение # 2 |
Группа: Проверенные
Сообщений: 53
Статус: Offline
| Если я правельно вас понял, вы открыли програмный uart и в программе вам необходимо закрывать работу уарта и использовать ножку мк в других целях, значит открывали вы его строками типа Open "comb.1:9600,8,n,1" For Input As #1 ну а закрывать нужно соответственно сторкой Close #1
упс перепутал аппаратный с прграмным
Сообщение отредактировал KoSS_89 - Вторник, 04.02.2014, 19:35 |
|
| |
exersizze | Дата: Вторник, 04.02.2014, 21:44 | Сообщение # 3 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| попробуй отдельно конфигурировать ножку TX на вход (или выход) перед использованием.
|
|
| |
MACTEPok | Дата: Среда, 05.02.2014, 08:43 | Сообщение # 4 |
Группа: Пользователи
Сообщений: 9
Статус: Offline
| регистр UCSRB. UCSRB.3 = 0 отключит аппаратный TX
Bit 3 – TXEN: Transmitter Enable Writing this bit to one enables the USART Transmitter. The Transmitter will override nor- mal port operation for the TxD pin when enabled. The disabling of the Transmitter (writing TXEN to zero) will not become effective until ongoing and pending transmis- sions are completed (i.e., when the Transmit Shift Register and Transmit Buffer Register do not contain data to be transmitted). When disabled, the Transmitter will no longer override the TxD port.
|
|
| |
marss70 | Дата: Четверг, 06.02.2014, 19:08 | Сообщение # 5 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| UCSRB.3 = 0 - на это компилятор ругается. Пишет: invalid datatype...
|
|
| |
MACTEPok | Дата: Четверг, 06.02.2014, 20:04 | Сообщение # 6 |
Группа: Пользователи
Сообщений: 9
Статус: Offline
| Значит мк с несколькими USART. Какой мк?
|
|
| |
marss70 | Дата: Четверг, 06.02.2014, 20:33 | Сообщение # 7 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| Тинька 2313... Вообще-то проблему решил- переделал плату. Но на будущее знать-бы не помешает. А это рабочий код идикатора принимающего по УАРТ переменной А и выводящей на LED индикатор.
$regfile = "attiny2313.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 $baud = 38400
Dim Y As Byte Dim A As Word Dim Digit_str As String * 4 Dim Temp_str As String * 4
Ddrb = &B11111111 Ddrd = &B11111110
On Urxc Uart Enable Urxc Enable Interrupts
Do
Digit_str = Str(a) Digit_str = Format(digit_str , "0000")
For Y = 1 To 4 ' èçìåíÿÿ îò 4 öèêëîâ ìåíÿåòñÿ âðåìÿ ìåæäó èìïóëüñàìè Temp_str = Mid(digit_str , Y , 1) Select Case Y
Case 1 : Portd = 216 Case 2 : Portd = 212 Case 3 : Portd = 204 Case 4 : Portd = 156
End Select
Select Case Temp_str Case "0" : Portb = 245 Case "1" : Portb = 36 Case "2" : Portb = 242 Case "3" : Portb = 182 Case "4" : Portb = 39 Case "5" : Portb = 151 Case "6" : Portb = 215 Case "7" : Portb = 164 Case "8" : Portb = 247 Case "9" : Portb = 183
End Select ' ìåíÿåòñÿ äëèíà èìïóëüñà ò.å. ÷àñòîòà îáíîâëåíèÿ Waitus 500 ' ìåíÿåòñÿ äëèíà èìïóëüñà ò.å. ÷àñòîòà îáíîâëåíèÿ Portb = 0 Waitus 500 Next Y
Loop
End
Uart: Inputbin A Return
Сообщение отредактировал marss70 - Четверг, 06.02.2014, 20:37 |
|
| |
MACTEPok | Дата: Пятница, 07.02.2014, 19:50 | Сообщение # 8 |
Группа: Пользователи
Сообщений: 9
Статус: Offline
| Какая версия компилятора? У меня 2.0.7.6 нормально компилирует. А вообще какова потребность пин TX отключать? это же выход.
|
|
| |
marss70 | Дата: Суббота, 08.02.2014, 12:08 | Сообщение # 9 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| Версия 2.0.5.0 Отключить его хотел для того, чтобы ножка работала как порт выхода на LED дисплей(удобно было по разводке) А так на ней лог "1" постоянно висит. Но уж плату новую сделал, где эта нога не используется.
|
|
| |
MACTEPok | Дата: Воскресенье, 09.02.2014, 21:19 | Сообщение # 10 |
Группа: Пользователи
Сообщений: 9
Статус: Offline
| как то так Код $regfile = "attiny2313.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 $baud = 38400
Dim Y As Byte Dim A As Word Dim Digit_str As String * 4 Dim Temp_str As String * 4
UCSRB.3 = 0 Ddrb = &B11111111 Ddrd = &B11111100
On Urxc Uart Enable Urxc Enable Interrupts
Do
Digit_str = Str(a) Digit_str = Format(digit_str , "0000")
For Y = 1 To 4 ' изменяя от 4 циклов меняется время между импульсами Temp_str = Mid(digit_str , Y , 1) Select Case Y
Case 1 : Portd = 216 Case 2 : Portd = 212 Case 3 : Portd = 204 Case 4 : Portd = 156
End Select
Select Case Temp_str Case "0" : Portb = 245 Case "1" : Portb = 36 Case "2" : Portb = 242 Case "3" : Portb = 182 Case "4" : Portb = 39 Case "5" : Portb = 151 Case "6" : Portb = 215 Case "7" : Portb = 164 Case "8" : Portb = 247 Case "9" : Portb = 183
End Select ' меняется длина импульса т.е. частота обновления Waitus 500 ' меняется длина импульса т.е. частота обновления Portb = 0 Waitus 500 Next Y
Loop
End
Uart: Inputbin A Return
|
|
| |
marss70 | Дата: Понедельник, 10.02.2014, 11:23 | Сообщение # 11 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| Вроде получилось- закомпелилось, хотя в Проте всё-равно на ноге "1". Надо в железе проверять. Вся засада в самой первой строке- вместо "2313def.dat" надо было выбрать "attiny2313.dat"! Тогда вопрос, а в чём, собственно, разница между 2313def и attiny2313 ?
Сообщение отредактировал marss70 - Понедельник, 10.02.2014, 11:26 |
|
| |
MACTEPok | Дата: Понедельник, 10.02.2014, 14:55 | Сообщение # 12 |
Группа: Пользователи
Сообщений: 9
Статус: Offline
| AT90S2313 и ATtiny2313. Единицы на ноге быть не должно, если только сами на + подтяжку не сделали в железе.
|
|
| |
marss70 | Дата: Среда, 12.02.2014, 20:41 | Сообщение # 13 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| Спасибо MACTEPok! Всё заработало, Ucsrb.3 = 0 сделало своё дело. Проверил в железе. Теперь TX работает как порт.
|
|
| |