УтешилиКасательно порта. Вы учли, что биты RTS и DTR инвертируются в 550-м контроллере? Т.е. почти наверняка инвертируются и у вас в порту. Так что запись единицы в соответствующий бит приводит к появлению нуля на выходе порта, а ноль подается плюсом.
повлияла легкая паника организованная "перевернутым миром" нулей и единиц.Сейчас посмотрел внимательней --действительно 0 нужно было присунуть.По поводу сброса шифтика - ну написано же в даташите, что он ресетится нулем. Зачем было 5В присовывать?
Один товарищ посоветовал повесить конденсатор на сброс в пару 1-2 нФ.но прада не помогло.Но вообще это малая беда.По поводу загорания светиков ("иногда не всех") - у вас разрешение буфера в шифтике сидит на нуле перманентно. Т.е. на выход сразу идет содержимое регистра хранения. А там после подачи питания теоретически может быть что угодно (там ведь триггеры), если только нет автоматического сброса. Но я уверен, что его нет.
"RTC выступает в качестве входа последовательных данных (serial data input), Тх- в качестве сигнала сдвига (shift register clock input), DTR - в качестве сигнала записи (защёлки) (storage register clock input)"Почему у вас загораются не те светодиоды - не представляю пока. Вы не могли бы как-то изложить суть алгоритма, чтобы мне не вникать в гнусный бейсик?
это автор.
как я понимаю по ТхD просто генерация
а как выводится данные RTS не совсем понимаю,у меня 3 кнопки-клона по их нажатию или не нажатию как раз и формируется блок который уходит на регистр.
кнопки организованы не по отдельности,а блоком For i = 0 To 3
LED_on(i) = False
Next i
Но финт в том что не работает и исходная программа откуда я это дернул,при нажатии ввод -т.е. отправки сосотояния виртуальных кнопок в порт все загорается причем независимо от того нажаты были кнопки или нет т.е. при защелкивании регистра там откуда ни возьмись одни 1 ,или как вариант RTS не переключается и регистр считывает ее как 1 и только 1
И про конденсатор кстати напомнили,кренка грелась,хотя ток маленький,я поставил 0,1 мкФ -хватит?
Код: Выделить всё
Sub ComPortOut() 'подпрограмма вывода на СОМ-ПОРТ
Dim NumDec, Bit(8) As Integer
MSComm1.DTREnable = True 'срез регистра-защелки
For i = 0 To 3 ' выдача на порт байта (первым идёт старший бит LED_on(7))
If LED_on(3 - i) = True Then
MSComm1.RTSEnable = True 'данные на регистр сдвига
End If
If LED_on(3 - i) = False Then
MSComm1.RTSEnable = False 'данные на регистр сдвига
End If
MSComm1.Output = Chr(255) 'импульс сдвига
Next i
'------------------------------------------
Do
DoEvents '
BufferPort = BufferPort & MSComm1.Input 'скачиваем из буфера порта в строковую переменную BufferPort данные до
Loop Until MSComm1.InBufferCount = 0 'тех пор, пока в нём не останется ни одного байта (счётчик=0)
BufferPort = ""
'------------------------------------------
MSComm1.DTREnable = False 'фронт- запись в защёлку регистра сдвига
End Sub
(=' :') радиоКотЭ
(,('')('')


