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

 
 
> Операция с битами 3 бинарных чисел.
zheka
сообщение Dec 10 2009, 10:34
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Коллеги, подскажите наиболее рациональный в плане быстродействия способ решения задачи в CodeVision:
Есть такакя шняжка

const unsigned char LINE[] ={0b0000001,0b00000001,0b00000001};

А еще есть 0,1 и 2 линии порта A. Необходимо за 8 циклов передать содержимое LINE побитно - 0-й элемент в 0-ю линию, 1-й элемент в 1-ю линии, побитно - значит, за первый цикл, первый бит элементов массива и так далее..
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zheka
сообщение Dec 11 2009, 14:33
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Спасибо, только я в асме полный ноль. Мне нужно асмовскую подпрограмму скрестить с Сишной, чтобы данные из сишного массива передавались в асм-подпрограмму.
Сейчас у меня программа выгляди так (const все-таки добавил, и количество элементов в нем не 8, а 16):
Код
#include <mega32.h>
#include <stdio.h>
#include <delay.h>

#define LEDS_PORT PORTA
#define LEDS_DDR DDRA
#define ALARM PORTA.0
#define CLK   PORTA.1
#define EN   PORTA.2
#define LAT   PORTA.3
#define DAT1   PORTA.6
#define DAT2   PORTA.5
#define DAT3   PORTA.4

const unsigned char LINE[]={0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF
,0x00};

void byte_out()  
{

//хочу перевести а asm все что в этой подпрограмме.
char jj;
for(jj=0;jj<16;jj++)
{
CLK=0;
  PORTA = (PORTA & 0xF) | (LINE[jj]<<4);    
CLK=1;  
}

CLK=0;
LAT=1;
LAT=0;
EN=0;
EN=1;  

}

void main()
{

LEDS_DDR=0xFF;
LEDS_PORT=0x00;

EN=1;    
LAT=0;

while (1==1) byte_out();




}


Как сделать, подскажите если не трудно.

Сообщение отредактировал zheka - Dec 11 2009, 14:42
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- zheka   Операция с битами 3 бинарных чисел.   Dec 10 2009, 10:34
- - =GM=   Ну, раз это константы, заведите другие 8 констант ...   Dec 10 2009, 10:49
- - zheka   Это пока константы, потому как данные мне пока пол...   Dec 10 2009, 11:04
|- - =GM=   Цитата(zheka @ Dec 10 2009, 10:54) Это по...   Dec 10 2009, 11:04
- - zheka   Ну хорошо, если с const вам непонятно, если так по...   Dec 10 2009, 12:23
|- - =GM=   byte=byte>>1; bit=byte&0x01;   Dec 10 2009, 12:33
|- - _Pasha   Цитата(zheka @ Dec 10 2009, 16:23) СЛишко...   Dec 10 2009, 12:35
- - zheka   Спасибо, что-то вроде этого я и ожидал увидеть. Ха...   Dec 10 2009, 13:28
- - zheka   В общем ТЗ окончательно сформировалось и выглядит ...   Dec 10 2009, 18:10
|- - IJAR   Цитата(zheka @ Dec 10 2009, 21:10) В обще...   Dec 10 2009, 19:31
||- - SasaVitebsk   Цитата(IJAR @ Dec 10 2009, 23:31) Попробу...   Dec 10 2009, 19:58
|||- - IJAR   Цитата(SasaVitebsk @ Dec 10 2009, 22:58) ...   Dec 10 2009, 20:07
||- - des333   Цитата(IJAR @ Dec 10 2009, 22:31) Попробу...   Dec 10 2009, 21:28
|- - Vlad219i   Цитата(zheka @ Dec 10 2009, 21:10) В обще...   Dec 11 2009, 12:13
|- - Vlad219i   Цитата(zheka @ Dec 10 2009, 21:10) имеетс...   Dec 11 2009, 14:26
|- - des333   Автор (который все знает), Вроде, в окончательно ...   Dec 12 2009, 11:10
- - sergeeff   Сделай то, не знаю что. Автору каждый день будут Т...   Dec 10 2009, 20:58
- - zheka   1. Автор прекрасно понимает чего хочет. 2. У автор...   Dec 11 2009, 09:26
|- - sergeeff   Цитата(zheka @ Dec 11 2009, 13:26) 1. Авт...   Dec 11 2009, 10:16
|- - =GM=   Цитата(zheka @ Dec 11 2009, 09:26) 2. У а...   Dec 11 2009, 10:40
- - M_Andrey   { union char_by_bit { struct { unsign...   Dec 11 2009, 10:06
- - zheka   ЦитатаНу и где здесь у автора "передача за 8 ...   Dec 11 2009, 11:46
- - zheka   ЦитатаОбязательно С? А то на асме это в несколько ...   Dec 11 2009, 12:44
|- - _Pasha   Цитата(zheka @ Dec 11 2009, 16:44) был бы...   Dec 11 2009, 14:27
- - Duhas   используя 10 регистров мона сдвигами сформировать ...   Dec 11 2009, 19:05


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:11
Рейтинг@Mail.ru


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