Прошу помощи в вопросе изменения определенного бита в переменной.
Всю голову сломал. Не могу ничего придумать.
Смысл вопроса:
Есть АЦП. В него надо передавать байт конфигурации.
В этом байте, в зависимости от задач, меняются определенные биты.
Например для изменения размерности преобразования надо изменять два бита - 5й и 6й.
Для выбора коэффициента усиления -0й и 1й байты.
Я набросал схемку для изменения 5 и 6 битов.
Ничего не могу сообразить.
Add(MainForm,2953706,21,7)
{
Width=376
Height=281
link(onCreate,3810460:doEvent1,[])
}
Add(VisualStrings,14187305,287,56)
{
Lines=#2:00|
Point(doText)
Point(onText)
link(onText,7330458:doEvent1,[(348,62)(348,167)])
}
Add(VisualStrings,1545369,287,112)
{
Lines=#2:01|
Point(doText)
Point(onText)
link(onText,7330458:doEvent2,[(342,118)(342,174)])
}
Add(VisualStrings,3604332,287,182)
{
Lines=#2:10|
Point(doText)
Point(onText)
link(onText,7330458:doEvent3,[(342,188)(342,181)])
}
Add(VisualStrings,15220671,287,259)
{
Lines=#2:11|
Point(doText)
Point(onText)
link(onText,7330458:doEvent4,[(348,265)(348,188)])
}
Add(Memory,2499680,392,161)
{
link(onData,3059589:doEvent1,[])
}
Add(Hub,7330458,357,161)
{
InCount=4
OutCount=1
link(onEvent1,2499680:doValue,[])
}
Add(Label,7075102,392,238)
{
Left=80
Top=40
Width=30
Height=30
Font=[MS Sans Serif,14,0,0,1]
Caption="**"
link(Text,3958292:Var2,[])
}
Add(RadioButton,1163945,238,259)
{
Left=15
Top=69
Caption="18 bit"
Point(doKeyBack)
Point(onKeyDown)
link(onSelect,15220671:doText,[])
}
Add(RadioButton,2818853,238,182)
{
Left=15
Top=51
Caption="16 bit"
Point(doKeyBack)
Point(onKeyDown)
link(onSelect,3604332:doText,[])
}
Add(RadioButton,7046497,238,112)
{
Left=15
Top=33
Caption="14 bit"
Point(doKeyBack)
Point(onKeyDown)
link(onSelect,1545369:doText,[])
}
Add(RadioButton,171957,238,56)
{
Left=15
Top=15
Caption="12 bit"
Point(doKeyBack)
Point(onKeyDown)
link(onSelect,14187305:doText,[])
}
Add(Label,3408098,21,49)
{
Left=60
Top=165
Width=253
Height=17
Caption="переменная в которой надо заменить 5 и 6 биты"
}
Add(Label,2681980,329,518)
{
Left=130
Top=180
Width=110
Height=30
Font=[MS Sans Serif,18,0,0,1]
Caption="00000000"
}
Add(Memory,12943170,168,518)
{
Default=Integer(0)
Point(Data)
link(onData,6113526:doConvert,[])
link(Data,7121026:Result,[])
}
Add(Convertor,6113526,252,518)
{
Mode=8
Digits=8
link(onResult,2681980:doText,[])
link(Data,12943170:Value,[(258,507)(224,507)(224,563)(174,563)])
}
Add(Hub,3810460,70,21)
{
link(onEvent2,644660:doEvent2,[(102,34)(102,531)])
}
Add(Label,6723216,21,98)
{
Left=225
Top=205
Width=10
Height=17
Caption="0"
}
Add(Label,6917344,21,189)
{
Left=133
Top=205
Width=10
Height=17
Caption="7"
}
Add(Label,11937700,21,231)
{
Left=159
Top=205
Width=10
Height=17
Caption="5"
}
Add(Label,2351864,21,147)
{
Left=146
Top=205
Width=10
Height=17
Caption="6"
}
Add(Edit,11151153,238,364)
{
Left=130
Top=145
Width=100
Text="14"
DataType=2
}
Add(Hub,644660,133,518)
{
InCount=2
OutCount=1
link(onEvent1,12943170:doValue,[])
}
Add(StyleXP,2331318,21,273)
{
}
Add(Math,7121026,168,427)
{
OpType=5
link(onResult,644660:doEvent1,[(214,433)(214,487)(121,487)(121,524)])
link(Op1,3958292:Var1,[(174,222)])
link(Op2,11151153:Text,[(181,405)(244,405)])
}
Add(GetDataEx,3958292,392,217)
{
link(Data,2499680:Value,[])
}
Add(Hub,3059589,448,161)
{
link(onEvent1,7121026:doOperation,[(481,167)(481,299)(156,299)(156,433)])
link(onEvent2,7075102:doText,[(474,174)(474,209)(380,209)(380,244)])
}
Редактировалось 2 раз(а), последний 2017-09-03 19:21:08