roboforum.ru

Технический форум по робототехнике.


как в васике установить ноги битами из переменной

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

как в васике установить ноги битами из переменной

Сообщение Myp » 22 май 2010, 22:06

подскажите по синтаксису

есть переменная Dim X As Byte
там лежит нечто вроде 00010010
и есть две ноги мк как выход
хочу сделать так:
Код: Выделить всёРазвернуть
X = 00010010
Portc.2 = 4 бит переменной X
Portc.3 = 7 бит переменной X


немогу никак найти как это записать нормально
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: как в васике установить ноги битами из переменной

Сообщение galex1981 » 22 май 2010, 23:15

Код: Выделить всёРазвернуть
X = 00010010
Portc.2 = X.4
Portc.3 = X.7

Учти, что биты начинаются с 0
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: как в васике установить ноги битами из переменной

Сообщение Myp » 22 май 2010, 23:25

ахаха
как изящно...
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: как в васике установить ноги битами из переменной

Сообщение galex1981 » 22 май 2010, 23:32

А чего ты хотел ;)? Все элементарно!
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: как в васике установить ноги битами из переменной

Сообщение EdGull » 23 май 2010, 22:22

а я всегда говорил, что васик это сила! :D
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: как в васике установить ноги битами из переменной

Сообщение Duhas » 24 май 2010, 20:22

асм листинг можна ? )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: как в васике установить ноги битами из переменной

Сообщение blindman » 25 май 2010, 09:43

Да пожалуйста :)
Код: Выделить всёРазвернуть
0000004F:   E6A0        LDI       R26,0x60       Load immediate
00000050:   E0B0        LDI       R27,0x00       Load immediate
00000051:   918C        LD        R24,X          Load indirect
00000052:   FB84        BST       R24,4          Bit store from register to T
00000053:   E3A5        LDI       R26,0x35       Load immediate
00000054:   E0B0        LDI       R27,0x00       Load immediate
00000055:   918C        LD        R24,X          Load indirect
00000056:   F982        BLD       R24,2          Bit load from T to register
00000057:   938C        ST        X,R24          Store indirect
00000058:   E6A0        LDI       R26,0x60       Load immediate
00000059:   E0B0        LDI       R27,0x00       Load immediate
0000005A:   918C        LD        R24,X          Load indirect
0000005B:   FB87        BST       R24,7          Bit store from register to T
0000005C:   E3A5        LDI       R26,0x35       Load immediate
0000005D:   E0B0        LDI       R27,0x00       Load immediate
0000005E:   918C        LD        R24,X          Load indirect
0000005F:   F983        BLD       R24,3          Bit load from T to register
00000060:   938C        ST        X,R24          Store indirect



Для сравнения эквивалентный код в AVR-gcc, когда x объявлена как volatile
Код: Выделить всёРазвернуть
  92:   80 91 60 00    lds   r24, 0x0060
  96:   84 ff          sbrs   r24, 4
  98:   02 c0          rjmp   .+4         ; 0x9e <main+0xc>
  9a:   aa 9a          sbi   0x15, 2   ; 21
  9c:   01 c0          rjmp   .+2         ; 0xa0 <main+0xe>
  9e:   aa 98          cbi   0x15, 2   ; 21
  a0:   80 91 60 00    lds   r24, 0x0060
  a4:   87 ff          sbrs   r24, 7
  a6:   02 c0          rjmp   .+4         ; 0xac <main+0x1a>
  a8:   ab 9a          sbi   0x15, 3   ; 21
  aa:   f3 cf          rjmp   .-26        ; 0x92 <main>
  ac:   ab 98          cbi   0x15, 3   ; 21
Последний раз редактировалось Vooon 25 май 2010, 13:13, всего редактировалось 1 раз.
Причина: [code=avrasm]
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: как в васике установить ноги битами из переменной

Сообщение Myp » 25 май 2010, 10:01

ну вот
абсолютно никакой разницы
совершенно непонятные буковки :D
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: как в васике установить ноги битами из переменной

Сообщение galex1981 » 25 май 2010, 10:19

to blindman А как ты васиковский листинг получил? (просто что-то подзабыл как можно его получть)
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: как в васике установить ноги битами из переменной

Сообщение blindman » 25 май 2010, 11:27

В AVR studio хекс загрузил
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: как в васике установить ноги битами из переменной

Сообщение Duhas » 25 май 2010, 18:42

а хде в листинге от васика вывод в порт? или я туплю ?
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: как в васике установить ноги битами из переменной

Сообщение blindman » 25 май 2010, 18:46

ST X,R24
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: как в васике установить ноги битами из переменной

Сообщение Duhas » 25 май 2010, 18:53

понял осознал, старею )))


вот только не ясно почему из сей адрес порта 0х15 а с васика 0х35 ) или там оно от типа обращения на +20 ? что-то такое было, сам ак-то в порты по адресу никогда не писал )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: как в васике установить ноги битами из переменной

Сообщение blindman » 25 май 2010, 19:13

когда регистры адресуются как память, добавляется смещение 0x20. С нулевого адреса памяти идут 32 РОНа
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: как в васике установить ноги битами из переменной

Сообщение Duhas » 25 май 2010, 19:14

спс за разъяснения )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович


Вернуться в Новичкам или основы основ роботостроения.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15