|
Как из Байта получить восемь значений 0 и 1, CodeVision AVR |
|
|
|
 |
Ответов
|
Dec 24 2008, 07:31
|

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

|
Цитата(Vny4ek @ Dec 24 2008, 10:21)  цель такая:.. CAVR позволит сделать так: Код for (i=0;i<8;++i) { PORTW.Y=byte&(1<<i); //W-порт, Y-номер пина delay_ms(x); //x-нужная задержка }; Но дабы не переписывать код при переходе на другой компилятор, лучше сделать как-то так: Код #define BIT 1 /* задаем нужный номер пина (0...7) */ for (i=0;i<8;++i) { (byte&(1<<i))? PORTW|=(1<<BIT):PORTW&=~(1<<BIT); delay_ms(x); };
Сообщение отредактировал Goodefine - Dec 24 2008, 07:52
--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
|
|
|
|
|
Dec 24 2008, 10:55
|

Чайник, 1 литр
   
Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168

|
Цитата(Goodefine @ Dec 24 2008, 10:31)  Код for (i=0;i<8;++i) { (byte&(1<<i))? //.. } Ну зачем так криво-то Правильнее сделать маску неизменной, а само значение сдвигать. Примерно так: Код // value - значение
unsigned char i = 8;
do {
// if(value & 1) PORTW |= (1<<BIT); // LSB first // else PORTW &= ~(1<<BIT); // LSB first // value >>= 1; // LSB first
if(value & 0x80) PORTW |= (1<<BIT); // MSB first else PORTW &= ~(1<<BIT); // MSB first value <<= 1; // MSB first
} while(--i);
|
|
|
|
Сообщений в этой теме
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 Цитата(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 Goodefine Цитата(DenisIV @ Dec 26 2008, 00:27) Попр... Dec 25 2008, 22:56 DenisIV Цитата(Goodefine @ Dec 26 2008, 01:56) Та... Dec 25 2008, 23:42  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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|