реклама на сайте
подробности

 
 
> Как из Байта получить восемь значений 0 и 1, CodeVision AVR
Vny4ek
сообщение Dec 23 2008, 13:27
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001



Есть байт который я могу вывести на дисплей в виде FF или 02 но мне нужно записать в битовый масив на 8 ячеек что бы там было 0 или 1
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Goodefine
сообщение Dec 25 2008, 22:56
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581



Цитата(DenisIV @ Dec 26 2008, 00:27) *
Попробуйте разделить все три процедуры на строчки и поймёте где трабл.

Разделил. Ругается на оба знака присваивания:
Цитата
../main.c:139: error: expected expression before '=' token
../main.c:144: error: expected expression before '=' token

Цитата(DenisIV @ Dec 26 2008, 00:27) *
Кстати, посмотрите, byte может у вас определено ранее #defin'ом как unsigned char? Может просто имя переменной поменять?

Не-а, не в этом дело...
Цитата(DenisIV @ Dec 26 2008, 00:27) *
Ксати, глотнул пива, идея пришла: А не прокатит ли такая конструкция:
Код
...

(Я даже себе в библию программиста запишу lol.gif )

Такая нет. Зато прокатит эта, записывайте... smile.gif
Код
void transmit_byte(unsigned char const *byte, unsigned char direct){
   unsigned char  mask;
       for (mask=(direct)? 1:0x80;mask;delay_us(x),mask=(direct)? mask<<1:mask>>1)
                    PORTW=(*byte&mask)? PORTW|(1<<BIT):PORTW&~(1<<BIT);
                                                                                                     }

Тока нас застрелить могут за такую конструкцию... smile.gif

Цитата(Сергей Борщ @ Dec 26 2008, 01:40) *
Вопроса не понял...

Про С++ в смысле
Цитата(Сергей Борщ @ Dec 26 2008, 01:40) *
Код
...
    (byte & bitmask)? PORTD | (1<<BIT): PORTD & ~(1<<BIT);
...

Правильно, так без знаков присваивания компилится (первый раз у Вас они были), только не работает, надо:
Код
PORTD=(byte & bitmask)? PORTD | (1<<BIT): PORTD & ~(1<<BIT);


--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Go to the top of the page
 
+Quote Post
DenisIV
сообщение Dec 25 2008, 23:42
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 68
Регистрация: 11-12-08
Из: Республика Беларусь, г.Минск
Пользователь №: 42 380



Цитата(Goodefine @ Dec 26 2008, 01:56) *
Такая нет. Зато прокатит эта, записывайте... smile.gif
Код
void transmit_byte(unsigned char const *byte, unsigned char direct){
   unsigned char  mask;
       for (mask=(direct)? 1:0x80;mask;delay_us(x),mask=(direct)? mask<<1:mask>>1)
                    PORTW=(*byte&mask)? PORTW|(1<<BIT):PORTW&~(1<<BIT);
}

Тока нас застрелить могут за такую конструкцию... smile.gif

Могут... И будут правы: функция delay вызывается 7 раз из 8... (эт плохо...)
А for заменяется while...
Походу некоторые компилёры требуют конкретной операции внутри скобок for, а то
(условие)?[тело true]:[тело false] - эт ж if(условие)[тело true]else[тело false] и их и тошнит...

