Вверх ↑
Ответов: 188
Рейтинг: 2
#1: 2023-03-08 01:44:23 ЛС | профиль | цитата
Не стал создавать новую тему. Люди добрые подскажите пожалуйста, изучаю шину LIN и столкнулся с такой проблемой мне нужно в ком порт отправить первоначально 13 (нулевых(0000000000000)) бит потом байт синхронизации 0х55(1010101) ,а уже потом pid.
Так вот байт синхронизации отправляется без проблем и я его вижу на логическом анализаторе(все четко), но перед байтом синхронизации должны быть вот эти 13нулевых бит. Так называемое поле BREAK. через конвертеры либо отправляется каждый ноль как отдельный байт либо в шину вообще ничего не идет.

Add(MainForm,2953706,21,105)
{
Width=384
Height=315
Point(onClose)
link(onCreate,15332512:doOpen,[])
link(onClose,15332512:doClose,[])
}
Add(COMEX,15332512,420,119)
{
Port=3
Point(onDCD)
Point(onError)
link(onRead,14951341:doAdd,[(610,132)(610,251)])
link(onError,5336595:doMessage,[])
}
Add(ListBox,14951341,623,245)
{
Left=25
Top=55
Width=135
Height=190
}
Add(Message,5336595,469,147)
{
}
Add(Timer,10079860,28,245)
{
Interval=500
link(onTimer,2331623:doNext,[])
}
Add(CounterEx,2331623,154,245)
{
Max=30
Point(doReset)
link(onNext,9000179:doCompare,[])
}
Add(If_else,9000179,203,245)
{
Op2=Integer(100)
link(onTrue,14133347:doEvent1,[])
link(onFalse,5875242:doConvert,[(300,258)(300,146)])
}
Add(Hub,14133347,252,245)
{
link(onEvent1,2331623:doReset,[(278,251)(278,226)(144,226)(144,258)])
link(onEvent2,14951341:doClear,[])
}
Add(Convertor,5875242,315,140)
{
Mode=8
Digits=13
link(onResult,15332512:doWrite,[(387,146)(387,139)])
link(Data,13882260:Text,[])
}
Add(Edit,13882260,315,84)
{
Left=20
Top=20
Width=85
Text="000000000000"
DataType=2
}
Add(StreamConvertor,16100116,364,182)
{
Mode=3
Point(Data)
}



Эта осцилограмма показывает как происходит на самом деле.





а вот так вот должно быть. Поле breake неразрывно на байты. а целиком и полностью 13 бит одним словом.

Вопрос, Как это сделать посредством hiasm?
карма: 0

0
Редактировалось 2 раз(а), последний 2023-03-12 22:37:06