2moderator:А может эти вышеперечисленные весчи собирать и в какую-ндь тему отдельно выделенную закидывать? ('Перед тем, как задать вопрос по С/C++, ознакомтесь...')
А там и возможность замены ?/if, for/while, volatile, #pragma, и базовые вопросы/вырезки сообщений и т.д.
Так сказать, перед тем, как наступить на грабли, прочитайте... Или в поиск... А если нет-то к нам...
?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Vny4ek   Как из Байта получить восемь значений 0 и 1   Dec 23 2008, 13:27
- - Палыч   Используем цикл Кодunsigned char Byte, i, Bit...   Dec 23 2008, 13:31
- - SysRq   А цель-то какая сего действа? Как "битовый ма...   Dec 23 2008, 16:39
- - Goodefine   Цитата(Vny4ek @ Dec 23 2008, 16:27) Есть ...   Dec 23 2008, 17:40
- - Vny4ek   цель такая: нужно сделать передачу информации, в в...   Dec 24 2008, 06:21
|- - Палыч   Цитата(Vny4ek @ Dec 24 2008, 09:21) ...во...   Dec 24 2008, 06:51
- - Goodefine   Цитата(Vny4ek @ Dec 24 2008, 10:21) цель ...   Dec 24 2008, 07:31
|- - SysRq   Цитата(Goodefine @ Dec 24 2008, 10:31) Ко...   Dec 24 2008, 10:55
- - Goodefine   Цитата(SysRq @ Dec 24 2008, 14:55) Правил...   Dec 24 2008, 11:07
|- - Палыч   Цитата(Goodefine @ Dec 24 2008, 14:07) Ну...   Dec 24 2008, 11:51
|- - DenisIV   Цитата(Goodefine @ Dec 24 2008, 14:07) Ну...   Dec 24 2008, 12:19
- - Goodefine   Цитата(Палыч @ Dec 24 2008, 15:51) ...Пер...   Dec 24 2008, 12:01
|- - SysRq   Цитата(Goodefine @ Dec 24 2008, 15:01) С ...   Dec 25 2008, 12:50
|- - DenisIV   Цитата(SysRq @ Dec 25 2008, 15:50) Вполне...   Dec 25 2008, 13:15
- - Goodefine   Цитата(DenisIV @ Dec 24 2008, 16:19) Обыч...   Dec 24 2008, 13:22
- - xemul   Странно, что еще до интегралов не добрались... Код...   Dec 25 2008, 14:13
|- - DenisIV   Цитата(xemul @ Dec 25 2008, 17:13) Странн...   Dec 25 2008, 17:23
|- - rezident   Цитата(DenisIV @ Dec 25 2008, 22:23) иног...   Dec 25 2008, 17:36
- - Goodefine   Цитата(xemul @ Dec 25 2008, 17:13) Код......   Dec 25 2008, 18:19
|- - Сергей Борщ   Цитата(Goodefine @ Dec 25 2008, 20:19) Ко...   Dec 25 2008, 20:13
|- - _Pasha   Цитата(Сергей Борщ @ Dec 26 2008, 00:13) ...   Dec 26 2008, 12:45
- - Goodefine   Цитата(Сергей Борщ @ Dec 25 2008, 23:13) ...   Dec 25 2008, 20:27
|- - Сергей Борщ   Цитата(Goodefine @ Dec 25 2008, 22:27) у ...   Dec 25 2008, 20:42
- - Goodefine   Цитата(Сергей Борщ @ Dec 25 2008, 23:42) ...   Dec 25 2008, 21:03
|- - DenisIV   Цитата(Goodefine @ Dec 26 2008, 00:03) Ды...   Dec 25 2008, 21:27
||- - Сергей Борщ   Цитата(DenisIV @ Dec 25 2008, 23:27) Сюда...   Dec 25 2008, 22:46
|- - Сергей Борщ   Цитата(Goodefine @ Dec 25 2008, 23:03) У ...   Dec 25 2008, 22:40
- - DenisIV   Ещё глотнул пива... Ведь оператор for работает так...   Dec 25 2008, 22:40
|- - zltigo   Цитата(DenisIV @ Dec 26 2008, 02:42) Похо...   Dec 26 2008, 07:48
|- - DenisIV   Цитата(zltigo @ Dec 26 2008, 10:48) Реком...   Dec 26 2008, 12:25
|- - zltigo   Цитата(DenisIV @ Dec 26 2008, 15:25) Я ра...   Dec 26 2008, 13:06
- - Goodefine   Цитата(DenisIV @ Dec 26 2008, 03:42) Могу...   Dec 26 2008, 06:52
- - Goodefine   Цитата(_Pasha @ Dec 26 2008, 16:45) была ...   Dec 26 2008, 13:47
- - rezident   Сообщение модератора. Уважаемые, участники! За...   Dec 26 2008, 14:05


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 20:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01414 секунд с 7
ELECTRONIX ©2004-2016